@@ -131,6 +131,68 @@ gpu.module @test_module {
131
131
132
132
// -----
133
133
134
+ gpu.module @test_module {
135
+ // CHECK-LABEL: func @gpu_sqrt
136
+ func.func @gpu_sqrt (%arg_f16 : f16 , %arg_f32 : f32 , %arg_f64 : f64 ) -> (f16 , f32 , f64 ) {
137
+ %result16 = math.sqrt %arg_f16 : f16
138
+ // CHECK: llvm.intr.sqrt(%{{.*}}) : (f16) -> f16
139
+ %result32 = math.sqrt %arg_f32 : f32
140
+ // CHECK: llvm.intr.sqrt(%{{.*}}) : (f32) -> f32
141
+ %result64 = math.sqrt %arg_f64 : f64
142
+ // CHECK: llvm.intr.sqrt(%{{.*}}) : (f64) -> f64
143
+ func.return %result16 , %result32 , %result64 : f16 , f32 , f64
144
+ }
145
+ }
146
+
147
+ // -----
148
+
149
+ gpu.module @test_module {
150
+ // CHECK-LABEL: func @gpu_fabs
151
+ func.func @gpu_fabs (%arg_f16 : f16 , %arg_f32 : f32 , %arg_f64 : f64 ) -> (f16 , f32 , f64 ) {
152
+ %result16 = math.absf %arg_f16 : f16
153
+ // CHECK: llvm.intr.fabs(%{{.*}}) : (f16) -> f16
154
+ %result32 = math.absf %arg_f32 : f32
155
+ // CHECK: llvm.intr.fabs(%{{.*}}) : (f32) -> f32
156
+ %result64 = math.absf %arg_f64 : f64
157
+ // CHECK: llvm.intr.fabs(%{{.*}}) : (f64) -> f64
158
+ func.return %result16 , %result32 , %result64 : f16 , f32 , f64
159
+ }
160
+ }
161
+
162
+ // -----
163
+
164
+ gpu.module @test_module {
165
+ // CHECK: llvm.func @__ocml_exp_f64(f64) -> f64
166
+ // CHECK-LABEL: func @gpu_exp
167
+ func.func @gpu_exp (%arg_f16 : f16 , %arg_f32 : f32 , %arg_f64 : f64 ) -> (f16 , f32 , f64 ) {
168
+ %result16 = math.exp %arg_f16 : f16
169
+ // CHECK: llvm.intr.exp(%{{.*}}) : (f16) -> f16
170
+ %result32 = math.exp %arg_f32 : f32
171
+ // CHECK: llvm.intr.exp(%{{.*}}) : (f32) -> f32
172
+ %result64 = math.exp %arg_f64 : f64
173
+ // CHECK: llvm.call @__ocml_exp_f64(%{{.*}}) : (f64) -> f64
174
+ func.return %result16 , %result32 , %result64 : f16 , f32 , f64
175
+ }
176
+ }
177
+
178
+ // -----
179
+
180
+ gpu.module @test_module {
181
+ // CHECK: llvm.func @__ocml_log_f64(f64) -> f64
182
+ // CHECK-LABEL: func @gpu_log
183
+ func.func @gpu_log (%arg_f16 : f16 , %arg_f32 : f32 , %arg_f64 : f64 ) -> (f16 , f32 , f64 ) {
184
+ %result16 = math.log %arg_f16 : f16
185
+ // CHECK: llvm.intr.log(%{{.*}}) : (f16) -> f16
186
+ %result32 = math.log %arg_f32 : f32
187
+ // CHECK: llvm.intr.log(%{{.*}}) : (f32) -> f32
188
+ %result64 = math.log %arg_f64 : f64
189
+ // CHECK: llvm.call @__ocml_log_f64(%{{.*}}) : (f64) -> f64
190
+ func.return %result16 , %result32 , %result64 : f16 , f32 , f64
191
+ }
192
+ }
193
+
194
+ // -----
195
+
134
196
gpu.module @test_module {
135
197
// CHECK: llvm.func @__ocml_cbrt_f32(f32) -> f32
136
198
// CHECK: llvm.func @__ocml_cbrt_f64(f64) -> f64
0 commit comments