blob: b1901cf894b08ef4f02b02ea800b83c50cd9bae1 [file] [log] [blame]
Matt Arsenaultb2cb5f82016-07-09 07:55:03 +00001; RUN: llc -mtriple=amdgcn--amdhsa -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s
Matt Arsenault7293f982016-01-28 20:53:35 +00002
Matt Arsenaultb2cb5f82016-07-09 07:55:03 +00003; GCN-LABEL: {{^}}test_default_ci:
Sam Koltona2e5c882016-09-09 10:08:02 +00004; GCN: float_mode = 192
5; GCN: enable_dx10_clamp = 1
Wei Ding3cb2a1e2016-10-19 22:34:49 +00006; GCN: enable_ieee_mode = 1
Matt Arsenault3dbeefa2017-03-21 21:39:51 +00007define amdgpu_kernel void @test_default_ci(float addrspace(1)* %out0, double addrspace(1)* %out1) #0 {
Matt Arsenault7293f982016-01-28 20:53:35 +00008 store float 0.0, float addrspace(1)* %out0
9 store double 0.0, double addrspace(1)* %out1
10 ret void
11}
Matt Arsenaultb2cb5f82016-07-09 07:55:03 +000012
13; GCN-LABEL: {{^}}test_default_vi:
Sam Koltona2e5c882016-09-09 10:08:02 +000014; GCN: float_mode = 192
15; GCN: enable_dx10_clamp = 1
Wei Ding3cb2a1e2016-10-19 22:34:49 +000016; GCN: enable_ieee_mode = 1
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000017define amdgpu_kernel void @test_default_vi(float addrspace(1)* %out0, double addrspace(1)* %out1) #1 {
Matt Arsenaultb2cb5f82016-07-09 07:55:03 +000018 store float 0.0, float addrspace(1)* %out0
19 store double 0.0, double addrspace(1)* %out1
20 ret void
21}
22
23; GCN-LABEL: {{^}}test_f64_denormals:
Sam Koltona2e5c882016-09-09 10:08:02 +000024; GCN: float_mode = 192
25; GCN: enable_dx10_clamp = 1
Wei Ding3cb2a1e2016-10-19 22:34:49 +000026; GCN: enable_ieee_mode = 1
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000027define amdgpu_kernel void @test_f64_denormals(float addrspace(1)* %out0, double addrspace(1)* %out1) #2 {
Matt Arsenaultb2cb5f82016-07-09 07:55:03 +000028 store float 0.0, float addrspace(1)* %out0
29 store double 0.0, double addrspace(1)* %out1
30 ret void
31}
32
33; GCN-LABEL: {{^}}test_f32_denormals:
Sam Koltona2e5c882016-09-09 10:08:02 +000034; GCN: float_mode = 48
35; GCN: enable_dx10_clamp = 1
Wei Ding3cb2a1e2016-10-19 22:34:49 +000036; GCN: enable_ieee_mode = 1
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000037define amdgpu_kernel void @test_f32_denormals(float addrspace(1)* %out0, double addrspace(1)* %out1) #3 {
Matt Arsenaultb2cb5f82016-07-09 07:55:03 +000038 store float 0.0, float addrspace(1)* %out0
39 store double 0.0, double addrspace(1)* %out1
40 ret void
41}
42
43; GCN-LABEL: {{^}}test_f32_f64_denormals:
Sam Koltona2e5c882016-09-09 10:08:02 +000044; GCN: float_mode = 240
45; GCN: enable_dx10_clamp = 1
Wei Ding3cb2a1e2016-10-19 22:34:49 +000046; GCN: enable_ieee_mode = 1
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000047define amdgpu_kernel void @test_f32_f64_denormals(float addrspace(1)* %out0, double addrspace(1)* %out1) #4 {
Matt Arsenaultb2cb5f82016-07-09 07:55:03 +000048 store float 0.0, float addrspace(1)* %out0
49 store double 0.0, double addrspace(1)* %out1
50 ret void
51}
52
53; GCN-LABEL: {{^}}test_no_denormals:
Sam Koltona2e5c882016-09-09 10:08:02 +000054; GCN: float_mode = 0
55; GCN: enable_dx10_clamp = 1
Wei Ding3cb2a1e2016-10-19 22:34:49 +000056; GCN: enable_ieee_mode = 1
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000057define amdgpu_kernel void @test_no_denormals(float addrspace(1)* %out0, double addrspace(1)* %out1) #5 {
Matt Arsenaultb2cb5f82016-07-09 07:55:03 +000058 store float 0.0, float addrspace(1)* %out0
59 store double 0.0, double addrspace(1)* %out1
60 ret void
61}
62
Matt Arsenault2fdf2a12017-02-21 23:35:48 +000063; GCN-LABEL: {{^}}test_no_dx10_clamp_vi:
64; GCN: float_mode = 192
65; GCN: enable_dx10_clamp = 0
66; GCN: enable_ieee_mode = 1
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000067define amdgpu_kernel void @test_no_dx10_clamp_vi(float addrspace(1)* %out0, double addrspace(1)* %out1) #6 {
Matt Arsenault2fdf2a12017-02-21 23:35:48 +000068 store float 0.0, float addrspace(1)* %out0
69 store double 0.0, double addrspace(1)* %out1
70 ret void
71}
72
Matt Arsenaultb2cb5f82016-07-09 07:55:03 +000073attributes #0 = { nounwind "target-cpu"="kaveri" }
74attributes #1 = { nounwind "target-cpu"="fiji" }
Matt Arsenaulta6867fd2017-01-23 22:31:03 +000075attributes #2 = { nounwind "target-features"="-fp32-denormals,+fp64-fp16-denormals" }
76attributes #3 = { nounwind "target-features"="+fp32-denormals,-fp64-fp16-denormals" }
77attributes #4 = { nounwind "target-features"="+fp32-denormals,+fp64-fp16-denormals" }
78attributes #5 = { nounwind "target-features"="-fp32-denormals,-fp64-fp16-denormals" }
Matt Arsenault2fdf2a12017-02-21 23:35:48 +000079attributes #6 = { nounwind "target-cpu"="fiji" "target-features"="-dx10-clamp" }