@@ -82,3 +82,30 @@ entry:
8282 store <4 x i32 > %4 , ptr %8 , align 4
8383 ret void
8484}
85+
86+ define void @test4 (ptr %in ) {
87+ entry:
88+ br label %label0
89+
90+ label 0:
91+ %0 = load <8 x float >, ptr %in , align 4
92+ %1 = shufflevector <8 x float > %0 , <8 x float > zeroinitializer , <4 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 >
93+ %2 = shufflevector <8 x float > %0 , <8 x float > zeroinitializer , <4 x i32 > <i32 4 , i32 5 , i32 6 , i32 7 >
94+ %3 = call <4 x float > @llvm.fma.v4f32 (<4 x float > %1 , <4 x float > zeroinitializer , <4 x float > zeroinitializer )
95+ %4 = call <4 x float > @llvm.fma.v4f32 (<4 x float > %2 , <4 x float > zeroinitializer , <4 x float > zeroinitializer )
96+ %5 = call <4 x float > @llvm.fma.v4f32 (<4 x float > %1 , <4 x float > zeroinitializer , <4 x float > zeroinitializer )
97+ %6 = call <4 x float > @llvm.fma.v4f32 (<4 x float > %2 , <4 x float > zeroinitializer , <4 x float > zeroinitializer )
98+ br label %label2
99+
100+ label 1:
101+ br label %label2
102+
103+ label 2:
104+ %7 = phi <4 x float > [ %3 , %label0 ], [ zeroinitializer , %label1 ]
105+ %8 = phi <4 x float > [ %4 , %label0 ], [ zeroinitializer , %label1 ]
106+ %9 = phi <4 x float > [ %5 , %label0 ], [ zeroinitializer , %label1 ]
107+ %10 = phi <4 x float > [ %6 , %label0 ], [ zeroinitializer , %label1 ]
108+ br label %label0
109+ }
110+
111+ declare <4 x float > @llvm.fma.v4f32 (<4 x float >, <4 x float >, <4 x float >)
0 commit comments