You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
1.0 KiB
25 lines
1.0 KiB
; RUN: llc -O1 < %s | FileCheck %s
|
|
target triple = "powerpc64le-linux-gnu"
|
|
|
|
; The second xxspltw should be eliminated.
|
|
; CHECK: xxspltw
|
|
; CHECK-NOT: xxspltw
|
|
define void @Test() {
|
|
bb4:
|
|
%tmp = load <4 x i8>, <4 x i8>* undef
|
|
%tmp8 = bitcast <4 x i8> %tmp to float
|
|
%tmp18 = fmul float %tmp8, undef
|
|
%tmp19 = fsub float 0.000000e+00, %tmp18
|
|
store float %tmp19, float* undef
|
|
%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>
|
|
%tmp23 = bitcast <16 x i8> %tmp22 to <4 x float>
|
|
%tmp25 = tail call <4 x float> @llvm.fma.v4f32(<4 x float> undef, <4 x float> %tmp23, <4 x float> undef)
|
|
%tmp26 = fsub <4 x float> zeroinitializer, %tmp25
|
|
%tmp27 = bitcast <4 x float> %tmp26 to <4 x i32>
|
|
tail call void @llvm.ppc.altivec.stvx(<4 x i32> %tmp27, i8* undef)
|
|
ret void
|
|
}
|
|
|
|
declare void @llvm.ppc.altivec.stvx(<4 x i32>, i8*)
|
|
declare <4 x float> @llvm.fma.v4f32(<4 x float>, <4 x float>, <4 x float>)
|