Home | History | Annotate | Download | only in PowerPC
      1 ; RUN: llc -O1 < %s | FileCheck %s
      2 target triple = "powerpc64le-linux-gnu"
      3 
      4 ; The second xxspltw should be eliminated.
      5 ; CHECK: xxspltw
      6 ; CHECK-NOT: xxspltw
      7 define void @Test() {
      8 bb4:
      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 
     23 declare void @llvm.ppc.altivec.stvx(<4 x i32>, i8*)
     24 declare <4 x float> @llvm.fma.v4f32(<4 x float>, <4 x float>, <4 x float>)
     25