Changpeng Fang | 54cf69c | 2023-02-02 18:57:26 -0800 | [diff] [blame] | 1 | ; RUN: llc -mtriple=amdgcn--amdhsa -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s |
Matt Arsenault | 7293f98 | 2016-01-28 20:53:35 +0000 | [diff] [blame] | 2 | |
Matt Arsenault | b2cb5f8 | 2016-07-09 07:55:03 +0000 | [diff] [blame] | 3 | ; GCN-LABEL: {{^}}test_default_ci: |
Pierre van Houtryve | fe2f67e | 2023-09-21 12:00:45 +0200 | [diff] [blame] | 4 | ; GCN: .amdhsa_dx10_clamp 1 |
| 5 | ; GCN: .amdhsa_ieee_mode 1 |
| 6 | ; GCN: FloatMode: 240 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 7 | define amdgpu_kernel void @test_default_ci(ptr addrspace(1) %out0, ptr addrspace(1) %out1) #0 { |
| 8 | store float 0.0, ptr addrspace(1) %out0 |
| 9 | store double 0.0, ptr addrspace(1) %out1 |
Matt Arsenault | 7293f98 | 2016-01-28 20:53:35 +0000 | [diff] [blame] | 10 | ret void |
| 11 | } |
Matt Arsenault | b2cb5f8 | 2016-07-09 07:55:03 +0000 | [diff] [blame] | 12 | |
| 13 | ; GCN-LABEL: {{^}}test_default_vi: |
Pierre van Houtryve | fe2f67e | 2023-09-21 12:00:45 +0200 | [diff] [blame] | 14 | ; GCN: .amdhsa_dx10_clamp 1 |
| 15 | ; GCN: .amdhsa_ieee_mode 1 |
| 16 | ; GCN: FloatMode: 240 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 17 | define amdgpu_kernel void @test_default_vi(ptr addrspace(1) %out0, ptr addrspace(1) %out1) #1 { |
| 18 | store float 0.0, ptr addrspace(1) %out0 |
| 19 | store double 0.0, ptr addrspace(1) %out1 |
Matt Arsenault | b2cb5f8 | 2016-07-09 07:55:03 +0000 | [diff] [blame] | 20 | ret void |
| 21 | } |
| 22 | |
| 23 | ; GCN-LABEL: {{^}}test_f64_denormals: |
Pierre van Houtryve | fe2f67e | 2023-09-21 12:00:45 +0200 | [diff] [blame] | 24 | ; GCN: .amdhsa_dx10_clamp 1 |
| 25 | ; GCN: .amdhsa_ieee_mode 1 |
| 26 | ; GCN: FloatMode: 192 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 27 | define amdgpu_kernel void @test_f64_denormals(ptr addrspace(1) %out0, ptr addrspace(1) %out1) #2 { |
| 28 | store float 0.0, ptr addrspace(1) %out0 |
| 29 | store double 0.0, ptr addrspace(1) %out1 |
Matt Arsenault | b2cb5f8 | 2016-07-09 07:55:03 +0000 | [diff] [blame] | 30 | ret void |
| 31 | } |
| 32 | |
| 33 | ; GCN-LABEL: {{^}}test_f32_denormals: |
Pierre van Houtryve | fe2f67e | 2023-09-21 12:00:45 +0200 | [diff] [blame] | 34 | ; GCN: .amdhsa_dx10_clamp 1 |
| 35 | ; GCN: .amdhsa_ieee_mode 1 |
| 36 | ; GCN: FloatMode: 48 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 37 | define amdgpu_kernel void @test_f32_denormals(ptr addrspace(1) %out0, ptr addrspace(1) %out1) #3 { |
| 38 | store float 0.0, ptr addrspace(1) %out0 |
| 39 | store double 0.0, ptr addrspace(1) %out1 |
Matt Arsenault | b2cb5f8 | 2016-07-09 07:55:03 +0000 | [diff] [blame] | 40 | ret void |
| 41 | } |
| 42 | |
| 43 | ; GCN-LABEL: {{^}}test_f32_f64_denormals: |
Pierre van Houtryve | fe2f67e | 2023-09-21 12:00:45 +0200 | [diff] [blame] | 44 | ; GCN: .amdhsa_dx10_clamp 1 |
| 45 | ; GCN: .amdhsa_ieee_mode 1 |
| 46 | ; GCN: FloatMode: 240 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 47 | define amdgpu_kernel void @test_f32_f64_denormals(ptr addrspace(1) %out0, ptr addrspace(1) %out1) #4 { |
| 48 | store float 0.0, ptr addrspace(1) %out0 |
| 49 | store double 0.0, ptr addrspace(1) %out1 |
Matt Arsenault | b2cb5f8 | 2016-07-09 07:55:03 +0000 | [diff] [blame] | 50 | ret void |
| 51 | } |
| 52 | |
| 53 | ; GCN-LABEL: {{^}}test_no_denormals: |
Pierre van Houtryve | fe2f67e | 2023-09-21 12:00:45 +0200 | [diff] [blame] | 54 | ; GCN: .amdhsa_dx10_clamp 1 |
| 55 | ; GCN: .amdhsa_ieee_mode 1 |
| 56 | ; GCN: FloatMode: 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 57 | define amdgpu_kernel void @test_no_denormals(ptr addrspace(1) %out0, ptr addrspace(1) %out1) #5 { |
| 58 | store float 0.0, ptr addrspace(1) %out0 |
| 59 | store double 0.0, ptr addrspace(1) %out1 |
Matt Arsenault | b2cb5f8 | 2016-07-09 07:55:03 +0000 | [diff] [blame] | 60 | ret void |
| 61 | } |
| 62 | |
Matt Arsenault | 2fdf2a1 | 2017-02-21 23:35:48 +0000 | [diff] [blame] | 63 | ; GCN-LABEL: {{^}}test_no_dx10_clamp_vi: |
Pierre van Houtryve | fe2f67e | 2023-09-21 12:00:45 +0200 | [diff] [blame] | 64 | ; GCN: .amdhsa_dx10_clamp 0 |
| 65 | ; GCN: .amdhsa_ieee_mode 1 |
| 66 | ; GCN: FloatMode: 240 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 67 | define amdgpu_kernel void @test_no_dx10_clamp_vi(ptr addrspace(1) %out0, ptr addrspace(1) %out1) #6 { |
| 68 | store float 0.0, ptr addrspace(1) %out0 |
| 69 | store double 0.0, ptr addrspace(1) %out1 |
Matt Arsenault | 2fdf2a1 | 2017-02-21 23:35:48 +0000 | [diff] [blame] | 70 | ret void |
| 71 | } |
| 72 | |
Matt Arsenault | 055e4dc | 2019-03-29 19:14:54 +0000 | [diff] [blame] | 73 | ; GCN-LABEL: {{^}}test_no_ieee_mode_vi: |
Pierre van Houtryve | fe2f67e | 2023-09-21 12:00:45 +0200 | [diff] [blame] | 74 | ; GCN: .amdhsa_dx10_clamp 1 |
| 75 | ; GCN: .amdhsa_ieee_mode 0 |
| 76 | ; GCN: FloatMode: 240 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 77 | define amdgpu_kernel void @test_no_ieee_mode_vi(ptr addrspace(1) %out0, ptr addrspace(1) %out1) #7 { |
| 78 | store float 0.0, ptr addrspace(1) %out0 |
| 79 | store double 0.0, ptr addrspace(1) %out1 |
Matt Arsenault | 055e4dc | 2019-03-29 19:14:54 +0000 | [diff] [blame] | 80 | ret void |
| 81 | } |
| 82 | |
| 83 | ; GCN-LABEL: {{^}}test_no_ieee_mode_no_dx10_clamp_vi: |
Pierre van Houtryve | fe2f67e | 2023-09-21 12:00:45 +0200 | [diff] [blame] | 84 | ; GCN: .amdhsa_dx10_clamp 0 |
| 85 | ; GCN: .amdhsa_ieee_mode 0 |
| 86 | ; GCN: FloatMode: 240 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 87 | define amdgpu_kernel void @test_no_ieee_mode_no_dx10_clamp_vi(ptr addrspace(1) %out0, ptr addrspace(1) %out1) #8 { |
| 88 | store float 0.0, ptr addrspace(1) %out0 |
| 89 | store double 0.0, ptr addrspace(1) %out1 |
Matt Arsenault | 055e4dc | 2019-03-29 19:14:54 +0000 | [diff] [blame] | 90 | ret void |
| 91 | } |
| 92 | |
Konstantin Zhuravlyov | 3fdf3b1 | 2020-10-14 13:03:37 -0400 | [diff] [blame] | 93 | attributes #0 = { nounwind "target-cpu"="kaveri" } |
| 94 | attributes #1 = { nounwind "target-cpu"="fiji" } |
| 95 | attributes #2 = { nounwind "denormal-fp-math-f32"="preserve-sign,preserve-sign" } |
| 96 | attributes #3 = { nounwind "denormal-fp-math-f32"="ieee,ieee" "denormal-fp-math"="preserve-sign,preserve-sign" } |
| 97 | attributes #4 = { nounwind "denormal-fp-math"="ieee,ieee" } |
| 98 | attributes #5 = { nounwind "denormal-fp-math"="preserve-sign,preserve-sign" } |
| 99 | attributes #6 = { nounwind "amdgpu-dx10-clamp"="false" "target-cpu"="fiji" } |
| 100 | attributes #7 = { nounwind "amdgpu-ieee"="false" "target-cpu"="fiji" } |
| 101 | attributes #8 = { nounwind "amdgpu-dx10-clamp"="false" "amdgpu-ieee"="false" "target-cpu"="fiji" } |
Changpeng Fang | 54cf69c | 2023-02-02 18:57:26 -0800 | [diff] [blame] | 102 | |
| 103 | !llvm.module.flags = !{!0} |
Emma Pilkington | 4490003 | 2024-03-06 09:51:48 -0500 | [diff] [blame] | 104 | !0 = !{i32 1, !"amdhsa_code_object_version", i32 400} |