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: {
239 return builder.emitIntrinsicCallOp(
getLoc(
expr->getExprLoc()),
240 "amdgcn.div.fixup", src0.getType(),
241 mlir::ValueRange{src0, src1, src2});
243 case AMDGPU::BI__builtin_amdgcn_trig_preop:
244 case AMDGPU::BI__builtin_amdgcn_trig_preopf: {
245 cgm.errorNYI(
expr->getSourceRange(),
246 std::string(
"unimplemented AMDGPU builtin call: ") +
248 return mlir::Value{};
250 case AMDGPU::BI__builtin_amdgcn_rcp:
251 case AMDGPU::BI__builtin_amdgcn_rcpf:
252 case AMDGPU::BI__builtin_amdgcn_rcph:
253 case AMDGPU::BI__builtin_amdgcn_rcp_bf16: {
256 case AMDGPU::BI__builtin_amdgcn_sqrt:
257 case AMDGPU::BI__builtin_amdgcn_sqrtf:
258 case AMDGPU::BI__builtin_amdgcn_sqrth:
259 case AMDGPU::BI__builtin_amdgcn_sqrt_bf16: {
262 case AMDGPU::BI__builtin_amdgcn_rsq:
263 case AMDGPU::BI__builtin_amdgcn_rsqf:
264 case AMDGPU::BI__builtin_amdgcn_rsqh:
265 case AMDGPU::BI__builtin_amdgcn_rsq_bf16: {
268 case AMDGPU::BI__builtin_amdgcn_rsq_clamp:
269 case AMDGPU::BI__builtin_amdgcn_rsq_clampf: {
273 case AMDGPU::BI__builtin_amdgcn_sinf:
274 case AMDGPU::BI__builtin_amdgcn_sinh:
275 case AMDGPU::BI__builtin_amdgcn_sin_bf16: {
278 case AMDGPU::BI__builtin_amdgcn_cosf:
279 case AMDGPU::BI__builtin_amdgcn_cosh:
280 case AMDGPU::BI__builtin_amdgcn_cos_bf16: {
283 case AMDGPU::BI__builtin_amdgcn_dispatch_ptr:
285 case AMDGPU::BI__builtin_amdgcn_logf:
286 case AMDGPU::BI__builtin_amdgcn_log_bf16: {
287 cgm.errorNYI(
expr->getSourceRange(),
288 std::string(
"unimplemented AMDGPU builtin call: ") +
290 return mlir::Value{};
292 case AMDGPU::BI__builtin_amdgcn_exp2f:
293 case AMDGPU::BI__builtin_amdgcn_exp2_bf16: {
294 cgm.errorNYI(
expr->getSourceRange(),
295 std::string(
"unimplemented AMDGPU builtin call: ") +
297 return mlir::Value{};
299 case AMDGPU::BI__builtin_amdgcn_log_clampf: {
300 cgm.errorNYI(
expr->getSourceRange(),
301 std::string(
"unimplemented AMDGPU builtin call: ") +
303 return mlir::Value{};
305 case AMDGPU::BI__builtin_amdgcn_ldexp:
306 case AMDGPU::BI__builtin_amdgcn_ldexpf:
307 case AMDGPU::BI__builtin_amdgcn_ldexph: {
308 cgm.errorNYI(
expr->getSourceRange(),
309 std::string(
"unimplemented AMDGPU builtin call: ") +
311 return mlir::Value{};
313 case AMDGPU::BI__builtin_amdgcn_frexp_mant:
314 case AMDGPU::BI__builtin_amdgcn_frexp_mantf:
315 case AMDGPU::BI__builtin_amdgcn_frexp_manth: {
316 cgm.errorNYI(
expr->getSourceRange(),
317 std::string(
"unimplemented AMDGPU builtin call: ") +
319 return mlir::Value{};
321 case AMDGPU::BI__builtin_amdgcn_frexp_exp:
322 case AMDGPU::BI__builtin_amdgcn_frexp_expf:
323 case AMDGPU::BI__builtin_amdgcn_frexp_exph: {
324 cgm.errorNYI(
expr->getSourceRange(),
325 std::string(
"unimplemented AMDGPU builtin call: ") +
327 return mlir::Value{};
329 case AMDGPU::BI__builtin_amdgcn_fract:
330 case AMDGPU::BI__builtin_amdgcn_fractf:
331 case AMDGPU::BI__builtin_amdgcn_fracth: {
332 cgm.errorNYI(
expr->getSourceRange(),
333 std::string(
"unimplemented AMDGPU builtin call: ") +
335 return mlir::Value{};
337 case AMDGPU::BI__builtin_amdgcn_lerp: {
338 cgm.errorNYI(
expr->getSourceRange(),
339 std::string(
"unimplemented AMDGPU builtin call: ") +
341 return mlir::Value{};
343 case AMDGPU::BI__builtin_amdgcn_ubfe: {
344 cgm.errorNYI(
expr->getSourceRange(),
345 std::string(
"unimplemented AMDGPU builtin call: ") +
347 return mlir::Value{};
349 case AMDGPU::BI__builtin_amdgcn_sbfe: {
350 cgm.errorNYI(
expr->getSourceRange(),
351 std::string(
"unimplemented AMDGPU builtin call: ") +
353 return mlir::Value{};
355 case AMDGPU::BI__builtin_amdgcn_ballot_w32:
356 case AMDGPU::BI__builtin_amdgcn_ballot_w64: {
357 cgm.errorNYI(
expr->getSourceRange(),
358 std::string(
"unimplemented AMDGPU builtin call: ") +
360 return mlir::Value{};
362 case AMDGPU::BI__builtin_amdgcn_inverse_ballot_w32:
363 case AMDGPU::BI__builtin_amdgcn_inverse_ballot_w64: {
364 cgm.errorNYI(
expr->getSourceRange(),
365 std::string(
"unimplemented AMDGPU builtin call: ") +
367 return mlir::Value{};
369 case AMDGPU::BI__builtin_amdgcn_tanhf:
370 case AMDGPU::BI__builtin_amdgcn_tanhh:
371 case AMDGPU::BI__builtin_amdgcn_tanh_bf16: {
372 cgm.errorNYI(
expr->getSourceRange(),
373 std::string(
"unimplemented AMDGPU builtin call: ") +
375 return mlir::Value{};
377 case AMDGPU::BI__builtin_amdgcn_uicmp:
378 case AMDGPU::BI__builtin_amdgcn_uicmpl:
379 case AMDGPU::BI__builtin_amdgcn_sicmp:
380 case AMDGPU::BI__builtin_amdgcn_sicmpl: {
381 cgm.errorNYI(
expr->getSourceRange(),
382 std::string(
"unimplemented AMDGPU builtin call: ") +
384 return mlir::Value{};
386 case AMDGPU::BI__builtin_amdgcn_fcmp:
387 case AMDGPU::BI__builtin_amdgcn_fcmpf: {
388 cgm.errorNYI(
expr->getSourceRange(),
389 std::string(
"unimplemented AMDGPU builtin call: ") +
391 return mlir::Value{};
393 case AMDGPU::BI__builtin_amdgcn_class:
394 case AMDGPU::BI__builtin_amdgcn_classf:
395 case AMDGPU::BI__builtin_amdgcn_classh: {
396 cgm.errorNYI(
expr->getSourceRange(),
397 std::string(
"unimplemented AMDGPU builtin call: ") +
399 return mlir::Value{};
401 case AMDGPU::BI__builtin_amdgcn_fmed3f:
402 case AMDGPU::BI__builtin_amdgcn_fmed3h: {
403 cgm.errorNYI(
expr->getSourceRange(),
404 std::string(
"unimplemented AMDGPU builtin call: ") +
406 return mlir::Value{};
408 case AMDGPU::BI__builtin_amdgcn_ds_append:
409 case AMDGPU::BI__builtin_amdgcn_ds_consume: {
410 cgm.errorNYI(
expr->getSourceRange(),
411 std::string(
"unimplemented AMDGPU builtin call: ") +
413 return mlir::Value{};
415 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_i32:
416 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_v2i32:
417 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4i16:
418 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4f16:
419 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4bf16:
420 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16:
421 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8f16:
422 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8bf16:
423 case AMDGPU::BI__builtin_amdgcn_global_load_tr4_b64_v2i32:
424 case AMDGPU::BI__builtin_amdgcn_global_load_tr8_b64_v2i32:
425 case AMDGPU::BI__builtin_amdgcn_global_load_tr6_b96_v3i32:
426 case AMDGPU::BI__builtin_amdgcn_global_load_tr16_b128_v8i16:
427 case AMDGPU::BI__builtin_amdgcn_global_load_tr16_b128_v8f16:
428 case AMDGPU::BI__builtin_amdgcn_global_load_tr16_b128_v8bf16: {
429 cgm.errorNYI(
expr->getSourceRange(),
430 std::string(
"unimplemented AMDGPU builtin call: ") +
432 return mlir::Value{};
434 case AMDGPU::BI__builtin_amdgcn_ds_load_tr4_b64_v2i32:
435 case AMDGPU::BI__builtin_amdgcn_ds_load_tr8_b64_v2i32:
436 case AMDGPU::BI__builtin_amdgcn_ds_load_tr6_b96_v3i32:
437 case AMDGPU::BI__builtin_amdgcn_ds_load_tr16_b128_v8i16:
438 case AMDGPU::BI__builtin_amdgcn_ds_load_tr16_b128_v8f16:
439 case AMDGPU::BI__builtin_amdgcn_ds_load_tr16_b128_v8bf16: {
440 cgm.errorNYI(
expr->getSourceRange(),
441 std::string(
"unimplemented AMDGPU builtin call: ") +
443 return mlir::Value{};
445 case AMDGPU::BI__builtin_amdgcn_ds_read_tr4_b64_v2i32:
446 case AMDGPU::BI__builtin_amdgcn_ds_read_tr8_b64_v2i32:
447 case AMDGPU::BI__builtin_amdgcn_ds_read_tr6_b96_v3i32:
448 case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4f16:
449 case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4bf16:
450 case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4i16: {
451 cgm.errorNYI(
expr->getSourceRange(),
452 std::string(
"unimplemented AMDGPU builtin call: ") +
454 return mlir::Value{};
456 case AMDGPU::BI__builtin_amdgcn_global_load_monitor_b32:
457 case AMDGPU::BI__builtin_amdgcn_global_load_monitor_b64:
458 case AMDGPU::BI__builtin_amdgcn_global_load_monitor_b128:
459 case AMDGPU::BI__builtin_amdgcn_flat_load_monitor_b32:
460 case AMDGPU::BI__builtin_amdgcn_flat_load_monitor_b64:
461 case AMDGPU::BI__builtin_amdgcn_flat_load_monitor_b128: {
462 cgm.errorNYI(
expr->getSourceRange(),
463 std::string(
"unimplemented AMDGPU builtin call: ") +
465 return mlir::Value{};
467 case AMDGPU::BI__builtin_amdgcn_cluster_load_b32:
468 case AMDGPU::BI__builtin_amdgcn_cluster_load_b64:
469 case AMDGPU::BI__builtin_amdgcn_cluster_load_b128: {
470 cgm.errorNYI(
expr->getSourceRange(),
471 std::string(
"unimplemented AMDGPU builtin call: ") +
473 return mlir::Value{};
475 case AMDGPU::BI__builtin_amdgcn_load_to_lds: {
476 cgm.errorNYI(
expr->getSourceRange(),
477 std::string(
"unimplemented AMDGPU builtin call: ") +
479 return mlir::Value{};
481 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_load_32x4B:
482 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_store_32x4B:
483 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_load_16x8B:
484 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_store_16x8B:
485 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_load_8x16B:
486 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_store_8x16B: {
487 cgm.errorNYI(
expr->getSourceRange(),
488 std::string(
"unimplemented AMDGPU builtin call: ") +
490 return mlir::Value{};
492 case AMDGPU::BI__builtin_amdgcn_get_fpenv:
493 case AMDGPU::BI__builtin_amdgcn_set_fpenv: {
494 cgm.errorNYI(
expr->getSourceRange(),
495 std::string(
"unimplemented AMDGPU builtin call: ") +
497 return mlir::Value{};
499 case AMDGPU::BI__builtin_amdgcn_read_exec:
500 case AMDGPU::BI__builtin_amdgcn_read_exec_lo:
501 case AMDGPU::BI__builtin_amdgcn_read_exec_hi: {
502 cgm.errorNYI(
expr->getSourceRange(),
503 std::string(
"unimplemented AMDGPU builtin call: ") +
505 return mlir::Value{};
507 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray:
508 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray_h:
509 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray_l:
510 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray_lh: {
511 cgm.errorNYI(
expr->getSourceRange(),
512 std::string(
"unimplemented AMDGPU builtin call: ") +
514 return mlir::Value{};
516 case AMDGPU::BI__builtin_amdgcn_image_bvh8_intersect_ray:
517 case AMDGPU::BI__builtin_amdgcn_image_bvh_dual_intersect_ray: {
518 cgm.errorNYI(
expr->getSourceRange(),
519 std::string(
"unimplemented AMDGPU builtin call: ") +
521 return mlir::Value{};
523 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_rtn:
524 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_push4_pop1_rtn:
525 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_push8_pop1_rtn:
526 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_push8_pop2_rtn: {
527 cgm.errorNYI(
expr->getSourceRange(),
528 std::string(
"unimplemented AMDGPU builtin call: ") +
530 return mlir::Value{};
532 case AMDGPU::BI__builtin_amdgcn_image_load_1d_v4f32_i32:
533 case AMDGPU::BI__builtin_amdgcn_image_load_1d_v4f16_i32:
535 "amdgcn.image.load.1d",
false);
536 case AMDGPU::BI__builtin_amdgcn_image_load_1darray_v4f32_i32:
537 case AMDGPU::BI__builtin_amdgcn_image_load_1darray_v4f16_i32:
539 *
this,
expr,
"amdgcn.image.load.1darray",
false);
540 case AMDGPU::BI__builtin_amdgcn_image_load_2d_f32_i32:
541 case AMDGPU::BI__builtin_amdgcn_image_load_2d_v4f32_i32:
542 case AMDGPU::BI__builtin_amdgcn_image_load_2d_v4f16_i32:
544 "amdgcn.image.load.2d",
false);
545 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_f32_i32:
546 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_v4f32_i32:
547 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_v4f16_i32:
549 *
this,
expr,
"amdgcn.image.load.2darray",
false);
550 case AMDGPU::BI__builtin_amdgcn_image_load_3d_v4f32_i32:
551 case AMDGPU::BI__builtin_amdgcn_image_load_3d_v4f16_i32:
553 "amdgcn.image.load.3d",
false);
554 case AMDGPU::BI__builtin_amdgcn_image_load_cube_v4f32_i32:
555 case AMDGPU::BI__builtin_amdgcn_image_load_cube_v4f16_i32:
557 "amdgcn.image.load.cube",
false);
558 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1d_v4f32_i32:
559 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1d_v4f16_i32:
561 *
this,
expr,
"amdgcn.image.load.mip.1d",
false);
562 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1darray_v4f32_i32:
563 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1darray_v4f16_i32:
565 *
this,
expr,
"amdgcn.image.load.mip.1darray",
false);
566 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_f32_i32:
567 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_v4f32_i32:
568 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_v4f16_i32:
570 *
this,
expr,
"amdgcn.image.load.mip.2d",
false);
571 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_f32_i32:
572 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_v4f32_i32:
573 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_v4f16_i32:
575 *
this,
expr,
"amdgcn.image.load.mip.2darray",
false);
576 case AMDGPU::BI__builtin_amdgcn_image_load_mip_3d_v4f32_i32:
577 case AMDGPU::BI__builtin_amdgcn_image_load_mip_3d_v4f16_i32:
579 *
this,
expr,
"amdgcn.image.load.mip.3d",
false);
580 case AMDGPU::BI__builtin_amdgcn_image_load_mip_cube_v4f32_i32:
581 case AMDGPU::BI__builtin_amdgcn_image_load_mip_cube_v4f16_i32:
583 *
this,
expr,
"amdgcn.image.load.mip.cube",
false);
584 case AMDGPU::BI__builtin_amdgcn_image_store_1d_v4f32_i32:
585 case AMDGPU::BI__builtin_amdgcn_image_store_1d_v4f16_i32:
587 "amdgcn.image.store.1d",
true);
588 case AMDGPU::BI__builtin_amdgcn_image_store_1darray_v4f32_i32:
589 case AMDGPU::BI__builtin_amdgcn_image_store_1darray_v4f16_i32:
591 *
this,
expr,
"amdgcn.image.store.1darray",
true);
592 case AMDGPU::BI__builtin_amdgcn_image_store_2d_f32_i32:
593 case AMDGPU::BI__builtin_amdgcn_image_store_2d_v4f32_i32:
594 case AMDGPU::BI__builtin_amdgcn_image_store_2d_v4f16_i32:
596 "amdgcn.image.store.2d",
true);
597 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_f32_i32:
598 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_v4f32_i32:
599 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_v4f16_i32:
601 *
this,
expr,
"amdgcn.image.store.2darray",
true);
602 case AMDGPU::BI__builtin_amdgcn_image_store_3d_v4f32_i32:
603 case AMDGPU::BI__builtin_amdgcn_image_store_3d_v4f16_i32:
605 "amdgcn.image.store.3d",
true);
606 case AMDGPU::BI__builtin_amdgcn_image_store_cube_v4f32_i32:
607 case AMDGPU::BI__builtin_amdgcn_image_store_cube_v4f16_i32:
609 "amdgcn.image.store.cube",
true);
610 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1d_v4f32_i32:
611 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1d_v4f16_i32:
613 *
this,
expr,
"amdgcn.image.store.mip.1d",
true);
614 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1darray_v4f32_i32:
615 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1darray_v4f16_i32:
617 *
this,
expr,
"amdgcn.image.store.mip.1darray",
true);
618 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_f32_i32:
619 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_v4f32_i32:
620 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_v4f16_i32:
622 *
this,
expr,
"amdgcn.image.store.mip.2d",
true);
623 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_f32_i32:
624 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_v4f32_i32:
625 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_v4f16_i32:
627 *
this,
expr,
"amdgcn.image.store.mip.2darray",
true);
628 case AMDGPU::BI__builtin_amdgcn_image_store_mip_3d_v4f32_i32:
629 case AMDGPU::BI__builtin_amdgcn_image_store_mip_3d_v4f16_i32:
631 *
this,
expr,
"amdgcn.image.store.mip.3d",
true);
632 case AMDGPU::BI__builtin_amdgcn_image_store_mip_cube_v4f32_i32:
633 case AMDGPU::BI__builtin_amdgcn_image_store_mip_cube_v4f16_i32:
635 *
this,
expr,
"amdgcn.image.store.mip.cube",
true);
636 case AMDGPU::BI__builtin_amdgcn_image_sample_1d_v4f32_f32:
637 case AMDGPU::BI__builtin_amdgcn_image_sample_1d_v4f16_f32:
639 "amdgcn.image.sample.1d",
false);
640 case AMDGPU::BI__builtin_amdgcn_image_sample_1darray_v4f32_f32:
641 case AMDGPU::BI__builtin_amdgcn_image_sample_1darray_v4f16_f32:
643 *
this,
expr,
"amdgcn.image.sample.1darray",
false);
644 case AMDGPU::BI__builtin_amdgcn_image_sample_2d_f32_f32:
645 case AMDGPU::BI__builtin_amdgcn_image_sample_2d_v4f32_f32:
646 case AMDGPU::BI__builtin_amdgcn_image_sample_2d_v4f16_f32:
648 "amdgcn.image.sample.2d",
false);
649 case AMDGPU::BI__builtin_amdgcn_image_sample_2darray_f32_f32:
650 case AMDGPU::BI__builtin_amdgcn_image_sample_2darray_v4f32_f32:
651 case AMDGPU::BI__builtin_amdgcn_image_sample_2darray_v4f16_f32:
653 *
this,
expr,
"amdgcn.image.sample.2darray",
false);
654 case AMDGPU::BI__builtin_amdgcn_image_sample_3d_v4f32_f32:
655 case AMDGPU::BI__builtin_amdgcn_image_sample_3d_v4f16_f32:
657 "amdgcn.image.sample.3d",
false);
658 case AMDGPU::BI__builtin_amdgcn_image_sample_cube_v4f32_f32:
659 case AMDGPU::BI__builtin_amdgcn_image_sample_cube_v4f16_f32:
661 *
this,
expr,
"amdgcn.image.sample.cube",
false);
662 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1d_v4f32_f32:
663 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1d_v4f16_f32:
665 *
this,
expr,
"amdgcn.image.sample.lz.1d",
false);
666 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1d_v4f32_f32:
667 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1d_v4f16_f32:
669 *
this,
expr,
"amdgcn.image.sample.l.1d",
false);
670 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1d_v4f32_f32:
671 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1d_v4f16_f32:
673 *
this,
expr,
"amdgcn.image.sample.d.1d",
false);
674 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_v4f32_f32:
675 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_v4f16_f32:
676 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_f32_f32:
678 *
this,
expr,
"amdgcn.image.sample.lz.2d",
false);
679 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_v4f32_f32:
680 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_v4f16_f32:
681 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_f32_f32:
683 *
this,
expr,
"amdgcn.image.sample.l.2d",
false);
684 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_v4f32_f32:
685 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_v4f16_f32:
686 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_f32_f32:
688 *
this,
expr,
"amdgcn.image.sample.d.2d",
false);
689 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_3d_v4f32_f32:
690 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_3d_v4f16_f32:
692 *
this,
expr,
"amdgcn.image.sample.lz.3d",
false);
693 case AMDGPU::BI__builtin_amdgcn_image_sample_l_3d_v4f32_f32:
694 case AMDGPU::BI__builtin_amdgcn_image_sample_l_3d_v4f16_f32:
696 *
this,
expr,
"amdgcn.image.sample.l.3d",
false);
697 case AMDGPU::BI__builtin_amdgcn_image_sample_d_3d_v4f32_f32:
698 case AMDGPU::BI__builtin_amdgcn_image_sample_d_3d_v4f16_f32:
700 *
this,
expr,
"amdgcn.image.sample.d.3d",
false);
701 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_cube_v4f32_f32:
702 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_cube_v4f16_f32:
704 *
this,
expr,
"amdgcn.image.sample.lz.cube",
false);
705 case AMDGPU::BI__builtin_amdgcn_image_sample_l_cube_v4f32_f32:
706 case AMDGPU::BI__builtin_amdgcn_image_sample_l_cube_v4f16_f32:
708 *
this,
expr,
"amdgcn.image.sample.l.cube",
false);
709 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1darray_v4f32_f32:
710 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1darray_v4f16_f32:
712 *
this,
expr,
"amdgcn.image.sample.lz.1darray",
false);
713 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1darray_v4f32_f32:
714 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1darray_v4f16_f32:
716 *
this,
expr,
"amdgcn.image.sample.l.1darray",
false);
717 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1darray_v4f32_f32:
718 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1darray_v4f16_f32:
720 *
this,
expr,
"amdgcn.image.sample.d.1darray",
false);
721 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_v4f32_f32:
722 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_v4f16_f32:
723 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_f32_f32:
725 *
this,
expr,
"amdgcn.image.sample.lz.2darray",
false);
726 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_v4f32_f32:
727 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_v4f16_f32:
728 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_f32_f32:
730 *
this,
expr,
"amdgcn.image.sample.l.2darray",
false);
731 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_v4f32_f32:
732 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_v4f16_f32:
733 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_f32_f32:
735 *
this,
expr,
"amdgcn.image.sample.d.2darray",
false);
736 case AMDGPU::BI__builtin_amdgcn_image_gather4_lz_2d_v4f32_f32:
738 *
this,
expr,
"amdgcn.image.gather4.lz.2d",
false);
739 case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4:
740 case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4: {
741 cgm.errorNYI(
expr->getSourceRange(),
742 std::string(
"unimplemented AMDGPU builtin call: ") +
744 return mlir::Value{};
746 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w32:
747 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_tied_w32:
748 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w64:
749 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_tied_w64:
750 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w32:
751 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_tied_w32:
752 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w64:
753 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_tied_w64:
754 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w32:
755 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w64:
756 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w32:
757 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w64:
758 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w32:
759 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w64:
760 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w32:
761 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w64:
762 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w32_gfx12:
763 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w64_gfx12:
764 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w32_gfx12:
765 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w64_gfx12:
766 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w32_gfx12:
767 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w64_gfx12:
768 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w32_gfx12:
769 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w64_gfx12:
770 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w32_gfx12:
771 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w64_gfx12:
772 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w32_gfx12:
773 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w64_gfx12:
774 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_fp8_w32_gfx12:
775 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_fp8_w64_gfx12:
776 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_bf8_w32_gfx12:
777 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_bf8_w64_gfx12:
778 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_fp8_w32_gfx12:
779 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_fp8_w64_gfx12:
780 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_bf8_w32_gfx12:
781 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_bf8_w64_gfx12:
782 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x32_iu4_w32_gfx12:
783 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x32_iu4_w64_gfx12: {
784 cgm.errorNYI(
expr->getSourceRange(),
785 std::string(
"unimplemented AMDGPU builtin call: ") +
787 return mlir::Value{};
789 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_f16_w32:
790 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_f16_w64:
791 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf16_w32:
792 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf16_w64:
793 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x32_f16_w32:
794 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x32_f16_w64:
795 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16_16x16x32_bf16_w32:
796 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16_16x16x32_bf16_w64:
797 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu8_w32:
798 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu8_w64:
799 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu4_w32:
800 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu4_w64:
801 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x64_iu4_w32:
802 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x64_iu4_w64:
803 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_fp8_w32:
804 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_fp8_w64:
805 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_bf8_w32:
806 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_bf8_w64:
807 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_fp8_w32:
808 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_fp8_w64:
809 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_bf8_w32:
810 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_bf8_w64: {
811 cgm.errorNYI(
expr->getSourceRange(),
812 std::string(
"unimplemented AMDGPU builtin call: ") +
814 return mlir::Value{};
816 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x4_f32:
817 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x32_bf16:
818 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x32_f16:
819 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x32_f16:
820 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x32_bf16:
821 case AMDGPU::BI__builtin_amdgcn_wmma_bf16f32_16x16x32_bf16:
822 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_fp8_fp8:
823 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_fp8_bf8:
824 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_bf8_fp8:
825 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_bf8_bf8:
826 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_fp8_fp8:
827 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_fp8_bf8:
828 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_bf8_fp8:
829 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_bf8_bf8:
830 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_fp8_fp8:
831 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_fp8_bf8:
832 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_bf8_fp8:
833 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_bf8_bf8:
834 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_fp8_fp8:
835 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_fp8_bf8:
836 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_bf8_fp8:
837 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_bf8_bf8:
838 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x64_iu8:
839 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_f8f6f4:
840 case AMDGPU::BI__builtin_amdgcn_wmma_f32_32x16x128_f4:
841 case AMDGPU::BI__builtin_amdgcn_wmma_scale_f32_16x16x128_f8f6f4:
842 case AMDGPU::BI__builtin_amdgcn_wmma_scale16_f32_16x16x128_f8f6f4:
843 case AMDGPU::BI__builtin_amdgcn_wmma_scale_f32_32x16x128_f4:
844 case AMDGPU::BI__builtin_amdgcn_wmma_scale16_f32_32x16x128_f4: {
845 cgm.errorNYI(
expr->getSourceRange(),
846 std::string(
"unimplemented AMDGPU builtin call: ") +
848 return mlir::Value{};
850 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x64_f16:
851 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x64_bf16:
852 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x64_f16:
853 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16_16x16x64_bf16:
854 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16f32_16x16x64_bf16:
855 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_fp8_fp8:
856 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_fp8_bf8:
857 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_bf8_fp8:
858 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_bf8_bf8:
859 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_fp8_fp8:
860 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_fp8_bf8:
861 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_bf8_fp8:
862 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_bf8_bf8:
863 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x128_iu8: {
864 cgm.errorNYI(
expr->getSourceRange(),
865 std::string(
"unimplemented AMDGPU builtin call: ") +
867 return mlir::Value{};
870 case AMDGPU::BI__builtin_amdgcn_workgroup_size_x:
871 case AMDGPU::BI__builtin_amdgcn_workgroup_size_y:
872 case AMDGPU::BI__builtin_amdgcn_workgroup_size_z: {
873 cgm.errorNYI(
expr->getSourceRange(),
874 std::string(
"unimplemented AMDGPU builtin call: ") +
876 return mlir::Value{};
878 case AMDGPU::BI__builtin_amdgcn_grid_size_x:
879 case AMDGPU::BI__builtin_amdgcn_grid_size_y:
880 case AMDGPU::BI__builtin_amdgcn_grid_size_z: {
881 cgm.errorNYI(
expr->getSourceRange(),
882 std::string(
"unimplemented AMDGPU builtin call: ") +
884 return mlir::Value{};
886 case AMDGPU::BI__builtin_r600_recipsqrt_ieee:
887 case AMDGPU::BI__builtin_r600_recipsqrt_ieeef: {
888 cgm.errorNYI(
expr->getSourceRange(),
889 std::string(
"unimplemented AMDGPU builtin call: ") +
891 return mlir::Value{};
893 case AMDGPU::BI__builtin_amdgcn_alignbit: {
894 cgm.errorNYI(
expr->getSourceRange(),
895 std::string(
"unimplemented AMDGPU builtin call: ") +
897 return mlir::Value{};
899 case AMDGPU::BI__builtin_amdgcn_fence: {
900 cgm.errorNYI(
expr->getSourceRange(),
901 std::string(
"unimplemented AMDGPU builtin call: ") +
903 return mlir::Value{};
905 case AMDGPU::BI__builtin_amdgcn_atomic_inc32:
906 case AMDGPU::BI__builtin_amdgcn_atomic_inc64:
907 case AMDGPU::BI__builtin_amdgcn_atomic_dec32:
908 case AMDGPU::BI__builtin_amdgcn_atomic_dec64:
909 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_f64:
910 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_f32:
911 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_v2f16:
912 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_v2bf16:
913 case AMDGPU::BI__builtin_amdgcn_ds_faddf:
914 case AMDGPU::BI__builtin_amdgcn_ds_fminf:
915 case AMDGPU::BI__builtin_amdgcn_ds_fmaxf:
916 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_f32:
917 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_f64:
918 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2f16:
919 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2f16:
920 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f32:
921 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f64:
922 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2bf16:
923 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2bf16:
924 case AMDGPU::BI__builtin_amdgcn_global_atomic_fmin_f64:
925 case AMDGPU::BI__builtin_amdgcn_global_atomic_fmax_f64:
926 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fmin_f64:
927 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fmax_f64: {
928 cgm.errorNYI(
expr->getSourceRange(),
929 std::string(
"unimplemented AMDGPU builtin call: ") +
931 return mlir::Value{};
933 case AMDGPU::BI__builtin_amdgcn_s_sendmsg_rtn:
934 case AMDGPU::BI__builtin_amdgcn_s_sendmsg_rtnl: {
935 cgm.errorNYI(
expr->getSourceRange(),
936 std::string(
"unimplemented AMDGPU builtin call: ") +
938 return mlir::Value{};
940 case AMDGPU::BI__builtin_amdgcn_permlane16_swap:
941 case AMDGPU::BI__builtin_amdgcn_permlane32_swap: {
942 cgm.errorNYI(
expr->getSourceRange(),
943 std::string(
"unimplemented AMDGPU builtin call: ") +
945 return mlir::Value{};
947 case AMDGPU::BI__builtin_amdgcn_bitop3_b32:
948 case AMDGPU::BI__builtin_amdgcn_bitop3_b16: {
949 cgm.errorNYI(
expr->getSourceRange(),
950 std::string(
"unimplemented AMDGPU builtin call: ") +
952 return mlir::Value{};
954 case AMDGPU::BI__builtin_amdgcn_make_buffer_rsrc: {
955 cgm.errorNYI(
expr->getSourceRange(),
956 std::string(
"unimplemented AMDGPU builtin call: ") +
958 return mlir::Value{};
960 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b8:
961 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b16:
962 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b32:
963 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b64:
964 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b96:
965 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b128: {
966 cgm.errorNYI(
expr->getSourceRange(),
967 std::string(
"unimplemented AMDGPU builtin call: ") +
969 return mlir::Value{};
971 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b8:
972 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b16:
973 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b32:
974 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b64:
975 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b96:
976 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b128: {
977 cgm.errorNYI(
expr->getSourceRange(),
978 std::string(
"unimplemented AMDGPU builtin call: ") +
980 return mlir::Value{};
982 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_add_i32: {
983 cgm.errorNYI(
expr->getSourceRange(),
984 std::string(
"unimplemented AMDGPU builtin call: ") +
986 return mlir::Value{};
988 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fadd_f32:
989 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fadd_v2f16: {
990 cgm.errorNYI(
expr->getSourceRange(),
991 std::string(
"unimplemented AMDGPU builtin call: ") +
993 return mlir::Value{};
995 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmin_f32:
996 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmin_f64: {
997 cgm.errorNYI(
expr->getSourceRange(),
998 std::string(
"unimplemented AMDGPU builtin call: ") +
1000 return mlir::Value{};
1002 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmax_f32:
1003 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmax_f64: {
1004 cgm.errorNYI(
expr->getSourceRange(),
1005 std::string(
"unimplemented AMDGPU builtin call: ") +
1006 getContext().BuiltinInfo.getName(builtinId));
1007 return mlir::Value{};
1009 case AMDGPU::BI__builtin_amdgcn_s_prefetch_data: {
1010 cgm.errorNYI(
expr->getSourceRange(),
1011 std::string(
"unimplemented AMDGPU builtin call: ") +
1012 getContext().BuiltinInfo.getName(builtinId));
1013 return mlir::Value{};
1015 case Builtin::BIlogbf:
1016 case Builtin::BI__builtin_logbf:
1018 case Builtin::BIlogb:
1019 case Builtin::BI__builtin_logb:
1021 case Builtin::BIscalbnf:
1022 case Builtin::BI__builtin_scalbnf:
1023 case Builtin::BIscalbn:
1024 case Builtin::BI__builtin_scalbn: {
1026 *
this,
expr,
"ldexp",
"experimental.constrained.ldexp");
1029 return std::nullopt;