llvm/llvm-project

[AMDGPU][GlobalISel] Missing opcodes/intrinsics rules in AMDGPURegBankLegalize

Open

Aperta il 16 apr 2026

Vedi su GitHub
 (24 commenti) (0 reazioni) (2 assegnatari)C++ (26.378 star) (10.782 fork)batch import
backend:AMDGPUgood first issuellvm:globalisel

Descrizione

Missing opcode/intrinsic rules in AMDGPURegBankLegalizeRules.cpp for uniform/divergent register-bank legalization.

Note: This list may not be complete or up to date. Some items may have pull requests in review or have already landed.

Opcodes

  • G_AMDGPU_FLAT_LOAD_MONITOR
  • G_AMDGPU_GLOBAL_LOAD_MONITOR
  • G_AMDGPU_SPONENTRY (in progress)
  • G_ATOMICRMW_USUB_COND (in progress)
  • G_ATOMICRMW_USUB_SAT (in progress)
  • G_BITCAST
  • G_FCONSTANT
  • G_FMAXIMUMNUM
  • G_FMINIMUMNUM
  • G_FPTOSI_SAT (in progress, @asadium)
  • G_FPTOUI_SAT (in progress, @asadium)
  • G_INTRINSIC_FPTRUNC_ROUND (in progress)

Intrinsics

  • amdgcn_cluster_load_async_to_lds_b128
  • amdgcn_cluster_load_async_to_lds_b32
  • amdgcn_cluster_load_async_to_lds_b64
  • amdgcn_cluster_load_async_to_lds_b8
  • amdgcn_cluster_load_b128
  • amdgcn_cluster_load_b32
  • amdgcn_cluster_load_b64
  • amdgcn_cvt_f16_bf8 (in progress, @slant14)
  • amdgcn_cvt_f16_fp8 (in progress, @slant14)
  • amdgcn_cvt_f32_bf8
  • amdgcn_cvt_f32_fp8
  • amdgcn_cvt_f32_fp8_e5m3
  • amdgcn_cvt_off_f32_i4
  • amdgcn_cvt_pk_bf8_f16
  • amdgcn_cvt_pk_bf8_f32
  • amdgcn_cvt_pk_f16_bf8
  • amdgcn_cvt_pk_f16_fp8
  • amdgcn_cvt_pk_f32_bf8
  • amdgcn_cvt_pk_f32_fp8
  • amdgcn_cvt_pk_fp8_f16
  • amdgcn_cvt_pk_fp8_f32
  • amdgcn_cvt_pk_fp8_f32_e5m3
  • amdgcn_cvt_scalef32_2xpk16_bf6_f32
  • amdgcn_cvt_scalef32_2xpk16_fp6_f32
  • amdgcn_cvt_scalef32_f16_bf8
  • amdgcn_cvt_scalef32_f16_fp8
  • amdgcn_cvt_scalef32_f32_bf8
  • amdgcn_cvt_scalef32_f32_fp8
  • amdgcn_cvt_scalef32_pk32_bf6_f16
  • amdgcn_cvt_scalef32_pk32_f16_bf6
  • amdgcn_cvt_scalef32_pk32_f16_fp6
  • amdgcn_cvt_scalef32_pk32_f32_bf6
  • amdgcn_cvt_scalef32_pk32_f32_fp6
  • amdgcn_cvt_scalef32_pk32_fp6_f16
  • amdgcn_cvt_scalef32_pk_bf8_f16
  • amdgcn_cvt_scalef32_pk_bf8_f32
  • amdgcn_cvt_scalef32_pk_f16_bf8
  • amdgcn_cvt_scalef32_pk_f16_fp4
  • amdgcn_cvt_scalef32_pk_f16_fp8
  • amdgcn_cvt_scalef32_pk_f32_bf8
  • amdgcn_cvt_scalef32_pk_f32_fp4
  • amdgcn_cvt_scalef32_pk_f32_fp8
  • amdgcn_cvt_scalef32_pk_fp4_f16
  • amdgcn_cvt_scalef32_pk_fp4_f32
  • amdgcn_cvt_scalef32_pk_fp8_f16
  • amdgcn_cvt_scalef32_pk_fp8_f32
  • amdgcn_cvt_scalef32_sr_bf8_f16 (in progress)
  • amdgcn_cvt_scalef32_sr_bf8_f32 (in progress)
  • amdgcn_cvt_scalef32_sr_fp8_f16 (in progress)
  • amdgcn_cvt_scalef32_sr_fp8_f32 (in progress)
  • amdgcn_cvt_scalef32_sr_pk32_bf6_bf16
  • amdgcn_cvt_scalef32_sr_pk32_bf6_f16
  • amdgcn_cvt_scalef32_sr_pk32_bf6_f32
  • amdgcn_cvt_scalef32_sr_pk32_fp6_f16
  • amdgcn_cvt_scalef32_sr_pk32_fp6_f32
  • amdgcn_cvt_scalef32_sr_pk_fp4_f16 (in progress)
  • amdgcn_cvt_scalef32_sr_pk_fp4_f32 (in progress)
  • amdgcn_cvt_sr_bf8_f16
  • amdgcn_cvt_sr_bf8_f32
  • amdgcn_cvt_sr_f16_f32
  • amdgcn_cvt_sr_fp8_f16
  • amdgcn_cvt_sr_fp8_f32
  • amdgcn_cvt_sr_fp8_f32_e5m3
  • amdgcn_cvt_sr_pk_f16_f32
  • amdgcn_ds_atomic_async_barrier_arrive_b64
  • amdgcn_ds_atomic_barrier_arrive_rtn_b64
  • amdgcn_flat_prefetch
  • amdgcn_frexp_exp (in progress)
  • amdgcn_global_load_tr4_b64
  • amdgcn_global_load_tr6_b96
  • amdgcn_global_prefetch
  • amdgcn_global_store_async_from_lds_b128
  • amdgcn_global_store_async_from_lds_b32
  • amdgcn_global_store_async_from_lds_b64
  • amdgcn_global_store_async_from_lds_b8
  • amdgcn_load_to_lds (in progress)
  • amdgcn_log
  • amdgcn_permlane_bcast
  • amdgcn_permlane_down
  • amdgcn_permlane_idx_gen
  • amdgcn_permlane_up
  • amdgcn_permlane_xor
  • amdgcn_raw_buffer_load_async_lds (in progress)
  • amdgcn_raw_ptr_buffer_load_async_lds (in progress)
  • amdgcn_rcp
  • amdgcn_rsq
  • amdgcn_rsq_clamp
  • amdgcn_s_alloc_vgpr
  • amdgcn_sat_pk4_i4_i8
  • amdgcn_sat_pk4_u4_u8
  • amdgcn_s_bitreplicate (in progress)
  • amdgcn_set_inactive (in progress)
  • amdgcn_set_inactive_chain_arg (in progress)
  • amdgcn_sqrt
  • amdgcn_struct_buffer_load_async_lds (in progress)
  • amdgcn_struct_ptr_buffer_load_async_lds (in progress)
  • amdgcn_unreachable
  • amdgcn_wave_shuffle (in progress)

Guida contributor