]> granicus.if.org Git - llvm/commitdiff
[InstCombine] add test to show missed vector fold; NFC
authorSanjay Patel <spatel@rotateright.com>
Sat, 14 Jan 2017 23:12:29 +0000 (23:12 +0000)
committerSanjay Patel <spatel@rotateright.com>
Sat, 14 Jan 2017 23:12:29 +0000 (23:12 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292035 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/InstCombine/signext.ll

index bccadeb396f202a3eceee1f2b357fb8dc302abd6..66cee2460ebf1dd3f41714778bea906c74a230d0 100644 (file)
@@ -72,6 +72,19 @@ define i32 @test6(i16 %P) {
   ret i32 %tmp.5
 }
 
+define <2 x i32> @test6_splat_vec(<2 x i12> %P) {
+; CHECK-LABEL: @test6_splat_vec(
+; CHECK-NEXT:    [[Z:%.*]] = zext <2 x i12> %P to <2 x i32>
+; CHECK-NEXT:    [[SHL:%.*]] = shl nuw <2 x i32> [[Z]], <i32 20, i32 20>
+; CHECK-NEXT:    [[ASHR:%.*]] = ashr <2 x i32> [[SHL]], <i32 20, i32 20>
+; CHECK-NEXT:    ret <2 x i32> [[ASHR]]
+;
+  %z = zext <2 x i12> %P to <2 x i32>
+  %shl = shl <2 x i32> %z, <i32 20, i32 20>
+  %ashr = ashr <2 x i32> %shl, <i32 20, i32 20>
+  ret <2 x i32> %ashr
+}
+
 define i32 @test7(i32 %x) {
 ; CHECK-LABEL: @test7(
 ; CHECK-NEXT:    [[SUB:%.*]] = ashr i32 %x, 5