Sanjay Patel
7ad324b396
[InstCombine] add tests for fold with no coverage and missing vector fold
...
llvm-svn: 278867
2016-08-16 23:18:42 +00:00
Sanjay Patel
e47df1ac62
[InstCombine] use m_APInt to allow icmp (sub X, Y), C folds for splat constant vectors
...
llvm-svn: 278859
2016-08-16 21:53:19 +00:00
David Majnemer
fa0f1e660b
Don't passively concatenate MDNodes
...
I have audited all the callers of concatenate and none require duplicate
entries to service concatenation.
These duplicates serve no purpose but to needlessly embiggen the IR.
N.B. Layering getMostGenericAliasScope on top of concatenate makes it
O(nlogn + mlogm) instead of O(n*m).
llvm-svn: 278836
2016-08-16 18:48:34 +00:00
Sanjay Patel
46a68ba618
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278768
2016-08-16 00:48:38 +00:00
Sanjay Patel
f1bf21c56b
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278765
2016-08-16 00:27:12 +00:00
Sanjay Patel
df77a4dbb0
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278757
2016-08-15 22:43:52 +00:00
Sanjay Patel
41520e1712
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278751
2016-08-15 21:47:50 +00:00
Sanjay Patel
638b613101
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278747
2016-08-15 21:37:24 +00:00
Sanjay Patel
55d87a88cc
update tests to use FileCheck and exact checking
...
llvm-svn: 278741
2016-08-15 21:02:25 +00:00
Sanjay Patel
3e9acec2fa
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278737
2016-08-15 20:56:11 +00:00
Sanjay Patel
b37bd6d7b7
[InstCombine] add test for missing vector icmp fold
...
llvm-svn: 278727
2016-08-15 20:02:40 +00:00
Sanjay Patel
7d98be81cc
[InstCombine] add tests for vector icmp folds
...
llvm-svn: 278726
2016-08-15 19:58:21 +00:00
Sanjay Patel
b860859611
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278717
2016-08-15 19:16:33 +00:00
Sanjay Patel
6866b82a05
update test to use FileCheck and autogenerated checks
...
llvm-svn: 278714
2016-08-15 18:56:10 +00:00
Sanjay Patel
2044a8eba9
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278709
2016-08-15 18:45:10 +00:00
Sanjay Patel
aaf34d1bfc
[InstCombine] add test for missing vector icmp fold
...
llvm-svn: 278708
2016-08-15 18:39:54 +00:00
Sanjay Patel
195eb9340a
minimize test
...
llvm-svn: 278707
2016-08-15 18:35:44 +00:00
Sanjay Patel
3f506daf8c
remove unnecessary IR comments about uses
...
llvm-svn: 278705
2016-08-15 18:32:50 +00:00
Sanjay Patel
d391b0d69e
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278704
2016-08-15 18:26:56 +00:00
Sanjay Patel
cbd62a082c
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278689
2016-08-15 17:55:39 +00:00
Sanjay Patel
566b348987
[InstCombine] auto-generate exact checks
...
Note that several of these tests belong in InstSimplify rather than
InstCombine because they return existing operands or constants.
llvm-svn: 278684
2016-08-15 17:19:07 +00:00
Sanjay Patel
a7b9bb3785
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278683
2016-08-15 17:10:35 +00:00
Sanjay Patel
52fe9ae990
[InstCombine] add test for missing vector icmp fold
...
llvm-svn: 278639
2016-08-14 22:56:46 +00:00
Sanjay Patel
7e57b00274
[InstCombine] add tests for vector icmp folds
...
llvm-svn: 278637
2016-08-14 22:44:10 +00:00
Sanjay Patel
8554f70c07
[InstCombine] add test for potentially missing vector icmp fold
...
llvm-svn: 278636
2016-08-14 22:30:07 +00:00
Sanjay Patel
beebe05af1
[InstCombine] add test for missing vector icmp fold
...
llvm-svn: 278635
2016-08-14 22:29:27 +00:00
Sanjay Patel
ba1f9fbddc
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278634
2016-08-14 22:28:50 +00:00
Sanjay Patel
f6559404d5
[InstCombine] remove unnecessary function attributes from tests
...
llvm-svn: 278633
2016-08-14 21:48:21 +00:00
Sanjay Patel
b44ca3bfa9
[InstCombine] add tests for missing vector icmp folds
...
llvm-svn: 278632
2016-08-14 21:36:22 +00:00
Sanjay Patel
bbb3dffd0a
[InstCombine] add test for missing vector icmp fold
...
llvm-svn: 278631
2016-08-14 21:05:08 +00:00
Sanjay Patel
66a3457a4c
[InstCombine] add test for missing vector icmp fold
...
llvm-svn: 278630
2016-08-14 20:39:42 +00:00
Mehdi Amini
8c629ecf3a
Revert "Revert "Invariant start/end intrinsics overloaded for address space""
...
This reverts commit 32fc6488e48eafc0ca1bac1bd9cbf0008224d530.
llvm-svn: 278609
2016-08-13 23:31:24 +00:00
Mehdi Amini
164ac651da
Revert "Invariant start/end intrinsics overloaded for address space"
...
This reverts commit r276447.
llvm-svn: 278608
2016-08-13 23:27:32 +00:00
Davide Italiano
873219c406
[SimplifyLibCalls] Restore the old behaviour, emit a libcall.
...
Hal pointed out that the semantic of our intrinsic and the libc
call are slightly different. Add a comment while I'm here to
explain why we can't emit an intrinsic. Thanks Hal!
llvm-svn: 278200
2016-08-10 06:33:32 +00:00
Sanjay Patel
a814d89b61
update to use FileCheck and auto-generate checks
...
llvm-svn: 278150
2016-08-09 19:42:52 +00:00
Sanjay Patel
4ee824a88d
auto-generate checks
...
llvm-svn: 278137
2016-08-09 17:03:51 +00:00
Sanjay Patel
25af7444df
auto-generate checks
...
llvm-svn: 278136
2016-08-09 17:02:17 +00:00
Sanjay Patel
52958dc111
auto-generate checks
...
llvm-svn: 278135
2016-08-09 16:59:54 +00:00
Sanjay Patel
9f36a2d54b
add tests for missing vector icmp folds
...
llvm-svn: 278132
2016-08-09 16:39:05 +00:00
Sanjay Patel
f36a29199f
update to use FileCheck and auto-generate checks
...
llvm-svn: 278131
2016-08-09 16:19:57 +00:00
Sanjay Patel
a6090256d5
regenerate checks
...
llvm-svn: 278130
2016-08-09 16:17:46 +00:00
Sanjay Patel
e466865f67
add tests for missing vector icmp folds
...
llvm-svn: 278129
2016-08-09 16:05:57 +00:00
Davide Italiano
e3b916d164
[SimplifyLibCalls] Emit sqrt intrinsic instead of a libcall.
...
llvm-svn: 277972
2016-08-08 03:23:01 +00:00
Davide Italiano
27da131f32
[SLC] Emit an intrinsic instead of a libcall for pow.
...
Differential Revision: https://reviews.llvm.org/D22104
llvm-svn: 277963
2016-08-07 20:27:03 +00:00
David Majnemer
4e4f4437c2
[InstCombine] Infer inbounds on geps of allocas
...
llvm-svn: 277950
2016-08-07 07:58:00 +00:00
David Majnemer
a19d0f2f3e
[ValueTracking] Teach computeKnownBits about [su]min/max
...
Reasoning about a select in terms of a min or max allows us to derive a
tigher bound on the result.
llvm-svn: 277914
2016-08-06 08:16:00 +00:00
Sanjoy Das
ba04d3a620
[InstCombine] Don't coerce non-integral pointers to integers
...
Reviewers: majnemer
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D23231
llvm-svn: 277910
2016-08-06 02:58:48 +00:00
Sanjoy Das
6fa08aafcc
[ConstantFolding] Don't create illegal (non-integral) inttoptrs
...
Reviewers: majnemer, arsenm
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D23182
llvm-svn: 277854
2016-08-05 19:23:29 +00:00
Sanjay Patel
5a9b9f98c0
reduce tests; auto-generate checks
...
llvm-svn: 277819
2016-08-05 14:50:11 +00:00
Nicolai Haehnle
870bf1788c
[InstCombine] try to fold (select C, (sext A), B) into logical ops
...
Summary:
Turn (select C, (sext A), B) into (sext (select C, A, B')) when A is i1 and
B is a compatible constant, also for zext instead of sext. This will then be
further folded into logical operations.
The transformation would be valid for non-i1 types as well, but other parts of
InstCombine prefer to have sext from non-i1 as an operand of select.
Motivated by the shader compiler frontend in Mesa for AMDGPU, which emits i32
for boolean operations. With this change, the boolean logic is fully
recovered.
Reviewers: majnemer, spatel, tstellarAMD
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D22747
llvm-svn: 277801
2016-08-05 08:22:29 +00:00