[InstCombine] Pre-commit test for D124015
authorCraig Topper <craig.topper@sifive.com>
Wed, 20 Apr 2022 16:05:28 +0000 (09:05 -0700)
committerCraig Topper <craig.topper@sifive.com>
Wed, 20 Apr 2022 16:15:32 +0000 (09:15 -0700)
Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D124016

llvm/test/Transforms/InstCombine/bitcast.ll

index b8fe1f2c3886076d66c297b46a3e65d238562df1..94f532a461614f63d640b9ec5ceb7c64bf0dc819 100644 (file)
@@ -431,6 +431,20 @@ define <2 x float> @test6(float %A){
   ret <2 x float> %tmp35
 }
 
+; FIXME: This test should not be optimized by OptimizeIntegerToVectorInsertions.
+; The bitcast from vector is confusing it.
+define <2 x i64> @int2vec_insertion_bitcast_from_vec(i64 %x) {
+; CHECK-LABEL: @int2vec_insertion_bitcast_from_vec(
+; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <2 x i64> <i64 poison, i64 0>, i64 [[X:%.*]], i64 0
+; CHECK-NEXT:    ret <2 x i64> [[TMP1]]
+;
+  %a = bitcast i64 %x to <8 x i8>
+  %b = zext <8 x i8> %a to <8 x i16>
+  %c = bitcast <8 x i16> %b to i128
+  %d = bitcast i128 %c to <2 x i64>
+  ret <2 x i64> %d
+}
+
 define i64 @ISPC0(i64 %in) {
 ; CHECK-LABEL: @ISPC0(
 ; CHECK-NEXT:    ret i64 0