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: {
254 cgm.errorNYI(
expr->getSourceRange(),
255 std::string(
"unimplemented AMDGPU builtin call: ") +
257 return mlir::Value{};
259 case AMDGPU::BI__builtin_amdgcn_sqrt:
260 case AMDGPU::BI__builtin_amdgcn_sqrtf:
261 case AMDGPU::BI__builtin_amdgcn_sqrth:
262 case AMDGPU::BI__builtin_amdgcn_sqrt_bf16: {
263 cgm.errorNYI(
expr->getSourceRange(),
264 std::string(
"unimplemented AMDGPU builtin call: ") +
266 return mlir::Value{};
268 case AMDGPU::BI__builtin_amdgcn_rsq:
269 case AMDGPU::BI__builtin_amdgcn_rsqf:
270 case AMDGPU::BI__builtin_amdgcn_rsqh:
271 case AMDGPU::BI__builtin_amdgcn_rsq_bf16: {
272 cgm.errorNYI(
expr->getSourceRange(),
273 std::string(
"unimplemented AMDGPU builtin call: ") +
275 return mlir::Value{};
277 case AMDGPU::BI__builtin_amdgcn_rsq_clamp:
278 case AMDGPU::BI__builtin_amdgcn_rsq_clampf: {
279 cgm.errorNYI(
expr->getSourceRange(),
280 std::string(
"unimplemented AMDGPU builtin call: ") +
282 return mlir::Value{};
284 case AMDGPU::BI__builtin_amdgcn_sinf:
285 case AMDGPU::BI__builtin_amdgcn_sinh:
286 case AMDGPU::BI__builtin_amdgcn_sin_bf16: {
287 cgm.errorNYI(
expr->getSourceRange(),
288 std::string(
"unimplemented AMDGPU builtin call: ") +
290 return mlir::Value{};
292 case AMDGPU::BI__builtin_amdgcn_cosf:
293 case AMDGPU::BI__builtin_amdgcn_cosh:
294 case AMDGPU::BI__builtin_amdgcn_cos_bf16: {
295 cgm.errorNYI(
expr->getSourceRange(),
296 std::string(
"unimplemented AMDGPU builtin call: ") +
298 return mlir::Value{};
300 case AMDGPU::BI__builtin_amdgcn_dispatch_ptr:
302 case AMDGPU::BI__builtin_amdgcn_logf:
303 case AMDGPU::BI__builtin_amdgcn_log_bf16: {
304 cgm.errorNYI(
expr->getSourceRange(),
305 std::string(
"unimplemented AMDGPU builtin call: ") +
307 return mlir::Value{};
309 case AMDGPU::BI__builtin_amdgcn_exp2f:
310 case AMDGPU::BI__builtin_amdgcn_exp2_bf16: {
311 cgm.errorNYI(
expr->getSourceRange(),
312 std::string(
"unimplemented AMDGPU builtin call: ") +
314 return mlir::Value{};
316 case AMDGPU::BI__builtin_amdgcn_log_clampf: {
317 cgm.errorNYI(
expr->getSourceRange(),
318 std::string(
"unimplemented AMDGPU builtin call: ") +
320 return mlir::Value{};
322 case AMDGPU::BI__builtin_amdgcn_ldexp:
323 case AMDGPU::BI__builtin_amdgcn_ldexpf:
324 case AMDGPU::BI__builtin_amdgcn_ldexph: {
325 cgm.errorNYI(
expr->getSourceRange(),
326 std::string(
"unimplemented AMDGPU builtin call: ") +
328 return mlir::Value{};
330 case AMDGPU::BI__builtin_amdgcn_frexp_mant:
331 case AMDGPU::BI__builtin_amdgcn_frexp_mantf:
332 case AMDGPU::BI__builtin_amdgcn_frexp_manth: {
333 cgm.errorNYI(
expr->getSourceRange(),
334 std::string(
"unimplemented AMDGPU builtin call: ") +
336 return mlir::Value{};
338 case AMDGPU::BI__builtin_amdgcn_frexp_exp:
339 case AMDGPU::BI__builtin_amdgcn_frexp_expf:
340 case AMDGPU::BI__builtin_amdgcn_frexp_exph: {
341 cgm.errorNYI(
expr->getSourceRange(),
342 std::string(
"unimplemented AMDGPU builtin call: ") +
344 return mlir::Value{};
346 case AMDGPU::BI__builtin_amdgcn_fract:
347 case AMDGPU::BI__builtin_amdgcn_fractf:
348 case AMDGPU::BI__builtin_amdgcn_fracth: {
349 cgm.errorNYI(
expr->getSourceRange(),
350 std::string(
"unimplemented AMDGPU builtin call: ") +
352 return mlir::Value{};
354 case AMDGPU::BI__builtin_amdgcn_lerp: {
355 cgm.errorNYI(
expr->getSourceRange(),
356 std::string(
"unimplemented AMDGPU builtin call: ") +
358 return mlir::Value{};
360 case AMDGPU::BI__builtin_amdgcn_ubfe: {
361 cgm.errorNYI(
expr->getSourceRange(),
362 std::string(
"unimplemented AMDGPU builtin call: ") +
364 return mlir::Value{};
366 case AMDGPU::BI__builtin_amdgcn_sbfe: {
367 cgm.errorNYI(
expr->getSourceRange(),
368 std::string(
"unimplemented AMDGPU builtin call: ") +
370 return mlir::Value{};
372 case AMDGPU::BI__builtin_amdgcn_ballot_w32:
373 case AMDGPU::BI__builtin_amdgcn_ballot_w64: {
374 cgm.errorNYI(
expr->getSourceRange(),
375 std::string(
"unimplemented AMDGPU builtin call: ") +
377 return mlir::Value{};
379 case AMDGPU::BI__builtin_amdgcn_inverse_ballot_w32:
380 case AMDGPU::BI__builtin_amdgcn_inverse_ballot_w64: {
381 cgm.errorNYI(
expr->getSourceRange(),
382 std::string(
"unimplemented AMDGPU builtin call: ") +
384 return mlir::Value{};
386 case AMDGPU::BI__builtin_amdgcn_tanhf:
387 case AMDGPU::BI__builtin_amdgcn_tanhh:
388 case AMDGPU::BI__builtin_amdgcn_tanh_bf16: {
389 cgm.errorNYI(
expr->getSourceRange(),
390 std::string(
"unimplemented AMDGPU builtin call: ") +
392 return mlir::Value{};
394 case AMDGPU::BI__builtin_amdgcn_uicmp:
395 case AMDGPU::BI__builtin_amdgcn_uicmpl:
396 case AMDGPU::BI__builtin_amdgcn_sicmp:
397 case AMDGPU::BI__builtin_amdgcn_sicmpl: {
398 cgm.errorNYI(
expr->getSourceRange(),
399 std::string(
"unimplemented AMDGPU builtin call: ") +
401 return mlir::Value{};
403 case AMDGPU::BI__builtin_amdgcn_fcmp:
404 case AMDGPU::BI__builtin_amdgcn_fcmpf: {
405 cgm.errorNYI(
expr->getSourceRange(),
406 std::string(
"unimplemented AMDGPU builtin call: ") +
408 return mlir::Value{};
410 case AMDGPU::BI__builtin_amdgcn_class:
411 case AMDGPU::BI__builtin_amdgcn_classf:
412 case AMDGPU::BI__builtin_amdgcn_classh: {
413 cgm.errorNYI(
expr->getSourceRange(),
414 std::string(
"unimplemented AMDGPU builtin call: ") +
416 return mlir::Value{};
418 case AMDGPU::BI__builtin_amdgcn_fmed3f:
419 case AMDGPU::BI__builtin_amdgcn_fmed3h: {
420 cgm.errorNYI(
expr->getSourceRange(),
421 std::string(
"unimplemented AMDGPU builtin call: ") +
423 return mlir::Value{};
425 case AMDGPU::BI__builtin_amdgcn_ds_append:
426 case AMDGPU::BI__builtin_amdgcn_ds_consume: {
427 cgm.errorNYI(
expr->getSourceRange(),
428 std::string(
"unimplemented AMDGPU builtin call: ") +
430 return mlir::Value{};
432 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_i32:
433 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_v2i32:
434 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4i16:
435 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4f16:
436 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4bf16:
437 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16:
438 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8f16:
439 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8bf16:
440 case AMDGPU::BI__builtin_amdgcn_global_load_tr4_b64_v2i32:
441 case AMDGPU::BI__builtin_amdgcn_global_load_tr8_b64_v2i32:
442 case AMDGPU::BI__builtin_amdgcn_global_load_tr6_b96_v3i32:
443 case AMDGPU::BI__builtin_amdgcn_global_load_tr16_b128_v8i16:
444 case AMDGPU::BI__builtin_amdgcn_global_load_tr16_b128_v8f16:
445 case AMDGPU::BI__builtin_amdgcn_global_load_tr16_b128_v8bf16: {
446 cgm.errorNYI(
expr->getSourceRange(),
447 std::string(
"unimplemented AMDGPU builtin call: ") +
449 return mlir::Value{};
451 case AMDGPU::BI__builtin_amdgcn_ds_load_tr4_b64_v2i32:
452 case AMDGPU::BI__builtin_amdgcn_ds_load_tr8_b64_v2i32:
453 case AMDGPU::BI__builtin_amdgcn_ds_load_tr6_b96_v3i32:
454 case AMDGPU::BI__builtin_amdgcn_ds_load_tr16_b128_v8i16:
455 case AMDGPU::BI__builtin_amdgcn_ds_load_tr16_b128_v8f16:
456 case AMDGPU::BI__builtin_amdgcn_ds_load_tr16_b128_v8bf16: {
457 cgm.errorNYI(
expr->getSourceRange(),
458 std::string(
"unimplemented AMDGPU builtin call: ") +
460 return mlir::Value{};
462 case AMDGPU::BI__builtin_amdgcn_ds_read_tr4_b64_v2i32:
463 case AMDGPU::BI__builtin_amdgcn_ds_read_tr8_b64_v2i32:
464 case AMDGPU::BI__builtin_amdgcn_ds_read_tr6_b96_v3i32:
465 case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4f16:
466 case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4bf16:
467 case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4i16: {
468 cgm.errorNYI(
expr->getSourceRange(),
469 std::string(
"unimplemented AMDGPU builtin call: ") +
471 return mlir::Value{};
473 case AMDGPU::BI__builtin_amdgcn_global_load_monitor_b32:
474 case AMDGPU::BI__builtin_amdgcn_global_load_monitor_b64:
475 case AMDGPU::BI__builtin_amdgcn_global_load_monitor_b128:
476 case AMDGPU::BI__builtin_amdgcn_flat_load_monitor_b32:
477 case AMDGPU::BI__builtin_amdgcn_flat_load_monitor_b64:
478 case AMDGPU::BI__builtin_amdgcn_flat_load_monitor_b128: {
479 cgm.errorNYI(
expr->getSourceRange(),
480 std::string(
"unimplemented AMDGPU builtin call: ") +
482 return mlir::Value{};
484 case AMDGPU::BI__builtin_amdgcn_cluster_load_b32:
485 case AMDGPU::BI__builtin_amdgcn_cluster_load_b64:
486 case AMDGPU::BI__builtin_amdgcn_cluster_load_b128: {
487 cgm.errorNYI(
expr->getSourceRange(),
488 std::string(
"unimplemented AMDGPU builtin call: ") +
490 return mlir::Value{};
492 case AMDGPU::BI__builtin_amdgcn_load_to_lds: {
493 cgm.errorNYI(
expr->getSourceRange(),
494 std::string(
"unimplemented AMDGPU builtin call: ") +
496 return mlir::Value{};
498 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_load_32x4B:
499 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_store_32x4B:
500 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_load_16x8B:
501 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_store_16x8B:
502 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_load_8x16B:
503 case AMDGPU::BI__builtin_amdgcn_cooperative_atomic_store_8x16B: {
504 cgm.errorNYI(
expr->getSourceRange(),
505 std::string(
"unimplemented AMDGPU builtin call: ") +
507 return mlir::Value{};
509 case AMDGPU::BI__builtin_amdgcn_get_fpenv:
510 case AMDGPU::BI__builtin_amdgcn_set_fpenv: {
511 cgm.errorNYI(
expr->getSourceRange(),
512 std::string(
"unimplemented AMDGPU builtin call: ") +
514 return mlir::Value{};
516 case AMDGPU::BI__builtin_amdgcn_read_exec:
517 case AMDGPU::BI__builtin_amdgcn_read_exec_lo:
518 case AMDGPU::BI__builtin_amdgcn_read_exec_hi: {
519 cgm.errorNYI(
expr->getSourceRange(),
520 std::string(
"unimplemented AMDGPU builtin call: ") +
522 return mlir::Value{};
524 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray:
525 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray_h:
526 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray_l:
527 case AMDGPU::BI__builtin_amdgcn_image_bvh_intersect_ray_lh: {
528 cgm.errorNYI(
expr->getSourceRange(),
529 std::string(
"unimplemented AMDGPU builtin call: ") +
531 return mlir::Value{};
533 case AMDGPU::BI__builtin_amdgcn_image_bvh8_intersect_ray:
534 case AMDGPU::BI__builtin_amdgcn_image_bvh_dual_intersect_ray: {
535 cgm.errorNYI(
expr->getSourceRange(),
536 std::string(
"unimplemented AMDGPU builtin call: ") +
538 return mlir::Value{};
540 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_rtn:
541 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_push4_pop1_rtn:
542 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_push8_pop1_rtn:
543 case AMDGPU::BI__builtin_amdgcn_ds_bvh_stack_push8_pop2_rtn: {
544 cgm.errorNYI(
expr->getSourceRange(),
545 std::string(
"unimplemented AMDGPU builtin call: ") +
547 return mlir::Value{};
549 case AMDGPU::BI__builtin_amdgcn_image_load_1d_v4f32_i32:
550 case AMDGPU::BI__builtin_amdgcn_image_load_1d_v4f16_i32:
552 "amdgcn.image.load.1d",
false);
553 case AMDGPU::BI__builtin_amdgcn_image_load_1darray_v4f32_i32:
554 case AMDGPU::BI__builtin_amdgcn_image_load_1darray_v4f16_i32:
556 *
this,
expr,
"amdgcn.image.load.1darray",
false);
557 case AMDGPU::BI__builtin_amdgcn_image_load_2d_f32_i32:
558 case AMDGPU::BI__builtin_amdgcn_image_load_2d_v4f32_i32:
559 case AMDGPU::BI__builtin_amdgcn_image_load_2d_v4f16_i32:
561 "amdgcn.image.load.2d",
false);
562 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_f32_i32:
563 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_v4f32_i32:
564 case AMDGPU::BI__builtin_amdgcn_image_load_2darray_v4f16_i32:
566 *
this,
expr,
"amdgcn.image.load.2darray",
false);
567 case AMDGPU::BI__builtin_amdgcn_image_load_3d_v4f32_i32:
568 case AMDGPU::BI__builtin_amdgcn_image_load_3d_v4f16_i32:
570 "amdgcn.image.load.3d",
false);
571 case AMDGPU::BI__builtin_amdgcn_image_load_cube_v4f32_i32:
572 case AMDGPU::BI__builtin_amdgcn_image_load_cube_v4f16_i32:
574 "amdgcn.image.load.cube",
false);
575 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1d_v4f32_i32:
576 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1d_v4f16_i32:
578 *
this,
expr,
"amdgcn.image.load.mip.1d",
false);
579 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1darray_v4f32_i32:
580 case AMDGPU::BI__builtin_amdgcn_image_load_mip_1darray_v4f16_i32:
582 *
this,
expr,
"amdgcn.image.load.mip.1darray",
false);
583 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_f32_i32:
584 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_v4f32_i32:
585 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2d_v4f16_i32:
587 *
this,
expr,
"amdgcn.image.load.mip.2d",
false);
588 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_f32_i32:
589 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_v4f32_i32:
590 case AMDGPU::BI__builtin_amdgcn_image_load_mip_2darray_v4f16_i32:
592 *
this,
expr,
"amdgcn.image.load.mip.2darray",
false);
593 case AMDGPU::BI__builtin_amdgcn_image_load_mip_3d_v4f32_i32:
594 case AMDGPU::BI__builtin_amdgcn_image_load_mip_3d_v4f16_i32:
596 *
this,
expr,
"amdgcn.image.load.mip.3d",
false);
597 case AMDGPU::BI__builtin_amdgcn_image_load_mip_cube_v4f32_i32:
598 case AMDGPU::BI__builtin_amdgcn_image_load_mip_cube_v4f16_i32:
600 *
this,
expr,
"amdgcn.image.load.mip.cube",
false);
601 case AMDGPU::BI__builtin_amdgcn_image_store_1d_v4f32_i32:
602 case AMDGPU::BI__builtin_amdgcn_image_store_1d_v4f16_i32:
604 "amdgcn.image.store.1d",
true);
605 case AMDGPU::BI__builtin_amdgcn_image_store_1darray_v4f32_i32:
606 case AMDGPU::BI__builtin_amdgcn_image_store_1darray_v4f16_i32:
608 *
this,
expr,
"amdgcn.image.store.1darray",
true);
609 case AMDGPU::BI__builtin_amdgcn_image_store_2d_f32_i32:
610 case AMDGPU::BI__builtin_amdgcn_image_store_2d_v4f32_i32:
611 case AMDGPU::BI__builtin_amdgcn_image_store_2d_v4f16_i32:
613 "amdgcn.image.store.2d",
true);
614 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_f32_i32:
615 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_v4f32_i32:
616 case AMDGPU::BI__builtin_amdgcn_image_store_2darray_v4f16_i32:
618 *
this,
expr,
"amdgcn.image.store.2darray",
true);
619 case AMDGPU::BI__builtin_amdgcn_image_store_3d_v4f32_i32:
620 case AMDGPU::BI__builtin_amdgcn_image_store_3d_v4f16_i32:
622 "amdgcn.image.store.3d",
true);
623 case AMDGPU::BI__builtin_amdgcn_image_store_cube_v4f32_i32:
624 case AMDGPU::BI__builtin_amdgcn_image_store_cube_v4f16_i32:
626 "amdgcn.image.store.cube",
true);
627 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1d_v4f32_i32:
628 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1d_v4f16_i32:
630 *
this,
expr,
"amdgcn.image.store.mip.1d",
true);
631 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1darray_v4f32_i32:
632 case AMDGPU::BI__builtin_amdgcn_image_store_mip_1darray_v4f16_i32:
634 *
this,
expr,
"amdgcn.image.store.mip.1darray",
true);
635 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_f32_i32:
636 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_v4f32_i32:
637 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2d_v4f16_i32:
639 *
this,
expr,
"amdgcn.image.store.mip.2d",
true);
640 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_f32_i32:
641 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_v4f32_i32:
642 case AMDGPU::BI__builtin_amdgcn_image_store_mip_2darray_v4f16_i32:
644 *
this,
expr,
"amdgcn.image.store.mip.2darray",
true);
645 case AMDGPU::BI__builtin_amdgcn_image_store_mip_3d_v4f32_i32:
646 case AMDGPU::BI__builtin_amdgcn_image_store_mip_3d_v4f16_i32:
648 *
this,
expr,
"amdgcn.image.store.mip.3d",
true);
649 case AMDGPU::BI__builtin_amdgcn_image_store_mip_cube_v4f32_i32:
650 case AMDGPU::BI__builtin_amdgcn_image_store_mip_cube_v4f16_i32:
652 *
this,
expr,
"amdgcn.image.store.mip.cube",
true);
653 case AMDGPU::BI__builtin_amdgcn_image_sample_1d_v4f32_f32:
654 case AMDGPU::BI__builtin_amdgcn_image_sample_1d_v4f16_f32:
656 "amdgcn.image.sample.1d",
false);
657 case AMDGPU::BI__builtin_amdgcn_image_sample_1darray_v4f32_f32:
658 case AMDGPU::BI__builtin_amdgcn_image_sample_1darray_v4f16_f32:
660 *
this,
expr,
"amdgcn.image.sample.1darray",
false);
661 case AMDGPU::BI__builtin_amdgcn_image_sample_2d_f32_f32:
662 case AMDGPU::BI__builtin_amdgcn_image_sample_2d_v4f32_f32:
663 case AMDGPU::BI__builtin_amdgcn_image_sample_2d_v4f16_f32:
665 "amdgcn.image.sample.2d",
false);
666 case AMDGPU::BI__builtin_amdgcn_image_sample_2darray_f32_f32:
667 case AMDGPU::BI__builtin_amdgcn_image_sample_2darray_v4f32_f32:
668 case AMDGPU::BI__builtin_amdgcn_image_sample_2darray_v4f16_f32:
670 *
this,
expr,
"amdgcn.image.sample.2darray",
false);
671 case AMDGPU::BI__builtin_amdgcn_image_sample_3d_v4f32_f32:
672 case AMDGPU::BI__builtin_amdgcn_image_sample_3d_v4f16_f32:
674 "amdgcn.image.sample.3d",
false);
675 case AMDGPU::BI__builtin_amdgcn_image_sample_cube_v4f32_f32:
676 case AMDGPU::BI__builtin_amdgcn_image_sample_cube_v4f16_f32:
678 *
this,
expr,
"amdgcn.image.sample.cube",
false);
679 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1d_v4f32_f32:
680 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1d_v4f16_f32:
682 *
this,
expr,
"amdgcn.image.sample.lz.1d",
false);
683 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1d_v4f32_f32:
684 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1d_v4f16_f32:
686 *
this,
expr,
"amdgcn.image.sample.l.1d",
false);
687 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1d_v4f32_f32:
688 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1d_v4f16_f32:
690 *
this,
expr,
"amdgcn.image.sample.d.1d",
false);
691 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_v4f32_f32:
692 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_v4f16_f32:
693 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2d_f32_f32:
695 *
this,
expr,
"amdgcn.image.sample.lz.2d",
false);
696 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_v4f32_f32:
697 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_v4f16_f32:
698 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2d_f32_f32:
700 *
this,
expr,
"amdgcn.image.sample.l.2d",
false);
701 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_v4f32_f32:
702 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_v4f16_f32:
703 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2d_f32_f32:
705 *
this,
expr,
"amdgcn.image.sample.d.2d",
false);
706 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_3d_v4f32_f32:
707 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_3d_v4f16_f32:
709 *
this,
expr,
"amdgcn.image.sample.lz.3d",
false);
710 case AMDGPU::BI__builtin_amdgcn_image_sample_l_3d_v4f32_f32:
711 case AMDGPU::BI__builtin_amdgcn_image_sample_l_3d_v4f16_f32:
713 *
this,
expr,
"amdgcn.image.sample.l.3d",
false);
714 case AMDGPU::BI__builtin_amdgcn_image_sample_d_3d_v4f32_f32:
715 case AMDGPU::BI__builtin_amdgcn_image_sample_d_3d_v4f16_f32:
717 *
this,
expr,
"amdgcn.image.sample.d.3d",
false);
718 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_cube_v4f32_f32:
719 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_cube_v4f16_f32:
721 *
this,
expr,
"amdgcn.image.sample.lz.cube",
false);
722 case AMDGPU::BI__builtin_amdgcn_image_sample_l_cube_v4f32_f32:
723 case AMDGPU::BI__builtin_amdgcn_image_sample_l_cube_v4f16_f32:
725 *
this,
expr,
"amdgcn.image.sample.l.cube",
false);
726 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1darray_v4f32_f32:
727 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_1darray_v4f16_f32:
729 *
this,
expr,
"amdgcn.image.sample.lz.1darray",
false);
730 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1darray_v4f32_f32:
731 case AMDGPU::BI__builtin_amdgcn_image_sample_l_1darray_v4f16_f32:
733 *
this,
expr,
"amdgcn.image.sample.l.1darray",
false);
734 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1darray_v4f32_f32:
735 case AMDGPU::BI__builtin_amdgcn_image_sample_d_1darray_v4f16_f32:
737 *
this,
expr,
"amdgcn.image.sample.d.1darray",
false);
738 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_v4f32_f32:
739 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_v4f16_f32:
740 case AMDGPU::BI__builtin_amdgcn_image_sample_lz_2darray_f32_f32:
742 *
this,
expr,
"amdgcn.image.sample.lz.2darray",
false);
743 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_v4f32_f32:
744 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_v4f16_f32:
745 case AMDGPU::BI__builtin_amdgcn_image_sample_l_2darray_f32_f32:
747 *
this,
expr,
"amdgcn.image.sample.l.2darray",
false);
748 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_v4f32_f32:
749 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_v4f16_f32:
750 case AMDGPU::BI__builtin_amdgcn_image_sample_d_2darray_f32_f32:
752 *
this,
expr,
"amdgcn.image.sample.d.2darray",
false);
753 case AMDGPU::BI__builtin_amdgcn_image_gather4_lz_2d_v4f32_f32:
755 *
this,
expr,
"amdgcn.image.gather4.lz.2d",
false);
756 case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4:
757 case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4: {
758 cgm.errorNYI(
expr->getSourceRange(),
759 std::string(
"unimplemented AMDGPU builtin call: ") +
761 return mlir::Value{};
763 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w32:
764 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_tied_w32:
765 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w64:
766 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_tied_w64:
767 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w32:
768 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_tied_w32:
769 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w64:
770 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_tied_w64:
771 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w32:
772 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w64:
773 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w32:
774 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w64:
775 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w32:
776 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w64:
777 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w32:
778 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w64:
779 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w32_gfx12:
780 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w64_gfx12:
781 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w32_gfx12:
782 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x16_f16_w64_gfx12:
783 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w32_gfx12:
784 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf16_w64_gfx12:
785 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w32_gfx12:
786 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_f16_w64_gfx12:
787 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w32_gfx12:
788 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu4_w64_gfx12:
789 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w32_gfx12:
790 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x16_iu8_w64_gfx12:
791 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_fp8_w32_gfx12:
792 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_fp8_w64_gfx12:
793 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_bf8_w32_gfx12:
794 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_fp8_bf8_w64_gfx12:
795 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_fp8_w32_gfx12:
796 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_fp8_w64_gfx12:
797 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_bf8_w32_gfx12:
798 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x16_bf8_bf8_w64_gfx12:
799 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x32_iu4_w32_gfx12:
800 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x32_iu4_w64_gfx12: {
801 cgm.errorNYI(
expr->getSourceRange(),
802 std::string(
"unimplemented AMDGPU builtin call: ") +
804 return mlir::Value{};
806 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_f16_w32:
807 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_f16_w64:
808 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf16_w32:
809 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf16_w64:
810 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x32_f16_w32:
811 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x32_f16_w64:
812 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16_16x16x32_bf16_w32:
813 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16_16x16x32_bf16_w64:
814 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu8_w32:
815 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu8_w64:
816 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu4_w32:
817 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x32_iu4_w64:
818 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x64_iu4_w32:
819 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x64_iu4_w64:
820 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_fp8_w32:
821 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_fp8_w64:
822 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_bf8_w32:
823 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_fp8_bf8_w64:
824 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_fp8_w32:
825 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_fp8_w64:
826 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_bf8_w32:
827 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x32_bf8_bf8_w64: {
828 cgm.errorNYI(
expr->getSourceRange(),
829 std::string(
"unimplemented AMDGPU builtin call: ") +
831 return mlir::Value{};
833 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x4_f32:
834 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x32_bf16:
835 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x32_f16:
836 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x32_f16:
837 case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x32_bf16:
838 case AMDGPU::BI__builtin_amdgcn_wmma_bf16f32_16x16x32_bf16:
839 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_fp8_fp8:
840 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_fp8_bf8:
841 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_bf8_fp8:
842 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x64_bf8_bf8:
843 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_fp8_fp8:
844 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_fp8_bf8:
845 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_bf8_fp8:
846 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x64_bf8_bf8:
847 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_fp8_fp8:
848 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_fp8_bf8:
849 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_bf8_fp8:
850 case AMDGPU::BI__builtin_amdgcn_wmma_f16_16x16x128_bf8_bf8:
851 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_fp8_fp8:
852 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_fp8_bf8:
853 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_bf8_fp8:
854 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_bf8_bf8:
855 case AMDGPU::BI__builtin_amdgcn_wmma_i32_16x16x64_iu8:
856 case AMDGPU::BI__builtin_amdgcn_wmma_f32_16x16x128_f8f6f4:
857 case AMDGPU::BI__builtin_amdgcn_wmma_f32_32x16x128_f4:
858 case AMDGPU::BI__builtin_amdgcn_wmma_scale_f32_16x16x128_f8f6f4:
859 case AMDGPU::BI__builtin_amdgcn_wmma_scale16_f32_16x16x128_f8f6f4:
860 case AMDGPU::BI__builtin_amdgcn_wmma_scale_f32_32x16x128_f4:
861 case AMDGPU::BI__builtin_amdgcn_wmma_scale16_f32_32x16x128_f4: {
862 cgm.errorNYI(
expr->getSourceRange(),
863 std::string(
"unimplemented AMDGPU builtin call: ") +
865 return mlir::Value{};
867 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x64_f16:
868 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x64_bf16:
869 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x64_f16:
870 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16_16x16x64_bf16:
871 case AMDGPU::BI__builtin_amdgcn_swmmac_bf16f32_16x16x64_bf16:
872 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_fp8_fp8:
873 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_fp8_bf8:
874 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_bf8_fp8:
875 case AMDGPU::BI__builtin_amdgcn_swmmac_f32_16x16x128_bf8_bf8:
876 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_fp8_fp8:
877 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_fp8_bf8:
878 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_bf8_fp8:
879 case AMDGPU::BI__builtin_amdgcn_swmmac_f16_16x16x128_bf8_bf8:
880 case AMDGPU::BI__builtin_amdgcn_swmmac_i32_16x16x128_iu8: {
881 cgm.errorNYI(
expr->getSourceRange(),
882 std::string(
"unimplemented AMDGPU builtin call: ") +
884 return mlir::Value{};
887 case AMDGPU::BI__builtin_amdgcn_workgroup_size_x:
888 case AMDGPU::BI__builtin_amdgcn_workgroup_size_y:
889 case AMDGPU::BI__builtin_amdgcn_workgroup_size_z: {
890 cgm.errorNYI(
expr->getSourceRange(),
891 std::string(
"unimplemented AMDGPU builtin call: ") +
893 return mlir::Value{};
895 case AMDGPU::BI__builtin_amdgcn_grid_size_x:
896 case AMDGPU::BI__builtin_amdgcn_grid_size_y:
897 case AMDGPU::BI__builtin_amdgcn_grid_size_z: {
898 cgm.errorNYI(
expr->getSourceRange(),
899 std::string(
"unimplemented AMDGPU builtin call: ") +
901 return mlir::Value{};
903 case AMDGPU::BI__builtin_r600_recipsqrt_ieee:
904 case AMDGPU::BI__builtin_r600_recipsqrt_ieeef: {
905 cgm.errorNYI(
expr->getSourceRange(),
906 std::string(
"unimplemented AMDGPU builtin call: ") +
908 return mlir::Value{};
910 case AMDGPU::BI__builtin_amdgcn_alignbit: {
911 cgm.errorNYI(
expr->getSourceRange(),
912 std::string(
"unimplemented AMDGPU builtin call: ") +
914 return mlir::Value{};
916 case AMDGPU::BI__builtin_amdgcn_fence: {
917 cgm.errorNYI(
expr->getSourceRange(),
918 std::string(
"unimplemented AMDGPU builtin call: ") +
920 return mlir::Value{};
922 case AMDGPU::BI__builtin_amdgcn_atomic_inc32:
923 case AMDGPU::BI__builtin_amdgcn_atomic_inc64:
924 case AMDGPU::BI__builtin_amdgcn_atomic_dec32:
925 case AMDGPU::BI__builtin_amdgcn_atomic_dec64:
926 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_f64:
927 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_f32:
928 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_v2f16:
929 case AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_v2bf16:
930 case AMDGPU::BI__builtin_amdgcn_ds_faddf:
931 case AMDGPU::BI__builtin_amdgcn_ds_fminf:
932 case AMDGPU::BI__builtin_amdgcn_ds_fmaxf:
933 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_f32:
934 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_f64:
935 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2f16:
936 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2f16:
937 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f32:
938 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f64:
939 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2bf16:
940 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2bf16:
941 case AMDGPU::BI__builtin_amdgcn_global_atomic_fmin_f64:
942 case AMDGPU::BI__builtin_amdgcn_global_atomic_fmax_f64:
943 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fmin_f64:
944 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fmax_f64: {
945 cgm.errorNYI(
expr->getSourceRange(),
946 std::string(
"unimplemented AMDGPU builtin call: ") +
948 return mlir::Value{};
950 case AMDGPU::BI__builtin_amdgcn_s_sendmsg_rtn:
951 case AMDGPU::BI__builtin_amdgcn_s_sendmsg_rtnl: {
952 cgm.errorNYI(
expr->getSourceRange(),
953 std::string(
"unimplemented AMDGPU builtin call: ") +
955 return mlir::Value{};
957 case AMDGPU::BI__builtin_amdgcn_permlane16_swap:
958 case AMDGPU::BI__builtin_amdgcn_permlane32_swap: {
959 cgm.errorNYI(
expr->getSourceRange(),
960 std::string(
"unimplemented AMDGPU builtin call: ") +
962 return mlir::Value{};
964 case AMDGPU::BI__builtin_amdgcn_bitop3_b32:
965 case AMDGPU::BI__builtin_amdgcn_bitop3_b16: {
966 cgm.errorNYI(
expr->getSourceRange(),
967 std::string(
"unimplemented AMDGPU builtin call: ") +
969 return mlir::Value{};
971 case AMDGPU::BI__builtin_amdgcn_make_buffer_rsrc: {
972 cgm.errorNYI(
expr->getSourceRange(),
973 std::string(
"unimplemented AMDGPU builtin call: ") +
975 return mlir::Value{};
977 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b8:
978 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b16:
979 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b32:
980 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b64:
981 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b96:
982 case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b128: {
983 cgm.errorNYI(
expr->getSourceRange(),
984 std::string(
"unimplemented AMDGPU builtin call: ") +
986 return mlir::Value{};
988 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b8:
989 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b16:
990 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b32:
991 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b64:
992 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b96:
993 case AMDGPU::BI__builtin_amdgcn_raw_buffer_load_b128: {
994 cgm.errorNYI(
expr->getSourceRange(),
995 std::string(
"unimplemented AMDGPU builtin call: ") +
997 return mlir::Value{};
999 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_add_i32: {
1000 cgm.errorNYI(
expr->getSourceRange(),
1001 std::string(
"unimplemented AMDGPU builtin call: ") +
1002 getContext().BuiltinInfo.getName(builtinId));
1003 return mlir::Value{};
1005 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fadd_f32:
1006 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fadd_v2f16: {
1007 cgm.errorNYI(
expr->getSourceRange(),
1008 std::string(
"unimplemented AMDGPU builtin call: ") +
1009 getContext().BuiltinInfo.getName(builtinId));
1010 return mlir::Value{};
1012 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmin_f32:
1013 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmin_f64: {
1014 cgm.errorNYI(
expr->getSourceRange(),
1015 std::string(
"unimplemented AMDGPU builtin call: ") +
1016 getContext().BuiltinInfo.getName(builtinId));
1017 return mlir::Value{};
1019 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmax_f32:
1020 case AMDGPU::BI__builtin_amdgcn_raw_ptr_buffer_atomic_fmax_f64: {
1021 cgm.errorNYI(
expr->getSourceRange(),
1022 std::string(
"unimplemented AMDGPU builtin call: ") +
1023 getContext().BuiltinInfo.getName(builtinId));
1024 return mlir::Value{};
1026 case AMDGPU::BI__builtin_amdgcn_s_prefetch_data: {
1027 cgm.errorNYI(
expr->getSourceRange(),
1028 std::string(
"unimplemented AMDGPU builtin call: ") +
1029 getContext().BuiltinInfo.getName(builtinId));
1030 return mlir::Value{};
1032 case Builtin::BIlogbf:
1033 case Builtin::BI__builtin_logbf:
1035 case Builtin::BIlogb:
1036 case Builtin::BI__builtin_logb:
1038 case Builtin::BIscalbnf:
1039 case Builtin::BI__builtin_scalbnf:
1040 case Builtin::BIscalbn:
1041 case Builtin::BI__builtin_scalbn: {
1043 *
this,
expr,
"ldexp",
"experimental.constrained.ldexp");
1046 return std::nullopt;