xref: /aosp_15_r20/external/llvm/test/CodeGen/AMDGPU/default-fp-mode.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; GCN-LABEL: {{^}}test_default_si:
4*9880d681SAndroid Build Coastguard Worker; GCN: FloatMode: 192
5*9880d681SAndroid Build Coastguard Worker; GCN: IeeeMode: 0
6*9880d681SAndroid Build Coastguard Workerdefine void @test_default_si(float addrspace(1)* %out0, double addrspace(1)* %out1) #0 {
7*9880d681SAndroid Build Coastguard Worker  store float 0.0, float addrspace(1)* %out0
8*9880d681SAndroid Build Coastguard Worker  store double 0.0, double addrspace(1)* %out1
9*9880d681SAndroid Build Coastguard Worker  ret void
10*9880d681SAndroid Build Coastguard Worker}
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker; GCN-LABEL: {{^}}test_default_vi:
13*9880d681SAndroid Build Coastguard Worker; GCN: FloatMode: 192
14*9880d681SAndroid Build Coastguard Worker; GCN: IeeeMode: 0
15*9880d681SAndroid Build Coastguard Workerdefine void @test_default_vi(float addrspace(1)* %out0, double addrspace(1)* %out1) #1 {
16*9880d681SAndroid Build Coastguard Worker  store float 0.0, float addrspace(1)* %out0
17*9880d681SAndroid Build Coastguard Worker  store double 0.0, double addrspace(1)* %out1
18*9880d681SAndroid Build Coastguard Worker  ret void
19*9880d681SAndroid Build Coastguard Worker}
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker; GCN-LABEL: {{^}}test_f64_denormals:
22*9880d681SAndroid Build Coastguard Worker; GCN: FloatMode: 192
23*9880d681SAndroid Build Coastguard Worker; GCN: IeeeMode: 0
24*9880d681SAndroid Build Coastguard Workerdefine void @test_f64_denormals(float addrspace(1)* %out0, double addrspace(1)* %out1) #2 {
25*9880d681SAndroid Build Coastguard Worker  store float 0.0, float addrspace(1)* %out0
26*9880d681SAndroid Build Coastguard Worker  store double 0.0, double addrspace(1)* %out1
27*9880d681SAndroid Build Coastguard Worker  ret void
28*9880d681SAndroid Build Coastguard Worker}
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Worker; GCN-LABEL: {{^}}test_f32_denormals:
31*9880d681SAndroid Build Coastguard Worker; GCNL: FloatMode: 48
32*9880d681SAndroid Build Coastguard Worker; GCN: IeeeMode: 0
33*9880d681SAndroid Build Coastguard Workerdefine void @test_f32_denormals(float addrspace(1)* %out0, double addrspace(1)* %out1) #3 {
34*9880d681SAndroid Build Coastguard Worker  store float 0.0, float addrspace(1)* %out0
35*9880d681SAndroid Build Coastguard Worker  store double 0.0, double addrspace(1)* %out1
36*9880d681SAndroid Build Coastguard Worker  ret void
37*9880d681SAndroid Build Coastguard Worker}
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Worker; GCN-LABEL: {{^}}test_f32_f64_denormals:
40*9880d681SAndroid Build Coastguard Worker; GCN: FloatMode: 240
41*9880d681SAndroid Build Coastguard Worker; GCN: IeeeMode: 0
42*9880d681SAndroid Build Coastguard Workerdefine void @test_f32_f64_denormals(float addrspace(1)* %out0, double addrspace(1)* %out1) #4 {
43*9880d681SAndroid Build Coastguard Worker  store float 0.0, float addrspace(1)* %out0
44*9880d681SAndroid Build Coastguard Worker  store double 0.0, double addrspace(1)* %out1
45*9880d681SAndroid Build Coastguard Worker  ret void
46*9880d681SAndroid Build Coastguard Worker}
47*9880d681SAndroid Build Coastguard Worker
48*9880d681SAndroid Build Coastguard Worker; GCN-LABEL: {{^}}test_no_denormals
49*9880d681SAndroid Build Coastguard Worker; GCN: FloatMode: 0
50*9880d681SAndroid Build Coastguard Worker; GCN: IeeeMode: 0
51*9880d681SAndroid Build Coastguard Workerdefine void @test_no_denormals(float addrspace(1)* %out0, double addrspace(1)* %out1) #5 {
52*9880d681SAndroid Build Coastguard Worker  store float 0.0, float addrspace(1)* %out0
53*9880d681SAndroid Build Coastguard Worker  store double 0.0, double addrspace(1)* %out1
54*9880d681SAndroid Build Coastguard Worker  ret void
55*9880d681SAndroid Build Coastguard Worker}
56*9880d681SAndroid Build Coastguard Worker
57*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind "target-cpu"="tahiti" }
58*9880d681SAndroid Build Coastguard Workerattributes #1 = { nounwind "target-cpu"="fiji" }
59*9880d681SAndroid Build Coastguard Workerattributes #2 = { nounwind "target-features"="+fp64-denormals" }
60*9880d681SAndroid Build Coastguard Workerattributes #3 = { nounwind "target-features"="+fp32-denormals" }
61*9880d681SAndroid Build Coastguard Workerattributes #4 = { nounwind "target-features"="+fp32-denormals,+fp64-denormals" }
62*9880d681SAndroid Build Coastguard Workerattributes #5 = { nounwind "target-features"="-fp32-denormals,-fp64-denormals" }
63