25 lines · plain
1; RUN: llc -O1 < %s | FileCheck %s2target triple = "powerpc64le-linux-gnu"3 4; The second xxspltw should be eliminated.5; CHECK: xxspltw6; CHECK-NOT: xxspltw7define void @Test() {8bb4:9 %tmp = load <4 x i8>, ptr undef10 %tmp8 = bitcast <4 x i8> %tmp to float11 %tmp18 = fmul float %tmp8, undef12 %tmp19 = fsub float 0.000000e+00, %tmp1813 store float %tmp19, ptr undef14 %tmp22 = shufflevector <4 x i8> %tmp, <4 x i8> undef, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>15 %tmp23 = bitcast <16 x i8> %tmp22 to <4 x float>16 %tmp25 = tail call <4 x float> @llvm.fma.v4f32(<4 x float> undef, <4 x float> %tmp23, <4 x float> undef)17 %tmp26 = fsub <4 x float> zeroinitializer, %tmp2518 %tmp27 = bitcast <4 x float> %tmp26 to <4 x i32>19 tail call void @llvm.ppc.altivec.stvx(<4 x i32> %tmp27, ptr undef)20 ret void21}22 23declare void @llvm.ppc.altivec.stvx(<4 x i32>, ptr)24declare <4 x float> @llvm.fma.v4f32(<4 x float>, <4 x float>, <4 x float>)25