1; RUN: llc -O1 < %s | FileCheck %s 2target triple = "powerpc64le-linux-gnu" 3 4; The second xxspltw should be eliminated. 5; CHECK: xxspltw 6; CHECK-NOT: xxspltw 7define void @Test() { 8bb4: 9 %tmp = load <4 x i8>, <4 x i8>* undef 10 %tmp8 = bitcast <4 x i8> %tmp to float 11 %tmp18 = fmul float %tmp8, undef 12 %tmp19 = fsub float 0.000000e+00, %tmp18 13 store float %tmp19, float* undef 14 %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, %tmp25 18 %tmp27 = bitcast <4 x float> %tmp26 to <4 x i32> 19 tail call void @llvm.ppc.altivec.stvx(<4 x i32> %tmp27, i8* undef) 20 ret void 21} 22 23declare void @llvm.ppc.altivec.stvx(<4 x i32>, i8*) 24declare <4 x float> @llvm.fma.v4f32(<4 x float>, <4 x float>, <4 x float>) 25