145 case AMDGPU::BI__builtin_amdgcn_wave_reduce_add_u32:
146 case AMDGPU::BI__builtin_amdgcn_wave_reduce_sub_u32:
147 case AMDGPU::BI__builtin_amdgcn_wave_reduce_min_i32:
148 case AMDGPU::BI__builtin_amdgcn_wave_reduce_min_u32:
149 case AMDGPU::BI__builtin_amdgcn_wave_reduce_max_i32:
150 case AMDGPU::BI__builtin_amdgcn_wave_reduce_max_u32:
151 case AMDGPU::BI__builtin_amdgcn_wave_reduce_and_b32:
152 case AMDGPU::BI__builtin_amdgcn_wave_reduce_or_b32:
153 case AMDGPU::BI__builtin_amdgcn_wave_reduce_xor_b32:
154 case AMDGPU::BI__builtin_amdgcn_wave_reduce_add_u64:
155 case AMDGPU::BI__builtin_amdgcn_wave_reduce_sub_u64:
156 case AMDGPU::BI__builtin_amdgcn_wave_reduce_min_i64:
157 case AMDGPU::BI__builtin_amdgcn_wave_reduce_min_u64:
158 case AMDGPU::BI__builtin_amdgcn_wave_reduce_max_i64:
159 case AMDGPU::BI__builtin_amdgcn_wave_reduce_max_u64:
160 case AMDGPU::BI__builtin_amdgcn_wave_reduce_and_b64:
161 case AMDGPU::BI__builtin_amdgcn_wave_reduce_or_b64:
162 case AMDGPU::BI__builtin_amdgcn_wave_reduce_xor_b64: {
163 cgm.errorNYI(
expr->getSourceRange(),
164 std::string(
"unimplemented AMDGPU builtin call: ") +
166 return mlir::Value{};
168 case AMDGPU::BI__builtin_amdgcn_div_scale:
169 case AMDGPU::BI__builtin_amdgcn_div_scalef: {
171 llvm::StringRef intrinsicName =
"amdgcn.div.scale";
176 auto i1Ty = builder.getUIntNTy(1);
178 {x.getType(), i1Ty},
false,
false);
180 mlir::Value structResult =
181 cir::LLVMIntrinsicCallOp::create(builder,
getLoc(
expr->getExprLoc()),
182 builder.getStringAttr(intrinsicName),
186 mlir::Value result = cir::ExtractMemberOp::create(
187 builder,
getLoc(
expr->getExprLoc()), x.getType(), structResult, 0);
188 mlir::Value flag = cir::ExtractMemberOp::create(
189 builder,
getLoc(
expr->getExprLoc()), i1Ty, structResult, 1);
192 mlir::Value flagToStore =
193 cir::CastOp::create(builder,
getLoc(
expr->getExprLoc()), flagType,
194 cir::CastKind::int_to_bool, flag);
195 builder.createStore(
getLoc(
expr->getExprLoc()), flagToStore, flagOutPtr);
198 case AMDGPU::BI__builtin_amdgcn_div_fmas:
199 case AMDGPU::BI__builtin_amdgcn_div_fmasf:
202 case AMDGPU::BI__builtin_amdgcn_ds_swizzle:
205 case AMDGPU::BI__builtin_amdgcn_mov_dpp8:
206 case AMDGPU::BI__builtin_amdgcn_mov_dpp:
207 case AMDGPU::BI__builtin_amdgcn_update_dpp: {
208 cgm.errorNYI(
expr->getSourceRange(),
209 std::string(
"unimplemented AMDGPU builtin call: ") +
211 return mlir::Value{};
213 case AMDGPU::BI__builtin_amdgcn_permlane16:
214 case AMDGPU::BI__builtin_amdgcn_permlanex16:
215 case AMDGPU::BI__builtin_amdgcn_permlane64: {
216 cgm.errorNYI(
expr->getSourceRange(),
217 std::string(
"unimplemented AMDGPU builtin call: ") +
219 return mlir::Value{};
221 case AMDGPU::BI__builtin_amdgcn_readlane:
224 case AMDGPU::BI__builtin_amdgcn_readfirstlane:
227 case AMDGPU::BI__builtin_amdgcn_wave_shuffle: {
228 cgm.errorNYI(
expr->getSourceRange(),
229 std::string(
"unimplemented AMDGPU builtin call: ") +
231 return mlir::Value{};
233 case AMDGPU::BI__builtin_amdgcn_div_fixup:
234 case AMDGPU::BI__builtin_amdgcn_div_fixupf:
235 case AMDGPU::BI__builtin_amdgcn_div_fixuph: {
236 cgm.errorNYI(
expr->getSourceRange(),
237 std::string(
"unimplemented AMDGPU builtin call: ") +
239 return mlir::Value{};
241 case AMDGPU::BI__builtin_amdgcn_trig_preop:
242 case AMDGPU::BI__builtin_amdgcn_trig_preopf: {
243 cgm.errorNYI(
expr->getSourceRange(),
244 std::string(
"unimplemented AMDGPU builtin call: ") +
246 return mlir::Value{};
248 case AMDGPU::BI__builtin_amdgcn_rcp:
249 case AMDGPU::BI__builtin_amdgcn_rcpf:
250 case AMDGPU::BI__builtin_amdgcn_rcph:
251 case AMDGPU::BI__builtin_amdgcn_rcp_bf16: {
252 cgm.errorNYI(
expr->getSourceRange(),
253 std::string(
"unimplemented AMDGPU builtin call: ") +
255 return mlir::Value{};
257 case AMDGPU::BI__builtin_amdgcn_sqrt:
258 case AMDGPU::BI__builtin_amdgcn_sqrtf:
259 case AMDGPU::BI__builtin_amdgcn_sqrth:
260 case AMDGPU::BI__builtin_amdgcn_sqrt_bf16: {
261 cgm.errorNYI(
expr->getSourceRange(),
262 std::string(
"unimplemented AMDGPU builtin call: ") +
264 return mlir::Value{};
266 case AMDGPU::BI__builtin_amdgcn_rsq:
267 case AMDGPU::BI__builtin_amdgcn_rsqf:
268 case AMDGPU::BI__builtin_amdgcn_rsqh:
269 case AMDGPU::BI__builtin_amdgcn_rsq_bf16: {
270 cgm.errorNYI(
expr->getSourceRange(),
271 std::string(
"unimplemented AMDGPU builtin call: ") +
273 return mlir::Value{};
275 case AMDGPU::BI__builtin_amdgcn_rsq_clamp:
276 case AMDGPU::BI__builtin_amdgcn_rsq_clampf: {
277 cgm.errorNYI(
expr->getSourceRange(),
278 std::string(
"unimplemented AMDGPU builtin call: ") +
280 return mlir::Value{};
282 case AMDGPU::BI__builtin_amdgcn_sinf:
283 case AMDGPU::BI__builtin_amdgcn_sinh:
284 case AMDGPU::BI__builtin_amdgcn_sin_bf16: {
285 cgm.errorNYI(
expr->getSourceRange(),
286 std::string(
"unimplemented AMDGPU builtin call: ") +
288 return mlir::Value{};
290 case AMDGPU::BI__builtin_amdgcn_cosf:
291 case AMDGPU::BI__builtin_amdgcn_cosh:
292 case AMDGPU::BI__builtin_amdgcn_cos_bf16: {
293 cgm.errorNYI(
expr->getSourceRange(),
294 std::string(
"unimplemented AMDGPU builtin call: ") +
296 return mlir::Value{};
298 case AMDGPU::BI__builtin_amdgcn_dispatch_ptr:
300 case AMDGPU::BI__builtin_amdgcn_logf:
301 case AMDGPU::BI__builtin_amdgcn_log_bf16: {
302 cgm.errorNYI(
expr->getSourceRange(),
303 std::string(
"unimplemented AMDGPU builtin call: ") +
305 return mlir::Value{};
307 case AMDGPU::BI__builtin_amdgcn_exp2f:
308 case AMDGPU::BI__builtin_amdgcn_exp2_bf16: {
309 cgm.errorNYI(
expr->getSourceRange(),
310 std::string(
"unimplemented AMDGPU builtin call: ") +
312 return mlir::Value{};
314 case AMDGPU::BI__builtin_amdgcn_log_clampf: {
315 cgm.errorNYI(
expr->getSourceRange(),
316 std::string(
"unimplemented AMDGPU builtin call: ") +
318 return mlir::Value{};
320 case AMDGPU::BI__builtin_amdgcn_ldexp:
321 case AMDGPU::BI__builtin_amdgcn_ldexpf:
322 case AMDGPU::BI__builtin_amdgcn_ldexph: {
323 cgm.errorNYI(
expr->getSourceRange(),
324 std::string(
"unimplemented AMDGPU builtin call: ") +
326 return mlir::Value{};
328 case AMDGPU::BI__builtin_amdgcn_frexp_mant:
329 case AMDGPU::BI__builtin_amdgcn_frexp_mantf:
330 case AMDGPU::BI__builtin_amdgcn_frexp_manth: {
331 cgm.errorNYI(
expr->getSourceRange(),
332 std::string(
"unimplemented AMDGPU builtin call: ") +
334 return mlir::Value{};
336 case AMDGPU::BI__builtin_amdgcn_frexp_exp:
337 case AMDGPU::BI__builtin_amdgcn_frexp_expf:
338 case AMDGPU::BI__builtin_amdgcn_frexp_exph: {
339 cgm.errorNYI(
expr->getSourceRange(),
340 std::string(
"unimplemented AMDGPU builtin call: ") +
342 return mlir::Value{};
344 case AMDGPU::BI__builtin_amdgcn_fract:
345 case AMDGPU::BI__builtin_amdgcn_fractf:
346 case AMDGPU::BI__builtin_amdgcn_fracth: {
347 cgm.errorNYI(
expr->getSourceRange(),
348 std::string(
"unimplemented AMDGPU builtin call: ") +
350 return mlir::Value{};
352 case AMDGPU::BI__builtin_amdgcn_lerp: {
353 cgm.errorNYI(
expr->getSourceRange(),
354 std::string(
"unimplemented AMDGPU builtin call: ") +
356 return mlir::Value{};
358 case AMDGPU::BI__builtin_amdgcn_ubfe: {
359 cgm.errorNYI(
expr->getSourceRange(),
360 std::string(
"unimplemented AMDGPU builtin call: ") +
362 return mlir::Value{};
364 case AMDGPU::BI__builtin_amdgcn_sbfe: {
365 cgm.errorNYI(
expr->getSourceRange(),
366 std::string(
"unimplemented AMDGPU builtin call: ") +
368 return mlir::Value{};
370 case AMDGPU::BI__builtin_amdgcn_ballot_w32:
371 case AMDGPU::BI__builtin_amdgcn_ballot_w64: {
372 cgm.errorNYI(
expr->getSourceRange(),
373 std::string(
"unimplemented AMDGPU builtin call: ") +
375 return mlir::Value{};
377 case AMDGPU::BI__builtin_amdgcn_inverse_ballot_w32:
378 case AMDGPU::BI__builtin_amdgcn_inverse_ballot_w64: {
379 cgm.errorNYI(
expr->getSourceRange(),
380 std::string(
"unimplemented AMDGPU builtin call: ") +
382 return mlir::Value{};
384 case AMDGPU::BI__builtin_amdgcn_tanhf:
385 case AMDGPU::BI__builtin_amdgcn_tanhh:
386 case AMDGPU::BI__builtin_amdgcn_tanh_bf16: {
387 cgm.errorNYI(
expr->getSourceRange(),
388 std::string(
"unimplemented AMDGPU builtin call: ") +
390 return mlir::Value{};
392 case AMDGPU::BI__builtin_amdgcn_uicmp:
393 case AMDGPU::BI__builtin_amdgcn_uicmpl:
394 case AMDGPU::BI__builtin_amdgcn_sicmp:
395 case AMDGPU::BI__builtin_amdgcn_sicmpl: {
396 cgm.errorNYI(
expr->getSourceRange(),
397 std::string(
"unimplemented AMDGPU builtin call: ") +
399 return mlir::Value{};
401 case AMDGPU::BI__builtin_amdgcn_fcmp:
402 case AMDGPU::BI__builtin_amdgcn_fcmpf: {
403 cgm.errorNYI(
expr->getSourceRange(),
404 std::string(
"unimplemented AMDGPU builtin call: ") +
406 return mlir::Value{};
408 case AMDGPU::BI__builtin_amdgcn_class:
409 case AMDGPU::BI__builtin_amdgcn_classf:
410 case AMDGPU::BI__builtin_amdgcn_classh: {
411 cgm.errorNYI(
expr->getSourceRange(),
412 std::string(
"unimplemented AMDGPU builtin call: ") +
414 return mlir::Value{};
416 case AMDGPU::BI__builtin_amdgcn_fmed3f:
417 case AMDGPU::BI__builtin_amdgcn_fmed3h: {
418 cgm.errorNYI(
expr->getSourceRange(),
419 std::string(
"unimplemented AMDGPU builtin call: ") +
421 return mlir::Value{};
423 case AMDGPU::BI__builtin_amdgcn_ds_append:
424 case AMDGPU::BI__builtin_amdgcn_ds_consume: {
425 cgm.errorNYI(
expr->getSourceRange(),
426 std::string(
"unimplemented AMDGPU builtin call: ") +
428 return mlir::Value{};
430 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_i32:
431 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_v2i32:
432 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4i16:
433 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4f16:
434 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4bf16:
435 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16:
436 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8f16:
437 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8bf16:
438 case AMDGPU::BI__builtin_amdgcn_global_load_tr4_b64_v2i32:
439 case AMDGPU::BI__builtin_amdgcn_global_load_tr8_b64_v2i32:
440 case AMDGPU::BI__builtin_amdgcn_global_load_tr6_b96_v3i32:
441 case AMDGPU::BI__builtin_amdgcn_global_load_tr16_b128_v8i16:
442 case AMDGPU::BI__builtin_amdgcn_global_load_tr16_b128_v8f16:
443 case AMDGPU::BI__builtin_amdgcn_global_load_tr16_b128_v8bf16: {
444 cgm.errorNYI(
expr->getSourceRange(),
445 std::string(
"unimplemented AMDGPU builtin call: ") +
447 return mlir::Value{};
449 case AMDGPU::BI__builtin_amdgcn_ds_load_tr4_b64_v2i32:
450 case AMDGPU::BI__builtin_amdgcn_ds_load_tr8_b64_v2i32:
451 case AMDGPU::BI__builtin_amdgcn_ds_load_tr6_b96_v3i32:
452 case AMDGPU::BI__builtin_amdgcn_ds_load_tr16_b128_v8i16:
453 case AMDGPU::BI__builtin_amdgcn_ds_load_tr16_b128_v8f16:
454 case AMDGPU::BI__builtin_amdgcn_ds_load_tr16_b128_v8bf16: {
455 cgm.errorNYI(
expr->getSourceRange(),
456 std::string(
"unimplemented AMDGPU builtin call: ") +
458 return mlir::Value{};
460 case AMDGPU::BI__builtin_amdgcn_ds_read_tr4_b64_v2i32:
461 case AMDGPU::BI__builtin_amdgcn_ds_read_tr8_b64_v2i32:
462 case AMDGPU::BI__builtin_amdgcn_ds_read_tr6_b96_v3i32:
463 case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4f16:
464 case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4bf16:
465 case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4i16: {
466 cgm.errorNYI(
expr->getSourceRange(),
467 std::string(
"unimplemented AMDGPU builtin call: ") +
469 return mlir::Value{};
471 case AMDGPU::BI__builtin_amdgcn_global_load_monitor_b32:
472 case AMDGPU::BI__builtin_amdgcn_global_load_monitor_b64:
473 case AMDGPU::BI__builtin_amdgcn_global_load_monitor_b128:
474 case AMDGPU::BI__builtin_amdgcn_flat_load_monitor_b32:
475 case AMDGPU::BI__builtin_amdgcn_flat_load_monitor_b64:
476 case AMDGPU::BI__builtin_amdgcn_flat_load_monitor_b128: {
477 cgm.errorNYI(
expr->getSourceRange(),
478 std::string(
"unimplemented AMDGPU builtin call: ") +
480 return mlir::Value{};
482 case AMDGPU::BI__builtin_amdgcn_cluster_load_b32:
483 case AMDGPU::BI__builtin_amdgcn_cluster_load_b64:
484 case AMDGPU::BI__builtin_amdgcn_cluster_load_b128: {
485 cgm.errorNYI(
expr->getSourceRange(),
486 std::string(
"unimplemented AMDGPU builtin call: ") +
488 return mlir::Value{};
490 case AMDGPU::BI__builtin_amdgcn_load_to_lds: {
491 cgm.errorNYI(
expr->getSourceRange(),
492 std::string(
"unimplemented AMDGPU builtin call: ") +
494 return mlir::Value{};
496 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_load_32x4B:
497 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_store_32x4B:
498 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_load_16x8B:
499 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_store_16x8B:
500 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_load_8x16B:
501 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_store_8x16B: {
502 cgm.errorNYI(
expr->getSourceRange(),
503 std::string(
"unimplemented AMDGPU builtin call: ") +
505 return mlir::Value{};
507 case AMDGPU::BI__builtin_amdgcn_get_fpenv:
508 case AMDGPU::BI__builtin_amdgcn_set_fpenv: {
509 cgm.errorNYI(
expr->getSourceRange(),
510 std::string(
"unimplemented AMDGPU builtin call: ") +
512 return mlir::Value{};
514 case AMDGPU::BI__builtin_amdgcn_read_exec:
515 case AMDGPU::BI__builtin_amdgcn_read_exec_lo:
516 case AMDGPU::BI__builtin_amdgcn_read_exec_hi: {
517 cgm.errorNYI(
expr->getSourceRange(),
518 std::string(
"unimplemented AMDGPU builtin call: ") +
520 return mlir::Value{};
522 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray:
523 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray_h:
524 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray_l:
525 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray_lh: {
526 cgm.errorNYI(
expr->getSourceRange(),
527 std::string(
"unimplemented AMDGPU builtin call: ") +
529 return mlir::Value{};
531 case AMDGPU::BI__builtin_amdgcn_image_bvh8_intersect_ray:
532 case AMDGPU::BI__builtin_amdgcn_image_bvh_dual_intersect_ray: {
533 cgm.errorNYI(
expr->getSourceRange(),
534 std::string(
"unimplemented AMDGPU builtin call: ") +
536 return mlir::Value{};
538 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_rtn:
539 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_push4_pop1_rtn:
540 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_push8_pop1_rtn:
541 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_push8_pop2_rtn: {
542 cgm.errorNYI(
expr->getSourceRange(),
543 std::string(
"unimplemented AMDGPU builtin call: ") +
545 return mlir::Value{};
547 case AMDGPU::BI__builtin_amdgcn_image_load_1d_v4f32_i32:
548 case AMDGPU::BI__builtin_amdgcn_image_load_1d_v4f16_i32:
550 "amdgcn.image.load.1d",
false);
551 case AMDGPU::BI__builtin_amdgcn_image_load_1darray_v4f32_i32:
552 case AMDGPU::BI__builtin_amdgcn_image_load_1darray_v4f16_i32:
554 *
this,
expr,
"amdgcn.image.load.1darray",
false);
555 case AMDGPU::BI__builtin_amdgcn_image_load_2d_f32_i32:
556 case AMDGPU::BI__builtin_amdgcn_image_load_2d_v4f32_i32:
557 case AMDGPU::BI__builtin_amdgcn_image_load_2d_v4f16_i32:
559 "amdgcn.image.load.2d",
false);
560 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_f32_i32:
561 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_v4f32_i32:
562 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_v4f16_i32:
564 *
this,
expr,
"amdgcn.image.load.2darray",
false);
565 case AMDGPU::BI__builtin_amdgcn_image_load_3d_v4f32_i32:
566 case AMDGPU::BI__builtin_amdgcn_image_load_3d_v4f16_i32:
568 "amdgcn.image.load.3d",
false);
569 case AMDGPU::BI__builtin_amdgcn_image_load_cube_v4f32_i32:
570 case AMDGPU::BI__builtin_amdgcn_image_load_cube_v4f16_i32:
572 "amdgcn.image.load.cube",
false);
573 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1d_v4f32_i32:
574 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1d_v4f16_i32:
576 *
this,
expr,
"amdgcn.image.load.mip.1d",
false);
577 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1darray_v4f32_i32:
578 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1darray_v4f16_i32:
580 *
this,
expr,
"amdgcn.image.load.mip.1darray",
false);
581 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_f32_i32:
582 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_v4f32_i32:
583 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_v4f16_i32:
585 *
this,
expr,
"amdgcn.image.load.mip.2d",
false);
586 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_f32_i32:
587 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_v4f32_i32:
588 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_v4f16_i32:
590 *
this,
expr,
"amdgcn.image.load.mip.2darray",
false);
591 case AMDGPU::BI__builtin_amdgcn_image_load_mip_3d_v4f32_i32:
592 case AMDGPU::BI__builtin_amdgcn_image_load_mip_3d_v4f16_i32:
594 *
this,
expr,
"amdgcn.image.load.mip.3d",
false);
595 case AMDGPU::BI__builtin_amdgcn_image_load_mip_cube_v4f32_i32:
596 case AMDGPU::BI__builtin_amdgcn_image_load_mip_cube_v4f16_i32:
598 *
this,
expr,
"amdgcn.image.load.mip.cube",
false);
599 case AMDGPU::BI__builtin_amdgcn_image_store_1d_v4f32_i32:
600 case AMDGPU::BI__builtin_amdgcn_image_store_1d_v4f16_i32:
602 "amdgcn.image.store.1d",
true);
603 case AMDGPU::BI__builtin_amdgcn_image_store_1darray_v4f32_i32:
604 case AMDGPU::BI__builtin_amdgcn_image_store_1darray_v4f16_i32:
606 *
this,
expr,
"amdgcn.image.store.1darray",
true);
607 case AMDGPU::BI__builtin_amdgcn_image_store_2d_f32_i32:
608 case AMDGPU::BI__builtin_amdgcn_image_store_2d_v4f32_i32:
609 case AMDGPU::BI__builtin_amdgcn_image_store_2d_v4f16_i32:
611 "amdgcn.image.store.2d",
true);
612 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_f32_i32:
613 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_v4f32_i32:
614 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_v4f16_i32:
616 *
this,
expr,
"amdgcn.image.store.2darray",
true);
617 case AMDGPU::BI__builtin_amdgcn_image_store_3d_v4f32_i32:
618 case AMDGPU::BI__builtin_amdgcn_image_store_3d_v4f16_i32:
620 "amdgcn.image.store.3d",
true);
621 case AMDGPU::BI__builtin_amdgcn_image_store_cube_v4f32_i32:
622 case AMDGPU::BI__builtin_amdgcn_image_store_cube_v4f16_i32:
624 "amdgcn.image.store.cube",
true);
625 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1d_v4f32_i32:
626 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1d_v4f16_i32:
628 *
this,
expr,
"amdgcn.image.store.mip.1d",
true);
629 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1darray_v4f32_i32:
630 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1darray_v4f16_i32:
632 *
this,
expr,
"amdgcn.image.store.mip.1darray",
true);
633 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_f32_i32:
634 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_v4f32_i32:
635 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_v4f16_i32:
637 *
this,
expr,
"amdgcn.image.store.mip.2d",
true);
638 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_f32_i32:
639 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_v4f32_i32:
640 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_v4f16_i32:
642 *
this,
expr,
"amdgcn.image.store.mip.2darray",
true);
643 case AMDGPU::BI__builtin_amdgcn_image_store_mip_3d_v4f32_i32:
644 case AMDGPU::BI__builtin_amdgcn_image_store_mip_3d_v4f16_i32:
646 *
this,
expr,
"amdgcn.image.store.mip.3d",
true);
647 case AMDGPU::BI__builtin_amdgcn_image_store_mip_cube_v4f32_i32:
648 case AMDGPU::BI__builtin_amdgcn_image_store_mip_cube_v4f16_i32:
650 *
this,
expr,
"amdgcn.image.store.mip.cube",
true);
651 case AMDGPU::BI__builtin_amdgcn_image_sample_1d_v4f32_f32:
652 case AMDGPU::BI__builtin_amdgcn_image_sample_1d_v4f16_f32:
653 case AMDGPU::BI__builtin_amdgcn_image_sample_1darray_v4f32_f32:
654 case AMDGPU::BI__builtin_amdgcn_image_sample_1darray_v4f16_f32:
655 case AMDGPU::BI__builtin_amdgcn_image_sample_2d_f32_f32:
656 case AMDGPU::BI__builtin_amdgcn_image_sample_2d_v4f32_f32:
657 case AMDGPU::BI__builtin_amdgcn_image_sample_2d_v4f16_f32:
658 case AMDGPU::BI__builtin_amdgcn_image_sample_2darray_f32_f32:
659 case AMDGPU::BI__builtin_amdgcn_image_sample_2darray_v4f32_f32:
660 case AMDGPU::BI__builtin_amdgcn_image_sample_2darray_v4f16_f32:
661 case AMDGPU::BI__builtin_amdgcn_image_sample_3d_v4f32_f32:
662 case AMDGPU::BI__builtin_amdgcn_image_sample_3d_v4f16_f32:
663 case AMDGPU::BI__builtin_amdgcn_image_sample_cube_v4f32_f32:
664 case AMDGPU::BI__builtin_amdgcn_image_sample_cube_v4f16_f32:
665 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1d_v4f32_f32:
666 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1d_v4f16_f32:
667 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1d_v4f32_f32:
668 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1d_v4f16_f32:
669 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1d_v4f32_f32:
670 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1d_v4f16_f32:
671 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_v4f32_f32:
672 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_v4f16_f32:
673 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_f32_f32:
674 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_v4f32_f32:
675 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_v4f16_f32:
676 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_f32_f32:
677 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_v4f32_f32:
678 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_v4f16_f32:
679 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_f32_f32:
680 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_3d_v4f32_f32:
681 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_3d_v4f16_f32:
682 case AMDGPU::BI__builtin_amdgcn_image_sample_l_3d_v4f32_f32:
683 case AMDGPU::BI__builtin_amdgcn_image_sample_l_3d_v4f16_f32:
684 case AMDGPU::BI__builtin_amdgcn_image_sample_d_3d_v4f32_f32:
685 case AMDGPU::BI__builtin_amdgcn_image_sample_d_3d_v4f16_f32:
686 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_cube_v4f32_f32:
687 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_cube_v4f16_f32:
688 case AMDGPU::BI__builtin_amdgcn_image_sample_l_cube_v4f32_f32:
689 case AMDGPU::BI__builtin_amdgcn_image_sample_l_cube_v4f16_f32:
690 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1darray_v4f32_f32:
691 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1darray_v4f16_f32:
692 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1darray_v4f32_f32:
693 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1darray_v4f16_f32:
694 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1darray_v4f32_f32:
695 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1darray_v4f16_f32:
696 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_v4f32_f32:
697 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_v4f16_f32:
698 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_f32_f32:
699 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_v4f32_f32:
700 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_v4f16_f32:
701 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_f32_f32:
702 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_v4f32_f32:
703 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_v4f16_f32:
704 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_f32_f32: {
705 cgm.errorNYI(
expr->getSourceRange(),
706 std::string(
"unimplemented AMDGPU builtin call: ") +
708 return mlir::Value{};
710 case AMDGPU::BI__builtin_amdgcn_image_gather4_lz_2d_v4f32_f32: {
711 cgm.errorNYI(
expr->getSourceRange(),
712 std::string(
"unimplemented AMDGPU builtin call: ") +
714 return mlir::Value{};
716 case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4:
717 case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4: {
718 cgm.errorNYI(
expr->getSourceRange(),
719 std::string(
"unimplemented AMDGPU builtin call: ") +
721 return mlir::Value{};
723 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w32:
724 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_tied_w32:
725 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w64:
726 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_tied_w64:
727 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w32:
728 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_tied_w32:
729 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w64:
730 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_tied_w64:
731 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w32:
732 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w64:
733 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w32:
734 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w64:
735 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w32:
736 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w64:
737 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w32:
738 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w64:
739 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w32_gfx12:
740 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w64_gfx12:
741 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w32_gfx12:
742 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w64_gfx12:
743 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w32_gfx12:
744 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w64_gfx12:
745 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w32_gfx12:
746 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w64_gfx12:
747 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w32_gfx12:
748 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w64_gfx12:
749 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w32_gfx12:
750 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w64_gfx12:
751 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_fp8_w32_gfx12:
752 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_fp8_w64_gfx12:
753 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_bf8_w32_gfx12:
754 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_bf8_w64_gfx12:
755 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_fp8_w32_gfx12:
756 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_fp8_w64_gfx12:
757 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_bf8_w32_gfx12:
758 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_bf8_w64_gfx12:
759 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x32_iu4_w32_gfx12:
760 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x32_iu4_w64_gfx12: {
761 cgm.errorNYI(
expr->getSourceRange(),
762 std::string(
"unimplemented AMDGPU builtin call: ") +
764 return mlir::Value{};
766 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_f16_w32:
767 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_f16_w64:
768 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf16_w32:
769 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf16_w64:
770 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x32_f16_w32:
771 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x32_f16_w64:
772 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16_16x16x32_bf16_w32:
773 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16_16x16x32_bf16_w64:
774 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu8_w32:
775 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu8_w64:
776 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu4_w32:
777 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu4_w64:
778 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x64_iu4_w32:
779 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x64_iu4_w64:
780 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_fp8_w32:
781 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_fp8_w64:
782 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_bf8_w32:
783 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_bf8_w64:
784 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_fp8_w32:
785 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_fp8_w64:
786 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_bf8_w32:
787 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_bf8_w64: {
788 cgm.errorNYI(
expr->getSourceRange(),
789 std::string(
"unimplemented AMDGPU builtin call: ") +
791 return mlir::Value{};
793 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x4_f32:
794 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x32_bf16:
795 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x32_f16:
796 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x32_f16:
797 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x32_bf16:
798 case AMDGPU::BI__builtin_amdgcn_wmma_bf16f32_16x16x32_bf16:
799 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_fp8_fp8:
800 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_fp8_bf8:
801 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_bf8_fp8:
802 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_bf8_bf8:
803 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_fp8_fp8:
804 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_fp8_bf8:
805 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_bf8_fp8:
806 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_bf8_bf8:
807 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_fp8_fp8:
808 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_fp8_bf8:
809 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_bf8_fp8:
810 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_bf8_bf8:
811 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_fp8_fp8:
812 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_fp8_bf8:
813 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_bf8_fp8:
814 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_bf8_bf8:
815 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x64_iu8:
816 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_f8f6f4:
817 case AMDGPU::BI__builtin_amdgcn_wmma_f32_32x16x128_f4:
818 case AMDGPU::BI__builtin_amdgcn_wmma_scale_f32_16x16x128_f8f6f4:
819 case AMDGPU::BI__builtin_amdgcn_wmma_scale16_f32_16x16x128_f8f6f4:
820 case AMDGPU::BI__builtin_amdgcn_wmma_scale_f32_32x16x128_f4:
821 case AMDGPU::BI__builtin_amdgcn_wmma_scale16_f32_32x16x128_f4: {
822 cgm.errorNYI(
expr->getSourceRange(),
823 std::string(
"unimplemented AMDGPU builtin call: ") +
825 return mlir::Value{};
827 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x64_f16:
828 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x64_bf16:
829 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x64_f16:
830 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16_16x16x64_bf16:
831 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16f32_16x16x64_bf16:
832 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_fp8_fp8:
833 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_fp8_bf8:
834 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_bf8_fp8:
835 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_bf8_bf8:
836 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_fp8_fp8:
837 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_fp8_bf8:
838 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_bf8_fp8:
839 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_bf8_bf8:
840 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x128_iu8: {
841 cgm.errorNYI(
expr->getSourceRange(),
842 std::string(
"unimplemented AMDGPU builtin call: ") +
844 return mlir::Value{};
847 case AMDGPU::BI__builtin_amdgcn_workgroup_size_x:
848 case AMDGPU::BI__builtin_amdgcn_workgroup_size_y:
849 case AMDGPU::BI__builtin_amdgcn_workgroup_size_z: {
850 cgm.errorNYI(
expr->getSourceRange(),
851 std::string(
"unimplemented AMDGPU builtin call: ") +
853 return mlir::Value{};
855 case AMDGPU::BI__builtin_amdgcn_grid_size_x:
856 case AMDGPU::BI__builtin_amdgcn_grid_size_y:
857 case AMDGPU::BI__builtin_amdgcn_grid_size_z: {
858 cgm.errorNYI(
expr->getSourceRange(),
859 std::string(
"unimplemented AMDGPU builtin call: ") +
861 return mlir::Value{};
863 case AMDGPU::BI__builtin_r600_recipsqrt_ieee:
864 case AMDGPU::BI__builtin_r600_recipsqrt_ieeef: {
865 cgm.errorNYI(
expr->getSourceRange(),
866 std::string(
"unimplemented AMDGPU builtin call: ") +
868 return mlir::Value{};
870 case AMDGPU::BI__builtin_amdgcn_alignbit: {
871 cgm.errorNYI(
expr->getSourceRange(),
872 std::string(
"unimplemented AMDGPU builtin call: ") +
874 return mlir::Value{};
876 case AMDGPU::BI__builtin_amdgcn_fence: {
877 cgm.errorNYI(
expr->getSourceRange(),
878 std::string(
"unimplemented AMDGPU builtin call: ") +
880 return mlir::Value{};
882 case AMDGPU::BI__builtin_amdgcn_atomic_inc32:
883 case AMDGPU::BI__builtin_amdgcn_atomic_inc64:
884 case AMDGPU::BI__builtin_amdgcn_atomic_dec32:
885 case AMDGPU::BI__builtin_amdgcn_atomic_dec64:
886 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_f64:
887 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_f32:
888 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_v2f16:
889 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_v2bf16:
890 case AMDGPU::BI__builtin_amdgcn_ds_faddf:
891 case AMDGPU::BI__builtin_amdgcn_ds_fminf:
892 case AMDGPU::BI__builtin_amdgcn_ds_fmaxf:
893 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_f32:
894 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_f64:
895 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2f16:
896 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2f16:
897 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f32:
898 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f64:
899 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2bf16:
900 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2bf16:
901 case AMDGPU::BI__builtin_amdgcn_global_atomic_fmin_f64:
902 case AMDGPU::BI__builtin_amdgcn_global_atomic_fmax_f64:
903 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fmin_f64:
904 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fmax_f64: {
905 cgm.errorNYI(
expr->getSourceRange(),
906 std::string(
"unimplemented AMDGPU builtin call: ") +
908 return mlir::Value{};
910 case AMDGPU::BI__builtin_amdgcn_s_sendmsg_rtn:
911 case AMDGPU::BI__builtin_amdgcn_s_sendmsg_rtnl: {
912 cgm.errorNYI(
expr->getSourceRange(),
913 std::string(
"unimplemented AMDGPU builtin call: ") +
915 return mlir::Value{};
917 case AMDGPU::BI__builtin_amdgcn_permlane16_swap:
918 case AMDGPU::BI__builtin_amdgcn_permlane32_swap: {
919 cgm.errorNYI(
expr->getSourceRange(),
920 std::string(
"unimplemented AMDGPU builtin call: ") +
922 return mlir::Value{};
924 case AMDGPU::BI__builtin_amdgcn_bitop3_b32:
925 case AMDGPU::BI__builtin_amdgcn_bitop3_b16: {
926 cgm.errorNYI(
expr->getSourceRange(),
927 std::string(
"unimplemented AMDGPU builtin call: ") +
929 return mlir::Value{};
931 case AMDGPU::BI__builtin_amdgcn_make_buffer_rsrc: {
932 cgm.errorNYI(
expr->getSourceRange(),
933 std::string(
"unimplemented AMDGPU builtin call: ") +
935 return mlir::Value{};
937 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b8:
938 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b16:
939 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b32:
940 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b64:
941 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b96:
942 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b128: {
943 cgm.errorNYI(
expr->getSourceRange(),
944 std::string(
"unimplemented AMDGPU builtin call: ") +
946 return mlir::Value{};
948 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b8:
949 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b16:
950 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b32:
951 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b64:
952 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b96:
953 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b128: {
954 cgm.errorNYI(
expr->getSourceRange(),
955 std::string(
"unimplemented AMDGPU builtin call: ") +
957 return mlir::Value{};
959 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_add_i32: {
960 cgm.errorNYI(
expr->getSourceRange(),
961 std::string(
"unimplemented AMDGPU builtin call: ") +
963 return mlir::Value{};
965 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fadd_f32:
966 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fadd_v2f16: {
967 cgm.errorNYI(
expr->getSourceRange(),
968 std::string(
"unimplemented AMDGPU builtin call: ") +
970 return mlir::Value{};
972 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmin_f32:
973 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmin_f64: {
974 cgm.errorNYI(
expr->getSourceRange(),
975 std::string(
"unimplemented AMDGPU builtin call: ") +
977 return mlir::Value{};
979 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmax_f32:
980 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmax_f64: {
981 cgm.errorNYI(
expr->getSourceRange(),
982 std::string(
"unimplemented AMDGPU builtin call: ") +
984 return mlir::Value{};
986 case AMDGPU::BI__builtin_amdgcn_s_prefetch_data: {
987 cgm.errorNYI(
expr->getSourceRange(),
988 std::string(
"unimplemented AMDGPU builtin call: ") +
990 return mlir::Value{};
992 case Builtin::BIlogbf:
993 case Builtin::BI__builtin_logbf:
995 case Builtin::BIlogb:
996 case Builtin::BI__builtin_logb:
998 case Builtin::BIscalbnf:
999 case Builtin::BI__builtin_scalbnf:
1000 case Builtin::BIscalbn:
1001 case Builtin::BI__builtin_scalbn: {
1003 *
this,
expr,
"ldexp",
"experimental.constrained.ldexp");
1006 return std::nullopt;