xref: /aosp_15_r20/external/llvm/test/CodeGen/PowerPC/vsx-div.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=pwr7 -mattr=+vsx -O1 -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker@vf = global <4 x float> <float -1.500000e+00, float 2.500000e+00, float -3.500000e+00, float 4.500000e+00>, align 16
4*9880d681SAndroid Build Coastguard Worker@vd = global <2 x double> <double 3.500000e+00, double -7.500000e+00>, align 16
5*9880d681SAndroid Build Coastguard Worker@vf_res = common global <4 x float> zeroinitializer, align 16
6*9880d681SAndroid Build Coastguard Worker@vd_res = common global <2 x double> zeroinitializer, align 16
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Workerdefine void @test1() {
9*9880d681SAndroid Build Coastguard Workerentry:
10*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x float>, <4 x float>* @vf, align 16
11*9880d681SAndroid Build Coastguard Worker  %1 = tail call <4 x float> @llvm.ppc.vsx.xvdivsp(<4 x float> %0, <4 x float> %0)
12*9880d681SAndroid Build Coastguard Worker  store <4 x float> %1, <4 x float>* @vf_res, align 16
13*9880d681SAndroid Build Coastguard Worker  ret void
14*9880d681SAndroid Build Coastguard Worker}
15*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test1
16*9880d681SAndroid Build Coastguard Worker; CHECK: xvdivsp
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerdefine void @test2() {
19*9880d681SAndroid Build Coastguard Workerentry:
20*9880d681SAndroid Build Coastguard Worker  %0 = load <2 x double>, <2 x double>* @vd, align 16
21*9880d681SAndroid Build Coastguard Worker  %1 = tail call <2 x double> @llvm.ppc.vsx.xvdivdp(<2 x double> %0, <2 x double> %0)
22*9880d681SAndroid Build Coastguard Worker  store <2 x double> %1, <2 x double>* @vd_res, align 16
23*9880d681SAndroid Build Coastguard Worker  ret void
24*9880d681SAndroid Build Coastguard Worker}
25*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test2
26*9880d681SAndroid Build Coastguard Worker; CHECK: xvdivdp
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.ppc.vsx.xvdivdp(<2 x double>, <2 x double>)
29*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.ppc.vsx.xvdivsp(<4 x float>, <4 x float>)
30