147 case AMDGPU::BI__builtin_amdgcn_wave_reduce_add_u32:
148 case AMDGPU::BI__builtin_amdgcn_wave_reduce_sub_u32:
149 case AMDGPU::BI__builtin_amdgcn_wave_reduce_min_i32:
150 case AMDGPU::BI__builtin_amdgcn_wave_reduce_min_u32:
151 case AMDGPU::BI__builtin_amdgcn_wave_reduce_max_i32:
152 case AMDGPU::BI__builtin_amdgcn_wave_reduce_max_u32:
153 case AMDGPU::BI__builtin_amdgcn_wave_reduce_and_b32:
154 case AMDGPU::BI__builtin_amdgcn_wave_reduce_or_b32:
155 case AMDGPU::BI__builtin_amdgcn_wave_reduce_xor_b32:
156 case AMDGPU::BI__builtin_amdgcn_wave_reduce_add_u64:
157 case AMDGPU::BI__builtin_amdgcn_wave_reduce_sub_u64:
158 case AMDGPU::BI__builtin_amdgcn_wave_reduce_min_i64:
159 case AMDGPU::BI__builtin_amdgcn_wave_reduce_min_u64:
160 case AMDGPU::BI__builtin_amdgcn_wave_reduce_max_i64:
161 case AMDGPU::BI__builtin_amdgcn_wave_reduce_max_u64:
162 case AMDGPU::BI__builtin_amdgcn_wave_reduce_and_b64:
163 case AMDGPU::BI__builtin_amdgcn_wave_reduce_or_b64:
164 case AMDGPU::BI__builtin_amdgcn_wave_reduce_xor_b64: {
165 cgm.errorNYI(
expr->getSourceRange(),
166 std::string(
"unimplemented AMDGPU builtin call: ") +
168 return mlir::Value{};
170 case AMDGPU::BI__builtin_amdgcn_div_scale:
171 case AMDGPU::BI__builtin_amdgcn_div_scalef: {
173 llvm::StringRef intrinsicName =
"amdgcn.div.scale";
178 auto i1Ty = builder.getUIntNTy(1);
179 mlir::Type resMembers[] = {x.getType(), i1Ty};
181 builder.getAnonRecordTy(resMembers,
false,
184 mlir::Value structResult =
185 cir::LLVMIntrinsicCallOp::create(builder,
getLoc(
expr->getExprLoc()),
186 builder.getStringAttr(intrinsicName),
190 mlir::Value result = cir::ExtractMemberOp::create(
191 builder,
getLoc(
expr->getExprLoc()), x.getType(), structResult, 0);
192 mlir::Value flag = cir::ExtractMemberOp::create(
193 builder,
getLoc(
expr->getExprLoc()), i1Ty, structResult, 1);
196 mlir::Value flagToStore =
197 cir::CastOp::create(builder,
getLoc(
expr->getExprLoc()), flagType,
198 cir::CastKind::int_to_bool, flag);
199 builder.createStore(
getLoc(
expr->getExprLoc()), flagToStore, flagOutPtr);
202 case AMDGPU::BI__builtin_amdgcn_div_fmas:
203 case AMDGPU::BI__builtin_amdgcn_div_fmasf:
206 case AMDGPU::BI__builtin_amdgcn_mov_dpp8:
207 case AMDGPU::BI__builtin_amdgcn_mov_dpp:
208 case AMDGPU::BI__builtin_amdgcn_update_dpp: {
209 cgm.errorNYI(
expr->getSourceRange(),
210 std::string(
"unimplemented AMDGPU builtin call: ") +
212 return mlir::Value{};
214 case AMDGPU::BI__builtin_amdgcn_permlane16:
215 case AMDGPU::BI__builtin_amdgcn_permlanex16: {
216 llvm::StringRef intrinsicName =
217 builtinId == AMDGPU::BI__builtin_amdgcn_permlane16
218 ?
"amdgcn.permlane16"
219 :
"amdgcn.permlanex16";
222 case AMDGPU::BI__builtin_amdgcn_permlane64:
225 case AMDGPU::BI__builtin_amdgcn_permlane_bcast:
228 case AMDGPU::BI__builtin_amdgcn_permlane_up:
231 case AMDGPU::BI__builtin_amdgcn_permlane_down:
234 case AMDGPU::BI__builtin_amdgcn_permlane_xor:
237 case AMDGPU::BI__builtin_amdgcn_readlane:
240 case AMDGPU::BI__builtin_amdgcn_readfirstlane:
243 case AMDGPU::BI__builtin_amdgcn_wave_shuffle: {
244 cgm.errorNYI(
expr->getSourceRange(),
245 std::string(
"unimplemented AMDGPU builtin call: ") +
247 return mlir::Value{};
249 case AMDGPU::BI__builtin_amdgcn_div_fixup:
250 case AMDGPU::BI__builtin_amdgcn_div_fixupf:
251 case AMDGPU::BI__builtin_amdgcn_div_fixuph: {
255 return builder.emitIntrinsicCallOp(
getLoc(
expr->getExprLoc()),
256 "amdgcn.div.fixup", src0.getType(),
257 mlir::ValueRange{src0, src1, src2});
259 case AMDGPU::BI__builtin_amdgcn_trig_preop:
260 case AMDGPU::BI__builtin_amdgcn_trig_preopf:
263 case AMDGPU::BI__builtin_amdgcn_rcp:
264 case AMDGPU::BI__builtin_amdgcn_rcpf:
265 case AMDGPU::BI__builtin_amdgcn_rcph:
266 case AMDGPU::BI__builtin_amdgcn_rcp_bf16: {
269 case AMDGPU::BI__builtin_amdgcn_sqrt:
270 case AMDGPU::BI__builtin_amdgcn_sqrtf:
271 case AMDGPU::BI__builtin_amdgcn_sqrth:
272 case AMDGPU::BI__builtin_amdgcn_sqrt_bf16: {
275 case AMDGPU::BI__builtin_amdgcn_rsq:
276 case AMDGPU::BI__builtin_amdgcn_rsqf:
277 case AMDGPU::BI__builtin_amdgcn_rsqh:
278 case AMDGPU::BI__builtin_amdgcn_rsq_bf16: {
281 case AMDGPU::BI__builtin_amdgcn_rsq_clamp:
282 case AMDGPU::BI__builtin_amdgcn_rsq_clampf: {
286 case AMDGPU::BI__builtin_amdgcn_sinf:
287 case AMDGPU::BI__builtin_amdgcn_sinh:
288 case AMDGPU::BI__builtin_amdgcn_sin_bf16: {
291 case AMDGPU::BI__builtin_amdgcn_cosf:
292 case AMDGPU::BI__builtin_amdgcn_cosh:
293 case AMDGPU::BI__builtin_amdgcn_cos_bf16: {
296 case AMDGPU::BI__builtin_amdgcn_dispatch_ptr:
298 case AMDGPU::BI__builtin_amdgcn_logf:
299 case AMDGPU::BI__builtin_amdgcn_log_bf16: {
302 case AMDGPU::BI__builtin_amdgcn_exp2f:
303 case AMDGPU::BI__builtin_amdgcn_exp2_bf16: {
306 case AMDGPU::BI__builtin_amdgcn_log_clampf: {
307 cgm.errorNYI(
expr->getSourceRange(),
308 std::string(
"unimplemented AMDGPU builtin call: ") +
310 return mlir::Value{};
312 case AMDGPU::BI__builtin_amdgcn_ldexp:
313 case AMDGPU::BI__builtin_amdgcn_ldexpf:
314 case AMDGPU::BI__builtin_amdgcn_ldexph: {
321 builtinId == AMDGPU::BI__builtin_amdgcn_ldexph
322 ? cir::CastOp::create(builder,
getLoc(
expr->getExprLoc()),
323 builder.getSInt16Ty(),
324 cir::CastKind::integral, src1)
326 return builder.emitIntrinsicCallOp(
getLoc(
expr->getExprLoc()),
"ldexp",
328 mlir::ValueRange{src0, exp});
330 case AMDGPU::BI__builtin_amdgcn_frexp_mant:
331 case AMDGPU::BI__builtin_amdgcn_frexp_mantf:
332 case AMDGPU::BI__builtin_amdgcn_frexp_manth: {
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:
348 case AMDGPU::BI__builtin_amdgcn_lerp: {
349 cgm.errorNYI(
expr->getSourceRange(),
350 std::string(
"unimplemented AMDGPU builtin call: ") +
352 return mlir::Value{};
354 case AMDGPU::BI__builtin_amdgcn_ubfe:
356 case AMDGPU::BI__builtin_amdgcn_sbfe:
358 case AMDGPU::BI__builtin_amdgcn_ballot_w32:
359 case AMDGPU::BI__builtin_amdgcn_ballot_w64:
363 case AMDGPU::BI__builtin_amdgcn_inverse_ballot_w32:
364 case AMDGPU::BI__builtin_amdgcn_inverse_ballot_w64:
368 case AMDGPU::BI__builtin_amdgcn_tanhf:
369 case AMDGPU::BI__builtin_amdgcn_tanhh:
370 case AMDGPU::BI__builtin_amdgcn_tanh_bf16: {
373 case AMDGPU::BI__builtin_amdgcn_uicmp:
374 case AMDGPU::BI__builtin_amdgcn_uicmpl:
375 case AMDGPU::BI__builtin_amdgcn_sicmp:
376 case AMDGPU::BI__builtin_amdgcn_sicmpl:
377 case AMDGPU::BI__builtin_amdgcn_fcmp:
378 case AMDGPU::BI__builtin_amdgcn_fcmpf: {
383 expr->getArg(2)->EvaluateKnownConstInt(
getContext()).getZExtValue();
389 pred = cir::CmpOpKind::eq;
393 pred = cir::CmpOpKind::ne;
398 pred = cir::CmpOpKind::gt;
403 pred = cir::CmpOpKind::ge;
408 pred = cir::CmpOpKind::lt;
413 pred = cir::CmpOpKind::le;
416 pred = cir::CmpOpKind::one;
419 pred = cir::CmpOpKind::uno;
422 cgm.errorNYI(
expr->getSourceRange(),
423 "amdgcn compare with unsupported predicate");
424 return mlir::Value{};
427 mlir::Location loc =
getLoc(
expr->getExprLoc());
428 mlir::Value cmp = builder.createCompare(loc, pred, lhs, rhs);
429 return builder.emitIntrinsicCallOp(loc,
"amdgcn.ballot",
432 case AMDGPU::BI__builtin_amdgcn_class:
433 case AMDGPU::BI__builtin_amdgcn_classf:
434 case AMDGPU::BI__builtin_amdgcn_classh:
438 case AMDGPU::BI__builtin_amdgcn_fmed3f:
439 case AMDGPU::BI__builtin_amdgcn_fmed3h:
441 case AMDGPU::BI__builtin_amdgcn_ds_append:
442 case AMDGPU::BI__builtin_amdgcn_ds_consume: {
443 cgm.errorNYI(
expr->getSourceRange(),
444 std::string(
"unimplemented AMDGPU builtin call: ") +
446 return mlir::Value{};
448 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_i32:
449 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_v2i32:
450 case AMDGPU::BI__builtin_amdgcn_global_load_tr8_b64_v2i32:
454 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4i16:
455 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4f16:
456 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4bf16:
457 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16:
458 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8f16:
459 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8bf16:
460 case AMDGPU::BI__builtin_amdgcn_global_load_tr16_b128_v8i16:
461 case AMDGPU::BI__builtin_amdgcn_global_load_tr16_b128_v8f16:
462 case AMDGPU::BI__builtin_amdgcn_global_load_tr16_b128_v8bf16:
466 case AMDGPU::BI__builtin_amdgcn_global_load_tr4_b64_v2i32:
470 case AMDGPU::BI__builtin_amdgcn_global_load_tr6_b96_v3i32:
474 case AMDGPU::BI__builtin_amdgcn_ds_load_tr4_b64_v2i32:
478 case AMDGPU::BI__builtin_amdgcn_ds_load_tr6_b96_v3i32:
482 case AMDGPU::BI__builtin_amdgcn_ds_load_tr8_b64_v2i32:
486 case AMDGPU::BI__builtin_amdgcn_ds_load_tr16_b128_v8i16:
487 case AMDGPU::BI__builtin_amdgcn_ds_load_tr16_b128_v8f16:
488 case AMDGPU::BI__builtin_amdgcn_ds_load_tr16_b128_v8bf16:
492 case AMDGPU::BI__builtin_amdgcn_ds_read_tr4_b64_v2i32:
496 case AMDGPU::BI__builtin_amdgcn_ds_read_tr8_b64_v2i32:
500 case AMDGPU::BI__builtin_amdgcn_ds_read_tr6_b96_v3i32:
504 case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4i16:
505 case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4f16:
506 case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4bf16:
510 case AMDGPU::BI__builtin_amdgcn_global_load_monitor_b32:
511 case AMDGPU::BI__builtin_amdgcn_global_load_monitor_b64:
512 case AMDGPU::BI__builtin_amdgcn_global_load_monitor_b128:
513 case AMDGPU::BI__builtin_amdgcn_flat_load_monitor_b32:
514 case AMDGPU::BI__builtin_amdgcn_flat_load_monitor_b64:
515 case AMDGPU::BI__builtin_amdgcn_flat_load_monitor_b128: {
516 cgm.errorNYI(
expr->getSourceRange(),
517 std::string(
"unimplemented AMDGPU builtin call: ") +
519 return mlir::Value{};
521 case AMDGPU::BI__builtin_amdgcn_cluster_load_b32:
522 case AMDGPU::BI__builtin_amdgcn_cluster_load_b64:
523 case AMDGPU::BI__builtin_amdgcn_cluster_load_b128: {
524 cgm.errorNYI(
expr->getSourceRange(),
525 std::string(
"unimplemented AMDGPU builtin call: ") +
527 return mlir::Value{};
529 case AMDGPU::BI__builtin_amdgcn_load_to_lds: {
530 cgm.errorNYI(
expr->getSourceRange(),
531 std::string(
"unimplemented AMDGPU builtin call: ") +
533 return mlir::Value{};
535 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_load_32x4B:
536 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_store_32x4B:
537 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_load_16x8B:
538 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_store_16x8B:
539 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_load_8x16B:
540 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_store_8x16B: {
541 cgm.errorNYI(
expr->getSourceRange(),
542 std::string(
"unimplemented AMDGPU builtin call: ") +
544 return mlir::Value{};
546 case AMDGPU::BI__builtin_amdgcn_get_fpenv:
547 case AMDGPU::BI__builtin_amdgcn_set_fpenv: {
548 cgm.errorNYI(
expr->getSourceRange(),
549 std::string(
"unimplemented AMDGPU builtin call: ") +
551 return mlir::Value{};
553 case AMDGPU::BI__builtin_amdgcn_read_exec:
554 case AMDGPU::BI__builtin_amdgcn_read_exec_lo:
555 case AMDGPU::BI__builtin_amdgcn_read_exec_hi: {
559 mlir::Location loc =
getLoc(
expr->getExprLoc());
560 unsigned registerWidth =
561 builtinId == AMDGPU::BI__builtin_amdgcn_read_exec_lo ? 32 : 64;
562 unsigned ballotWidth =
563 std::max(
getTarget().getGridValue().GV_Warp_Size, registerWidth);
564 cir::IntType ballotTy = builder.getUIntNTy(ballotWidth);
566 mlir::Value truePred = builder.getBool(
true, loc).getResult();
568 builder.emitIntrinsicCallOp(loc,
"amdgcn.ballot", ballotTy, truePred);
570 if (builtinId == AMDGPU::BI__builtin_amdgcn_read_exec_hi)
571 result = builder.createShiftRight(loc, result, 32);
574 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray:
575 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray_h:
576 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray_l:
577 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray_lh: {
578 cgm.errorNYI(
expr->getSourceRange(),
579 std::string(
"unimplemented AMDGPU builtin call: ") +
581 return mlir::Value{};
583 case AMDGPU::BI__builtin_amdgcn_image_bvh8_intersect_ray:
584 case AMDGPU::BI__builtin_amdgcn_image_bvh_dual_intersect_ray: {
585 cgm.errorNYI(
expr->getSourceRange(),
586 std::string(
"unimplemented AMDGPU builtin call: ") +
588 return mlir::Value{};
590 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_rtn:
591 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_push4_pop1_rtn:
592 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_push8_pop1_rtn:
593 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_push8_pop2_rtn: {
594 cgm.errorNYI(
expr->getSourceRange(),
595 std::string(
"unimplemented AMDGPU builtin call: ") +
597 return mlir::Value{};
599 case AMDGPU::BI__builtin_amdgcn_image_load_1d_v4f32_i32:
600 case AMDGPU::BI__builtin_amdgcn_image_load_1d_v4f16_i32:
602 "amdgcn.image.load.1d",
false);
603 case AMDGPU::BI__builtin_amdgcn_image_load_1darray_v4f32_i32:
604 case AMDGPU::BI__builtin_amdgcn_image_load_1darray_v4f16_i32:
606 *
this,
expr,
"amdgcn.image.load.1darray",
false);
607 case AMDGPU::BI__builtin_amdgcn_image_load_2d_f32_i32:
608 case AMDGPU::BI__builtin_amdgcn_image_load_2d_v4f32_i32:
609 case AMDGPU::BI__builtin_amdgcn_image_load_2d_v4f16_i32:
611 "amdgcn.image.load.2d",
false);
612 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_f32_i32:
613 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_v4f32_i32:
614 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_v4f16_i32:
616 *
this,
expr,
"amdgcn.image.load.2darray",
false);
617 case AMDGPU::BI__builtin_amdgcn_image_load_3d_v4f32_i32:
618 case AMDGPU::BI__builtin_amdgcn_image_load_3d_v4f16_i32:
620 "amdgcn.image.load.3d",
false);
621 case AMDGPU::BI__builtin_amdgcn_image_load_cube_v4f32_i32:
622 case AMDGPU::BI__builtin_amdgcn_image_load_cube_v4f16_i32:
624 "amdgcn.image.load.cube",
false);
625 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1d_v4f32_i32:
626 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1d_v4f16_i32:
628 *
this,
expr,
"amdgcn.image.load.mip.1d",
false);
629 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1darray_v4f32_i32:
630 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1darray_v4f16_i32:
632 *
this,
expr,
"amdgcn.image.load.mip.1darray",
false);
633 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_f32_i32:
634 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_v4f32_i32:
635 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_v4f16_i32:
637 *
this,
expr,
"amdgcn.image.load.mip.2d",
false);
638 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_f32_i32:
639 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_v4f32_i32:
640 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_v4f16_i32:
642 *
this,
expr,
"amdgcn.image.load.mip.2darray",
false);
643 case AMDGPU::BI__builtin_amdgcn_image_load_mip_3d_v4f32_i32:
644 case AMDGPU::BI__builtin_amdgcn_image_load_mip_3d_v4f16_i32:
646 *
this,
expr,
"amdgcn.image.load.mip.3d",
false);
647 case AMDGPU::BI__builtin_amdgcn_image_load_mip_cube_v4f32_i32:
648 case AMDGPU::BI__builtin_amdgcn_image_load_mip_cube_v4f16_i32:
650 *
this,
expr,
"amdgcn.image.load.mip.cube",
false);
651 case AMDGPU::BI__builtin_amdgcn_image_store_1d_v4f32_i32:
652 case AMDGPU::BI__builtin_amdgcn_image_store_1d_v4f16_i32:
654 "amdgcn.image.store.1d",
true);
655 case AMDGPU::BI__builtin_amdgcn_image_store_1darray_v4f32_i32:
656 case AMDGPU::BI__builtin_amdgcn_image_store_1darray_v4f16_i32:
658 *
this,
expr,
"amdgcn.image.store.1darray",
true);
659 case AMDGPU::BI__builtin_amdgcn_image_store_2d_f32_i32:
660 case AMDGPU::BI__builtin_amdgcn_image_store_2d_v4f32_i32:
661 case AMDGPU::BI__builtin_amdgcn_image_store_2d_v4f16_i32:
663 "amdgcn.image.store.2d",
true);
664 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_f32_i32:
665 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_v4f32_i32:
666 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_v4f16_i32:
668 *
this,
expr,
"amdgcn.image.store.2darray",
true);
669 case AMDGPU::BI__builtin_amdgcn_image_store_3d_v4f32_i32:
670 case AMDGPU::BI__builtin_amdgcn_image_store_3d_v4f16_i32:
672 "amdgcn.image.store.3d",
true);
673 case AMDGPU::BI__builtin_amdgcn_image_store_cube_v4f32_i32:
674 case AMDGPU::BI__builtin_amdgcn_image_store_cube_v4f16_i32:
676 "amdgcn.image.store.cube",
true);
677 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1d_v4f32_i32:
678 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1d_v4f16_i32:
680 *
this,
expr,
"amdgcn.image.store.mip.1d",
true);
681 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1darray_v4f32_i32:
682 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1darray_v4f16_i32:
684 *
this,
expr,
"amdgcn.image.store.mip.1darray",
true);
685 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_f32_i32:
686 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_v4f32_i32:
687 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_v4f16_i32:
689 *
this,
expr,
"amdgcn.image.store.mip.2d",
true);
690 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_f32_i32:
691 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_v4f32_i32:
692 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_v4f16_i32:
694 *
this,
expr,
"amdgcn.image.store.mip.2darray",
true);
695 case AMDGPU::BI__builtin_amdgcn_image_store_mip_3d_v4f32_i32:
696 case AMDGPU::BI__builtin_amdgcn_image_store_mip_3d_v4f16_i32:
698 *
this,
expr,
"amdgcn.image.store.mip.3d",
true);
699 case AMDGPU::BI__builtin_amdgcn_image_store_mip_cube_v4f32_i32:
700 case AMDGPU::BI__builtin_amdgcn_image_store_mip_cube_v4f16_i32:
702 *
this,
expr,
"amdgcn.image.store.mip.cube",
true);
703 case AMDGPU::BI__builtin_amdgcn_image_sample_1d_v4f32_f32:
704 case AMDGPU::BI__builtin_amdgcn_image_sample_1d_v4f16_f32:
706 "amdgcn.image.sample.1d",
false);
707 case AMDGPU::BI__builtin_amdgcn_image_sample_1darray_v4f32_f32:
708 case AMDGPU::BI__builtin_amdgcn_image_sample_1darray_v4f16_f32:
710 *
this,
expr,
"amdgcn.image.sample.1darray",
false);
711 case AMDGPU::BI__builtin_amdgcn_image_sample_2d_f32_f32:
712 case AMDGPU::BI__builtin_amdgcn_image_sample_2d_v4f32_f32:
713 case AMDGPU::BI__builtin_amdgcn_image_sample_2d_v4f16_f32:
715 "amdgcn.image.sample.2d",
false);
716 case AMDGPU::BI__builtin_amdgcn_image_sample_2darray_f32_f32:
717 case AMDGPU::BI__builtin_amdgcn_image_sample_2darray_v4f32_f32:
718 case AMDGPU::BI__builtin_amdgcn_image_sample_2darray_v4f16_f32:
720 *
this,
expr,
"amdgcn.image.sample.2darray",
false);
721 case AMDGPU::BI__builtin_amdgcn_image_sample_3d_v4f32_f32:
722 case AMDGPU::BI__builtin_amdgcn_image_sample_3d_v4f16_f32:
724 "amdgcn.image.sample.3d",
false);
725 case AMDGPU::BI__builtin_amdgcn_image_sample_cube_v4f32_f32:
726 case AMDGPU::BI__builtin_amdgcn_image_sample_cube_v4f16_f32:
728 *
this,
expr,
"amdgcn.image.sample.cube",
false);
729 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1d_v4f32_f32:
730 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1d_v4f16_f32:
732 *
this,
expr,
"amdgcn.image.sample.lz.1d",
false);
733 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1d_v4f32_f32:
734 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1d_v4f16_f32:
736 *
this,
expr,
"amdgcn.image.sample.l.1d",
false);
737 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1d_v4f32_f32:
738 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1d_v4f16_f32:
740 *
this,
expr,
"amdgcn.image.sample.d.1d",
false);
741 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_v4f32_f32:
742 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_v4f16_f32:
743 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_f32_f32:
745 *
this,
expr,
"amdgcn.image.sample.lz.2d",
false);
746 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_v4f32_f32:
747 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_v4f16_f32:
748 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_f32_f32:
750 *
this,
expr,
"amdgcn.image.sample.l.2d",
false);
751 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_v4f32_f32:
752 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_v4f16_f32:
753 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_f32_f32:
755 *
this,
expr,
"amdgcn.image.sample.d.2d",
false);
756 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_3d_v4f32_f32:
757 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_3d_v4f16_f32:
759 *
this,
expr,
"amdgcn.image.sample.lz.3d",
false);
760 case AMDGPU::BI__builtin_amdgcn_image_sample_l_3d_v4f32_f32:
761 case AMDGPU::BI__builtin_amdgcn_image_sample_l_3d_v4f16_f32:
763 *
this,
expr,
"amdgcn.image.sample.l.3d",
false);
764 case AMDGPU::BI__builtin_amdgcn_image_sample_d_3d_v4f32_f32:
765 case AMDGPU::BI__builtin_amdgcn_image_sample_d_3d_v4f16_f32:
767 *
this,
expr,
"amdgcn.image.sample.d.3d",
false);
768 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_cube_v4f32_f32:
769 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_cube_v4f16_f32:
771 *
this,
expr,
"amdgcn.image.sample.lz.cube",
false);
772 case AMDGPU::BI__builtin_amdgcn_image_sample_l_cube_v4f32_f32:
773 case AMDGPU::BI__builtin_amdgcn_image_sample_l_cube_v4f16_f32:
775 *
this,
expr,
"amdgcn.image.sample.l.cube",
false);
776 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1darray_v4f32_f32:
777 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1darray_v4f16_f32:
779 *
this,
expr,
"amdgcn.image.sample.lz.1darray",
false);
780 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1darray_v4f32_f32:
781 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1darray_v4f16_f32:
783 *
this,
expr,
"amdgcn.image.sample.l.1darray",
false);
784 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1darray_v4f32_f32:
785 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1darray_v4f16_f32:
787 *
this,
expr,
"amdgcn.image.sample.d.1darray",
false);
788 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_v4f32_f32:
789 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_v4f16_f32:
790 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_f32_f32:
792 *
this,
expr,
"amdgcn.image.sample.lz.2darray",
false);
793 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_v4f32_f32:
794 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_v4f16_f32:
795 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_f32_f32:
797 *
this,
expr,
"amdgcn.image.sample.l.2darray",
false);
798 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_v4f32_f32:
799 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_v4f16_f32:
800 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_f32_f32:
802 *
this,
expr,
"amdgcn.image.sample.d.2darray",
false);
803 case AMDGPU::BI__builtin_amdgcn_image_gather4_lz_2d_v4f32_f32:
804 case AMDGPU::BI__builtin_amdgcn_image_gather4_lz_2d_v4f16_f32:
806 *
this,
expr,
"amdgcn.image.gather4.lz.2d",
false);
807 case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4:
808 case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4: {
809 cgm.errorNYI(
expr->getSourceRange(),
810 std::string(
"unimplemented AMDGPU builtin call: ") +
812 return mlir::Value{};
814 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w32:
815 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_tied_w32:
816 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w64:
817 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_tied_w64:
818 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w32:
819 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_tied_w32:
820 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w64:
821 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_tied_w64:
822 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w32:
823 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w64:
824 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w32:
825 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w64:
826 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w32:
827 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w64:
828 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w32:
829 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w64:
830 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w32_gfx12:
831 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w64_gfx12:
832 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w32_gfx12:
833 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w64_gfx12:
834 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w32_gfx12:
835 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w64_gfx12:
836 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w32_gfx12:
837 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w64_gfx12:
838 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w32_gfx12:
839 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w64_gfx12:
840 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w32_gfx12:
841 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w64_gfx12:
842 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_fp8_w32_gfx12:
843 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_fp8_w64_gfx12:
844 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_bf8_w32_gfx12:
845 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_bf8_w64_gfx12:
846 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_fp8_w32_gfx12:
847 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_fp8_w64_gfx12:
848 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_bf8_w32_gfx12:
849 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_bf8_w64_gfx12:
850 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x32_iu4_w32_gfx12:
851 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x32_iu4_w64_gfx12: {
852 cgm.errorNYI(
expr->getSourceRange(),
853 std::string(
"unimplemented AMDGPU builtin call: ") +
855 return mlir::Value{};
857 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_f16_w32:
858 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_f16_w64:
859 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf16_w32:
860 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf16_w64:
861 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x32_f16_w32:
862 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x32_f16_w64:
863 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16_16x16x32_bf16_w32:
864 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16_16x16x32_bf16_w64:
865 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu8_w32:
866 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu8_w64:
867 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu4_w32:
868 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu4_w64:
869 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x64_iu4_w32:
870 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x64_iu4_w64:
871 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_fp8_w32:
872 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_fp8_w64:
873 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_bf8_w32:
874 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_bf8_w64:
875 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_fp8_w32:
876 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_fp8_w64:
877 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_bf8_w32:
878 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_bf8_w64: {
879 cgm.errorNYI(
expr->getSourceRange(),
880 std::string(
"unimplemented AMDGPU builtin call: ") +
882 return mlir::Value{};
884 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x4_f32:
885 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x32_bf16:
886 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x32_f16:
887 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x32_f16:
888 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x32_bf16:
889 case AMDGPU::BI__builtin_amdgcn_wmma_bf16f32_16x16x32_bf16:
890 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_fp8_fp8:
891 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_fp8_bf8:
892 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_bf8_fp8:
893 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_bf8_bf8:
894 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_fp8_fp8:
895 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_fp8_bf8:
896 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_bf8_fp8:
897 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_bf8_bf8:
898 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_fp8_fp8:
899 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_fp8_bf8:
900 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_bf8_fp8:
901 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_bf8_bf8:
902 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_fp8_fp8:
903 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_fp8_bf8:
904 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_bf8_fp8:
905 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_bf8_bf8:
906 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x64_iu8:
907 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_f8f6f4:
908 case AMDGPU::BI__builtin_amdgcn_wmma_f32_32x16x128_f4:
909 case AMDGPU::BI__builtin_amdgcn_wmma_scale_f32_16x16x128_f8f6f4:
910 case AMDGPU::BI__builtin_amdgcn_wmma_scale16_f32_16x16x128_f8f6f4:
911 case AMDGPU::BI__builtin_amdgcn_wmma_scale_f32_32x16x128_f4:
912 case AMDGPU::BI__builtin_amdgcn_wmma_scale16_f32_32x16x128_f4: {
913 cgm.errorNYI(
expr->getSourceRange(),
914 std::string(
"unimplemented AMDGPU builtin call: ") +
916 return mlir::Value{};
918 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x64_f16:
919 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x64_bf16:
920 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x64_f16:
921 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16_16x16x64_bf16:
922 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16f32_16x16x64_bf16:
923 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_fp8_fp8:
924 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_fp8_bf8:
925 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_bf8_fp8:
926 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_bf8_bf8:
927 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_fp8_fp8:
928 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_fp8_bf8:
929 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_bf8_fp8:
930 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_bf8_bf8:
931 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x128_iu8: {
932 cgm.errorNYI(
expr->getSourceRange(),
933 std::string(
"unimplemented AMDGPU builtin call: ") +
935 return mlir::Value{};
938 case AMDGPU::BI__builtin_amdgcn_workgroup_size_x:
939 case AMDGPU::BI__builtin_amdgcn_workgroup_size_y:
940 case AMDGPU::BI__builtin_amdgcn_workgroup_size_z: {
941 cgm.errorNYI(
expr->getSourceRange(),
942 std::string(
"unimplemented AMDGPU builtin call: ") +
944 return mlir::Value{};
946 case AMDGPU::BI__builtin_amdgcn_grid_size_x:
947 case AMDGPU::BI__builtin_amdgcn_grid_size_y:
948 case AMDGPU::BI__builtin_amdgcn_grid_size_z: {
949 cgm.errorNYI(
expr->getSourceRange(),
950 std::string(
"unimplemented AMDGPU builtin call: ") +
952 return mlir::Value{};
954 case AMDGPU::BI__builtin_r600_recipsqrt_ieee:
955 case AMDGPU::BI__builtin_r600_recipsqrt_ieeef: {
956 cgm.errorNYI(
expr->getSourceRange(),
957 std::string(
"unimplemented AMDGPU builtin call: ") +
959 return mlir::Value{};
961 case AMDGPU::BI__builtin_amdgcn_alignbit: {
962 cgm.errorNYI(
expr->getSourceRange(),
963 std::string(
"unimplemented AMDGPU builtin call: ") +
965 return mlir::Value{};
967 case AMDGPU::BI__builtin_amdgcn_fence: {
968 cgm.errorNYI(
expr->getSourceRange(),
969 std::string(
"unimplemented AMDGPU builtin call: ") +
971 return mlir::Value{};
973 case AMDGPU::BI__builtin_amdgcn_atomic_inc32:
974 case AMDGPU::BI__builtin_amdgcn_atomic_inc64:
975 case AMDGPU::BI__builtin_amdgcn_atomic_dec32:
976 case AMDGPU::BI__builtin_amdgcn_atomic_dec64:
977 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_f64:
978 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_f32:
979 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_v2f16:
980 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_v2bf16:
981 case AMDGPU::BI__builtin_amdgcn_ds_faddf:
982 case AMDGPU::BI__builtin_amdgcn_ds_fminf:
983 case AMDGPU::BI__builtin_amdgcn_ds_fmaxf:
984 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_f32:
985 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_f64:
986 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2f16:
987 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2f16:
988 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f32:
989 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f64:
990 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2bf16:
991 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2bf16:
992 case AMDGPU::BI__builtin_amdgcn_global_atomic_fmin_f64:
993 case AMDGPU::BI__builtin_amdgcn_global_atomic_fmax_f64:
994 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fmin_f64:
995 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fmax_f64: {
996 cgm.errorNYI(
expr->getSourceRange(),
997 std::string(
"unimplemented AMDGPU builtin call: ") +
999 return mlir::Value{};
1001 case AMDGPU::BI__builtin_amdgcn_s_sendmsg_rtn:
1002 case AMDGPU::BI__builtin_amdgcn_s_sendmsg_rtnl: {
1003 cgm.errorNYI(
expr->getSourceRange(),
1004 std::string(
"unimplemented AMDGPU builtin call: ") +
1005 getContext().BuiltinInfo.getName(builtinId));
1006 return mlir::Value{};
1008 case AMDGPU::BI__builtin_amdgcn_permlane16_swap:
1009 case AMDGPU::BI__builtin_amdgcn_permlane32_swap: {
1010 cgm.errorNYI(
expr->getSourceRange(),
1011 std::string(
"unimplemented AMDGPU builtin call: ") +
1012 getContext().BuiltinInfo.getName(builtinId));
1013 return mlir::Value{};
1015 case AMDGPU::BI__builtin_amdgcn_bitop3_b32:
1016 case AMDGPU::BI__builtin_amdgcn_bitop3_b16:
1019 case AMDGPU::BI__builtin_amdgcn_make_buffer_rsrc: {
1020 cgm.errorNYI(
expr->getSourceRange(),
1021 std::string(
"unimplemented AMDGPU builtin call: ") +
1022 getContext().BuiltinInfo.getName(builtinId));
1023 return mlir::Value{};
1025 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b8:
1026 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b16:
1027 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b32:
1028 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b64:
1029 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b96:
1030 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b128: {
1031 cgm.errorNYI(
expr->getSourceRange(),
1032 std::string(
"unimplemented AMDGPU builtin call: ") +
1033 getContext().BuiltinInfo.getName(builtinId));
1034 return mlir::Value{};
1036 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b8:
1037 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b16:
1038 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b32:
1039 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b64:
1040 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b96:
1041 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b128: {
1042 cgm.errorNYI(
expr->getSourceRange(),
1043 std::string(
"unimplemented AMDGPU builtin call: ") +
1044 getContext().BuiltinInfo.getName(builtinId));
1045 return mlir::Value{};
1047 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_add_i32: {
1048 cgm.errorNYI(
expr->getSourceRange(),
1049 std::string(
"unimplemented AMDGPU builtin call: ") +
1050 getContext().BuiltinInfo.getName(builtinId));
1051 return mlir::Value{};
1053 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fadd_f32:
1054 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fadd_f64:
1055 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fadd_v2f16: {
1056 cgm.errorNYI(
expr->getSourceRange(),
1057 std::string(
"unimplemented AMDGPU builtin call: ") +
1058 getContext().BuiltinInfo.getName(builtinId));
1059 return mlir::Value{};
1061 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmin_f32:
1062 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmin_f64: {
1063 cgm.errorNYI(
expr->getSourceRange(),
1064 std::string(
"unimplemented AMDGPU builtin call: ") +
1065 getContext().BuiltinInfo.getName(builtinId));
1066 return mlir::Value{};
1068 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmax_f32:
1069 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmax_f64: {
1070 cgm.errorNYI(
expr->getSourceRange(),
1071 std::string(
"unimplemented AMDGPU builtin call: ") +
1072 getContext().BuiltinInfo.getName(builtinId));
1073 return mlir::Value{};
1075 case AMDGPU::BI__builtin_amdgcn_s_prefetch_data: {
1076 cgm.errorNYI(
expr->getSourceRange(),
1077 std::string(
"unimplemented AMDGPU builtin call: ") +
1078 getContext().BuiltinInfo.getName(builtinId));
1079 return mlir::Value{};
1081 case AMDGPU::BI__builtin_amdgcn_s_prefetch_inst: {
1082 cgm.errorNYI(
expr->getSourceRange(),
1083 std::string(
"unimplemented AMDGPU builtin call: ") +
1084 getContext().BuiltinInfo.getName(builtinId));
1085 return mlir::Value{};
1087 case Builtin::BIlogbf:
1088 case Builtin::BI__builtin_logbf:
1090 case Builtin::BIlogb:
1091 case Builtin::BI__builtin_logb:
1093 case Builtin::BIscalbnf:
1094 case Builtin::BI__builtin_scalbnf:
1095 case Builtin::BIscalbn:
1096 case Builtin::BI__builtin_scalbn: {
1098 *
this,
expr,
"ldexp",
"experimental.constrained.ldexp");
1101 return std::nullopt;