@@ -238,3 +238,37 @@ define void @test7() {
238
238
store <8 x i16 > %3 , ptr null , align 2
239
239
ret void
240
240
}
241
+
242
+ define void @test8 () {
243
+ ; CHECK-LABEL: @test8(
244
+ ; CHECK-NEXT: entry:
245
+ ; CHECK-NEXT: [[TMP0:%.*]] = call <8 x float> @llvm.vector.insert.v8f32.v2f32(<8 x float> poison, <2 x float> zeroinitializer, i64 0)
246
+ ; CHECK-NEXT: [[TMP1:%.*]] = call <8 x float> @llvm.vector.insert.v8f32.v2f32(<8 x float> [[TMP0]], <2 x float> zeroinitializer, i64 2)
247
+ ; CHECK-NEXT: [[TMP2:%.*]] = call <8 x float> @llvm.vector.insert.v8f32.v2f32(<8 x float> [[TMP1]], <2 x float> zeroinitializer, i64 4)
248
+ ; CHECK-NEXT: [[TMP3:%.*]] = call <8 x float> @llvm.vector.insert.v8f32.v2f32(<8 x float> [[TMP2]], <2 x float> zeroinitializer, i64 6)
249
+ ; CHECK-NEXT: [[TMP4:%.*]] = call <4 x float> @llvm.vector.insert.v4f32.v2f32(<4 x float> poison, <2 x float> zeroinitializer, i64 0)
250
+ ; CHECK-NEXT: [[TMP5:%.*]] = call <4 x float> @llvm.vector.insert.v4f32.v2f32(<4 x float> [[TMP4]], <2 x float> zeroinitializer, i64 2)
251
+ ; CHECK-NEXT: br i1 false, label [[FOR0:%.*]], label [[FOR_BODY:%.*]]
252
+ ; CHECK: for0:
253
+ ; CHECK-NEXT: [[TMP6:%.*]] = phi <8 x float> [ [[TMP3]], [[ENTRY:%.*]] ], [ [[TMP8:%.*]], [[FOR_BODY]] ]
254
+ ; CHECK-NEXT: ret void
255
+ ; CHECK: for.body:
256
+ ; CHECK-NEXT: [[TMP7:%.*]] = phi <4 x float> [ [[TMP7]], [[FOR_BODY]] ], [ [[TMP5]], [[ENTRY]] ]
257
+ ; CHECK-NEXT: [[TMP8]] = shufflevector <4 x float> [[TMP7]], <4 x float> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
258
+ ; CHECK-NEXT: br i1 false, label [[FOR0]], label [[FOR_BODY]]
259
+ ;
260
+ entry:
261
+ br i1 false , label %for0 , label %for.body
262
+
263
+ for0:
264
+ %0 = phi <2 x float > [ zeroinitializer , %entry ], [ %4 , %for.body ]
265
+ %1 = phi <2 x float > [ zeroinitializer , %entry ], [ %5 , %for.body ]
266
+ %2 = phi <2 x float > [ zeroinitializer , %entry ], [ %4 , %for.body ]
267
+ %3 = phi <2 x float > [ zeroinitializer , %entry ], [ %5 , %for.body ]
268
+ ret void
269
+
270
+ for.body:
271
+ %4 = phi <2 x float > [ %4 , %for.body ], [ zeroinitializer , %entry ]
272
+ %5 = phi <2 x float > [ %5 , %for.body ], [ zeroinitializer , %entry ]
273
+ br i1 false , label %for0 , label %for.body
274
+ }
0 commit comments