Mercurial > hg > CbC > CbC_llvm
comparison llvm/test/CodeGen/AMDGPU/ffloor.f64.ll @ 252:1f2b6ac9f198 llvm-original
LLVM16-1
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 18 Aug 2023 09:04:13 +0900 (2023-08-18) |
parents | 79ff65ed7e25 |
children |
comparison
equal
deleted
inserted
replaced
237:c80f45b162ad | 252:1f2b6ac9f198 |
---|---|
17 ; SI-DAG: v_cmp_class_f64_e64 vcc | 17 ; SI-DAG: v_cmp_class_f64_e64 vcc |
18 ; SI: v_cndmask_b32_e32 | 18 ; SI: v_cndmask_b32_e32 |
19 ; SI: v_cndmask_b32_e32 | 19 ; SI: v_cndmask_b32_e32 |
20 ; SI: v_add_f64 | 20 ; SI: v_add_f64 |
21 ; SI: s_endpgm | 21 ; SI: s_endpgm |
22 define amdgpu_kernel void @ffloor_f64(double addrspace(1)* %out, double %x) { | 22 define amdgpu_kernel void @ffloor_f64(ptr addrspace(1) %out, double %x) { |
23 %y = call fast double @llvm.floor.f64(double %x) nounwind readnone | 23 %y = call fast double @llvm.floor.f64(double %x) nounwind readnone |
24 store double %y, double addrspace(1)* %out | 24 store double %y, ptr addrspace(1) %out |
25 ret void | 25 ret void |
26 } | 26 } |
27 | 27 |
28 ; FUNC-LABEL: {{^}}ffloor_f64_neg: | 28 ; FUNC-LABEL: {{^}}ffloor_f64_neg: |
29 ; CI: v_floor_f64_e64 | 29 ; CI: v_floor_f64_e64 |
32 ; SI-DAG: v_cmp_class_f64_e64 vcc | 32 ; SI-DAG: v_cmp_class_f64_e64 vcc |
33 ; SI: v_cndmask_b32_e32 | 33 ; SI: v_cndmask_b32_e32 |
34 ; SI: v_cndmask_b32_e32 | 34 ; SI: v_cndmask_b32_e32 |
35 ; SI: v_add_f64 {{v\[[0-9]+:[0-9]+\]}}, -[[INPUT]] | 35 ; SI: v_add_f64 {{v\[[0-9]+:[0-9]+\]}}, -[[INPUT]] |
36 ; SI: s_endpgm | 36 ; SI: s_endpgm |
37 define amdgpu_kernel void @ffloor_f64_neg(double addrspace(1)* %out, double %x) { | 37 define amdgpu_kernel void @ffloor_f64_neg(ptr addrspace(1) %out, double %x) { |
38 %neg = fsub nsz double 0.0, %x | 38 %neg = fsub nsz double 0.0, %x |
39 %y = call fast double @llvm.floor.f64(double %neg) nounwind readnone | 39 %y = call fast double @llvm.floor.f64(double %neg) nounwind readnone |
40 store double %y, double addrspace(1)* %out | 40 store double %y, ptr addrspace(1) %out |
41 ret void | 41 ret void |
42 } | 42 } |
43 | 43 |
44 ; FUNC-LABEL: {{^}}ffloor_f64_neg_abs: | 44 ; FUNC-LABEL: {{^}}ffloor_f64_neg_abs: |
45 ; CI: v_floor_f64_e64 | 45 ; CI: v_floor_f64_e64 |
48 ; SI-DAG: v_cmp_class_f64_e64 vcc | 48 ; SI-DAG: v_cmp_class_f64_e64 vcc |
49 ; SI: v_cndmask_b32_e32 | 49 ; SI: v_cndmask_b32_e32 |
50 ; SI: v_cndmask_b32_e32 | 50 ; SI: v_cndmask_b32_e32 |
51 ; SI: v_add_f64 {{v\[[0-9]+:[0-9]+\]}}, -|[[INPUT]]| | 51 ; SI: v_add_f64 {{v\[[0-9]+:[0-9]+\]}}, -|[[INPUT]]| |
52 ; SI: s_endpgm | 52 ; SI: s_endpgm |
53 define amdgpu_kernel void @ffloor_f64_neg_abs(double addrspace(1)* %out, double %x) { | 53 define amdgpu_kernel void @ffloor_f64_neg_abs(ptr addrspace(1) %out, double %x) { |
54 %abs = call fast double @llvm.fabs.f64(double %x) | 54 %abs = call fast double @llvm.fabs.f64(double %x) |
55 %neg = fsub nsz double 0.0, %abs | 55 %neg = fsub nsz double 0.0, %abs |
56 %y = call fast double @llvm.floor.f64(double %neg) nounwind readnone | 56 %y = call fast double @llvm.floor.f64(double %neg) nounwind readnone |
57 store double %y, double addrspace(1)* %out | 57 store double %y, ptr addrspace(1) %out |
58 ret void | 58 ret void |
59 } | 59 } |
60 | 60 |
61 ; FUNC-LABEL: {{^}}ffloor_v2f64: | 61 ; FUNC-LABEL: {{^}}ffloor_v2f64: |
62 ; CI: v_floor_f64_e32 | 62 ; CI: v_floor_f64_e32 |
63 ; CI: v_floor_f64_e32 | 63 ; CI: v_floor_f64_e32 |
64 define amdgpu_kernel void @ffloor_v2f64(<2 x double> addrspace(1)* %out, <2 x double> %x) { | 64 define amdgpu_kernel void @ffloor_v2f64(ptr addrspace(1) %out, <2 x double> %x) { |
65 %y = call fast <2 x double> @llvm.floor.v2f64(<2 x double> %x) nounwind readnone | 65 %y = call fast <2 x double> @llvm.floor.v2f64(<2 x double> %x) nounwind readnone |
66 store <2 x double> %y, <2 x double> addrspace(1)* %out | 66 store <2 x double> %y, ptr addrspace(1) %out |
67 ret void | 67 ret void |
68 } | 68 } |
69 | 69 |
70 ; FUNC-LABEL: {{^}}ffloor_v3f64: | 70 ; FUNC-LABEL: {{^}}ffloor_v3f64: |
71 ; CI: v_floor_f64_e32 | 71 ; CI: v_floor_f64_e32 |
72 ; CI: v_floor_f64_e32 | 72 ; CI: v_floor_f64_e32 |
73 ; CI: v_floor_f64_e32 | 73 ; CI: v_floor_f64_e32 |
74 ; CI-NOT: v_floor_f64_e32 | 74 ; CI-NOT: v_floor_f64_e32 |
75 define amdgpu_kernel void @ffloor_v3f64(<3 x double> addrspace(1)* %out, <3 x double> %x) { | 75 define amdgpu_kernel void @ffloor_v3f64(ptr addrspace(1) %out, <3 x double> %x) { |
76 %y = call fast <3 x double> @llvm.floor.v3f64(<3 x double> %x) nounwind readnone | 76 %y = call fast <3 x double> @llvm.floor.v3f64(<3 x double> %x) nounwind readnone |
77 store <3 x double> %y, <3 x double> addrspace(1)* %out | 77 store <3 x double> %y, ptr addrspace(1) %out |
78 ret void | 78 ret void |
79 } | 79 } |
80 | 80 |
81 ; FUNC-LABEL: {{^}}ffloor_v4f64: | 81 ; FUNC-LABEL: {{^}}ffloor_v4f64: |
82 ; CI: v_floor_f64_e32 | 82 ; CI: v_floor_f64_e32 |
83 ; CI: v_floor_f64_e32 | 83 ; CI: v_floor_f64_e32 |
84 ; CI: v_floor_f64_e32 | 84 ; CI: v_floor_f64_e32 |
85 ; CI: v_floor_f64_e32 | 85 ; CI: v_floor_f64_e32 |
86 define amdgpu_kernel void @ffloor_v4f64(<4 x double> addrspace(1)* %out, <4 x double> %x) { | 86 define amdgpu_kernel void @ffloor_v4f64(ptr addrspace(1) %out, <4 x double> %x) { |
87 %y = call fast <4 x double> @llvm.floor.v4f64(<4 x double> %x) nounwind readnone | 87 %y = call fast <4 x double> @llvm.floor.v4f64(<4 x double> %x) nounwind readnone |
88 store <4 x double> %y, <4 x double> addrspace(1)* %out | 88 store <4 x double> %y, ptr addrspace(1) %out |
89 ret void | 89 ret void |
90 } | 90 } |
91 | 91 |
92 ; FUNC-LABEL: {{^}}ffloor_v8f64: | 92 ; FUNC-LABEL: {{^}}ffloor_v8f64: |
93 ; CI: v_floor_f64_e32 | 93 ; CI: v_floor_f64_e32 |
96 ; CI: v_floor_f64_e32 | 96 ; CI: v_floor_f64_e32 |
97 ; CI: v_floor_f64_e32 | 97 ; CI: v_floor_f64_e32 |
98 ; CI: v_floor_f64_e32 | 98 ; CI: v_floor_f64_e32 |
99 ; CI: v_floor_f64_e32 | 99 ; CI: v_floor_f64_e32 |
100 ; CI: v_floor_f64_e32 | 100 ; CI: v_floor_f64_e32 |
101 define amdgpu_kernel void @ffloor_v8f64(<8 x double> addrspace(1)* %out, <8 x double> %x) { | 101 define amdgpu_kernel void @ffloor_v8f64(ptr addrspace(1) %out, <8 x double> %x) { |
102 %y = call fast <8 x double> @llvm.floor.v8f64(<8 x double> %x) nounwind readnone | 102 %y = call fast <8 x double> @llvm.floor.v8f64(<8 x double> %x) nounwind readnone |
103 store <8 x double> %y, <8 x double> addrspace(1)* %out | 103 store <8 x double> %y, ptr addrspace(1) %out |
104 ret void | 104 ret void |
105 } | 105 } |
106 | 106 |
107 ; FUNC-LABEL: {{^}}ffloor_v16f64: | 107 ; FUNC-LABEL: {{^}}ffloor_v16f64: |
108 ; CI: v_floor_f64_e32 | 108 ; CI: v_floor_f64_e32 |
119 ; CI: v_floor_f64_e32 | 119 ; CI: v_floor_f64_e32 |
120 ; CI: v_floor_f64_e32 | 120 ; CI: v_floor_f64_e32 |
121 ; CI: v_floor_f64_e32 | 121 ; CI: v_floor_f64_e32 |
122 ; CI: v_floor_f64_e32 | 122 ; CI: v_floor_f64_e32 |
123 ; CI: v_floor_f64_e32 | 123 ; CI: v_floor_f64_e32 |
124 define amdgpu_kernel void @ffloor_v16f64(<16 x double> addrspace(1)* %out, <16 x double> %x) { | 124 define amdgpu_kernel void @ffloor_v16f64(ptr addrspace(1) %out, <16 x double> %x) { |
125 %y = call fast <16 x double> @llvm.floor.v16f64(<16 x double> %x) nounwind readnone | 125 %y = call fast <16 x double> @llvm.floor.v16f64(<16 x double> %x) nounwind readnone |
126 store <16 x double> %y, <16 x double> addrspace(1)* %out | 126 store <16 x double> %y, ptr addrspace(1) %out |
127 ret void | 127 ret void |
128 } | 128 } |