xref: /aosp_15_r20/external/llvm/test/CodeGen/PowerPC/vec_fneg.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=ppc32 -mcpu=g5 | FileCheck %s -check-prefix=CHECK-NOVSX
2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=powerpc64le-unknown-linux-gnu -march=ppc64le \
3*9880d681SAndroid Build Coastguard Worker; RUN:          -mattr=+altivec -mattr=+vsx |  FileCheck %s
4*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=powerpc64le-unknown-linux-gnu -march=ppc64le \
5*9880d681SAndroid Build Coastguard Worker; RUN:          -mattr=+altivec -mattr=-vsx |  FileCheck %s \
6*9880d681SAndroid Build Coastguard Worker; RUN:          -check-prefix=CHECK-NOVSX
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Workerdefine void @test_float(<4 x float>* %A) {
9*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_float
10*9880d681SAndroid Build Coastguard Worker; CHECK-NOVSX-LABEL: test_float
11*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <4 x float>, <4 x float>* %A
12*9880d681SAndroid Build Coastguard Worker	%tmp3 = fsub <4 x float> < float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00 >, %tmp2
13*9880d681SAndroid Build Coastguard Worker	store <4 x float> %tmp3, <4 x float>* %A
14*9880d681SAndroid Build Coastguard Worker	ret void
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Worker; CHECK: xvnegsp
17*9880d681SAndroid Build Coastguard Worker; CHECK: blr
18*9880d681SAndroid Build Coastguard Worker; CHECK-NOVSX: vsubfp
19*9880d681SAndroid Build Coastguard Worker; CHECK-NOVSX: blr
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker}
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Workerdefine void @test_double(<2 x double>* %A) {
24*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_double
25*9880d681SAndroid Build Coastguard Worker; CHECK-NOVSX-LABEL: test_double
26*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <2 x double>, <2 x double>* %A
27*9880d681SAndroid Build Coastguard Worker	%tmp3 = fsub <2 x double> < double -0.000000e+00, double -0.000000e+00 >, %tmp2
28*9880d681SAndroid Build Coastguard Worker	store <2 x double> %tmp3, <2 x double>* %A
29*9880d681SAndroid Build Coastguard Worker	ret void
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Worker; CHECK: xvnegdp
32*9880d681SAndroid Build Coastguard Worker; CHECK: blr
33*9880d681SAndroid Build Coastguard Worker; CHECK-NOVSX: fneg
34*9880d681SAndroid Build Coastguard Worker; CHECK-NOVSX: fneg
35*9880d681SAndroid Build Coastguard Worker; CHECK-NOVSX: blr
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Worker}
38