diff options
| author | Sanjay Patel <spatel@rotateright.com> | 2016-11-27 21:07:28 +0000 |
|---|---|---|
| committer | Sanjay Patel <spatel@rotateright.com> | 2016-11-27 21:07:28 +0000 |
| commit | 8ca30ab0c5daf44bc6e86c257ecb5da01345fc28 (patch) | |
| tree | ff6cca4efcc25d473b19e902fd1dcda14ac39070 /llvm/test/Analysis/ValueTracking | |
| parent | 4fab487265a1014485acab935c75f6e584282ffc (diff) | |
| download | bcm5719-llvm-8ca30ab0c5daf44bc6e86c257ecb5da01345fc28.tar.gz bcm5719-llvm-8ca30ab0c5daf44bc6e86c257ecb5da01345fc28.zip | |
[InstSimplify] allow integer vector types to use computeKnownBits
Note that the non-splat lshr+lshr test folded, but that does not
work in general. Something is missing or wrong in computeKnownBits
as the non-splat shl+shl test still shows.
llvm-svn: 288005
Diffstat (limited to 'llvm/test/Analysis/ValueTracking')
| -rw-r--r-- | llvm/test/Analysis/ValueTracking/knownzero-shift.ll | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/llvm/test/Analysis/ValueTracking/knownzero-shift.ll b/llvm/test/Analysis/ValueTracking/knownzero-shift.ll index cf5c0a05f21..4ceb822afa1 100644 --- a/llvm/test/Analysis/ValueTracking/knownzero-shift.ll +++ b/llvm/test/Analysis/ValueTracking/knownzero-shift.ll @@ -24,13 +24,9 @@ define i32 @shl_shl(i32 %A) { ret i32 %C } -; FIXME - define <2 x i33> @shl_shl_splat_vec(<2 x i33> %A) { ; CHECK-LABEL: @shl_shl_splat_vec( -; CHECK-NEXT: [[B:%.*]] = shl <2 x i33> %A, <i33 5, i33 5> -; CHECK-NEXT: [[C:%.*]] = shl <2 x i33> [[B]], <i33 28, i33 28> -; CHECK-NEXT: ret <2 x i33> [[C]] +; CHECK-NEXT: ret <2 x i33> zeroinitializer ; %B = shl <2 x i33> %A, <i33 5, i33 5> %C = shl <2 x i33> %B, <i33 28, i33 28> @@ -59,26 +55,18 @@ define i232 @lshr_lshr(i232 %A) { ret i232 %C } -; FIXME - define <2 x i32> @lshr_lshr_splat_vec(<2 x i32> %A) { ; CHECK-LABEL: @lshr_lshr_splat_vec( -; CHECK-NEXT: [[B:%.*]] = lshr <2 x i32> %A, <i32 28, i32 28> -; CHECK-NEXT: [[C:%.*]] = lshr <2 x i32> [[B]], <i32 4, i32 4> -; CHECK-NEXT: ret <2 x i32> [[C]] +; CHECK-NEXT: ret <2 x i32> zeroinitializer ; %B = lshr <2 x i32> %A, <i32 28, i32 28> %C = lshr <2 x i32> %B, <i32 4, i32 4> ret <2 x i32> %C } -; FIXME - define <2 x i32> @lshr_lshr_vec(<2 x i32> %A) { ; CHECK-LABEL: @lshr_lshr_vec( -; CHECK-NEXT: [[B:%.*]] = lshr <2 x i32> %A, <i32 29, i32 28> -; CHECK-NEXT: [[C:%.*]] = lshr <2 x i32> [[B]], <i32 4, i32 5> -; CHECK-NEXT: ret <2 x i32> [[C]] +; CHECK-NEXT: ret <2 x i32> zeroinitializer ; %B = lshr <2 x i32> %A, <i32 29, i32 28> %C = lshr <2 x i32> %B, <i32 4, i32 5> |

