diff options
author | Craig Topper <craig.topper@intel.com> | 2017-08-06 22:17:21 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2017-08-06 22:17:21 +0000 |
commit | 9cbdbefd0fb500df86fc7f0391ffccd532d37b34 (patch) | |
tree | 7c3503bd4a6826aece5b60bfa22d3f73adc0446c /llvm/test/Transforms | |
parent | 61bd3a4840f78ab8b3ecfa633d14e92f95acd0e5 (diff) | |
download | bcm5719-llvm-9cbdbefd0fb500df86fc7f0391ffccd532d37b34.tar.gz bcm5719-llvm-9cbdbefd0fb500df86fc7f0391ffccd532d37b34.zip |
[InstCombine] Support '(C - X) ^ signmask -> (C + signmask - X)' and '(X + C) ^ signmask -> (X + C + signmask)' for vector splats.
llvm-svn: 310232
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r-- | llvm/test/Transforms/InstCombine/xor.ll | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/xor.ll b/llvm/test/Transforms/InstCombine/xor.ll index 16757711427..a26a089be62 100644 --- a/llvm/test/Transforms/InstCombine/xor.ll +++ b/llvm/test/Transforms/InstCombine/xor.ll @@ -383,6 +383,16 @@ define i32 @test28(i32 %indvar) { ret i32 %t214 } +define <2 x i32> @test28vec(<2 x i32> %indvar) { +; CHECK-LABEL: @test28vec( +; CHECK-NEXT: [[T214:%.*]] = add <2 x i32> [[INDVAR:%.*]], <i32 1, i32 1> +; CHECK-NEXT: ret <2 x i32> [[T214]] +; + %t7 = add <2 x i32> %indvar, <i32 -2147483647, i32 -2147483647> + %t214 = xor <2 x i32> %t7, <i32 -2147483648, i32 -2147483648> + ret <2 x i32> %t214 +} + define i32 @test28_sub(i32 %indvar) { ; CHECK-LABEL: @test28_sub( ; CHECK-NEXT: [[T214:%.*]] = sub i32 1, [[INDVAR:%.*]] @@ -393,6 +403,16 @@ define i32 @test28_sub(i32 %indvar) { ret i32 %t214 } +define <2 x i32> @test28_subvec(<2 x i32> %indvar) { +; CHECK-LABEL: @test28_subvec( +; CHECK-NEXT: [[T214:%.*]] = sub <2 x i32> <i32 1, i32 1>, [[INDVAR:%.*]] +; CHECK-NEXT: ret <2 x i32> [[T214]] +; + %t7 = sub <2 x i32> <i32 -2147483647, i32 -2147483647>, %indvar + %t214 = xor <2 x i32> %t7, <i32 -2147483648, i32 -2147483648> + ret <2 x i32> %t214 +} + define i32 @test29(i1 %C) { ; CHECK-LABEL: @test29( ; CHECK-NEXT: [[V:%.*]] = select i1 [[C:%.*]], i32 915, i32 113 |