[LLVM][Alignment] Make functions using log of alignment explicit
[llvm-complete.git] / test / CodeGen / PowerPC / pr30663.ll
blob0772fcaadfe95ed6286a39800f199263da27d742
1 ; RUN: llc -O1 < %s | FileCheck %s
2 target triple = "powerpc64le-linux-gnu"
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
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>)