diff options
| author | Sanjay Patel <spatel@rotateright.com> | 2017-04-15 17:50:45 +0000 |
|---|---|---|
| committer | Sanjay Patel <spatel@rotateright.com> | 2017-04-15 17:50:45 +0000 |
| commit | c8405b82a16bcde1e7bea28f157e1cee380bc281 (patch) | |
| tree | f098a2c19f35d07a549950d6daf5b2a4218fa799 /llvm | |
| parent | 565019ff3209ba5f50895b43d00007c4e105a379 (diff) | |
| download | bcm5719-llvm-c8405b82a16bcde1e7bea28f157e1cee380bc281.tar.gz bcm5719-llvm-c8405b82a16bcde1e7bea28f157e1cee380bc281.zip | |
[InstCombine] add tests to show missing transforms for vectors; NFC
llvm-svn: 300401
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/test/Transforms/InstCombine/and-or-icmps.ll | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/and-or-icmps.ll b/llvm/test/Transforms/InstCombine/and-or-icmps.ll index e5aa3a184fa..ddb3fbc283f 100644 --- a/llvm/test/Transforms/InstCombine/and-or-icmps.ll +++ b/llvm/test/Transforms/InstCombine/and-or-icmps.ll @@ -177,5 +177,31 @@ define i1 @and_ne_with_diff_one_signed(i64 %x) { ret i1 %and } +; FIXME: Vectors with splat constants get the same folds. + +define <2 x i1> @or_eq_with_one_bit_diff_constants2_splatvec(<2 x i32> %x) { +; CHECK-LABEL: @or_eq_with_one_bit_diff_constants2_splatvec( +; CHECK-NEXT: [[CMP1:%.*]] = icmp eq <2 x i32> %x, <i32 97, i32 97> +; CHECK-NEXT: [[CMP2:%.*]] = icmp eq <2 x i32> %x, <i32 65, i32 65> +; CHECK-NEXT: [[OR:%.*]] = or <2 x i1> [[CMP1]], [[CMP2]] +; CHECK-NEXT: ret <2 x i1> [[OR]] +; + %cmp1 = icmp eq <2 x i32> %x, <i32 97, i32 97> + %cmp2 = icmp eq <2 x i32> %x, <i32 65, i32 65> + %or = or <2 x i1> %cmp1, %cmp2 + ret <2 x i1> %or +} +define <2 x i1> @and_ne_with_diff_one_splatvec(<2 x i32> %x) { +; CHECK-LABEL: @and_ne_with_diff_one_splatvec( +; CHECK-NEXT: [[CMP1:%.*]] = icmp ne <2 x i32> %x, <i32 40, i32 40> +; CHECK-NEXT: [[CMP2:%.*]] = icmp ne <2 x i32> %x, <i32 39, i32 39> +; CHECK-NEXT: [[AND:%.*]] = and <2 x i1> [[CMP1]], [[CMP2]] +; CHECK-NEXT: ret <2 x i1> [[AND]] +; + %cmp1 = icmp ne <2 x i32> %x, <i32 40, i32 40> + %cmp2 = icmp ne <2 x i32> %x, <i32 39, i32 39> + %and = and <2 x i1> %cmp1, %cmp2 + ret <2 x i1> %and +} |

