brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1020 B · fc412e4 Raw
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