Anshil Gandhi
bd6dd94584
[AMDGPU] Add legalization rules for atomicrmw max/min ops ( #180502 )
...
Adds rules for G_ATOMICRMW_{MAX, MIN, UMAX, UMIN, UINC_WRAP, UDEC_WRAP}.
Each of these generic opcode are supported for S32 and S64 types
on flat, global and local address spaces.
2026-02-10 16:04:05 +05:30
vangthao95
8d8864237b
AMDGPU/GlobalISel: Regbanklegalize rules for G_FSQRT ( #179817 )
...
Add S16 rules for G_FSQRT. S32 and S64 are expanded by the legalizer.
2026-02-09 18:24:28 -08:00
vangthao95
404f9e6c99
AMDGPU/GlobalISel: RegBankLegalize rules for amdgcn_sffbh ( #180099 )
...
Change test to use update_llc_test_checks.py and make `v_flbit` test
actually divergent.
2026-02-09 09:18:03 -08:00
vangthao95
0040bdf532
AMDGPU/GlobalISel: Regbanklegalize rules for buffer atomic swap ( #180265 )
2026-02-09 09:04:17 -08:00
Anshil Gandhi
ab2e10d80f
[AMDGPU] Add legalization rules for G_ATOMICRMW_FADD ( #175257 )
...
G_ATOMICRMW_FADD is supported on flat, global and local address spaces
for S32, S64 and V2S16 values.
2026-02-09 15:37:27 +00:00
vangthao95
e67bfe85d9
[AMDGPU][GlobalISel] Fix D16 buffer load RegBankLegalize rules ( #179982 )
...
Use fast StandardB rule and add uniform rules and uniform tests.
2026-02-06 08:01:30 -08:00
Abhinav Garg
8cc06421a5
Adding support for G_STRICT_FMA in new reg bank select ( #170330 )
...
This patch adds legalization rules for G_STRICT_FMA opcode.
---------
Co-authored-by: Abhinav Garg <abhigarg@amd.com>
2026-02-06 15:43:37 +05:30
Petar Avramovic
9d11a6670e
AMDGPU/GlobalISel: Regbanklegalize rules for G_FREEZE ( #179796 )
...
Move G_FREEZE handling to AMDGPURegBankLegalizeRules.cpp.
Added support for uniform S1.
2026-02-06 11:05:47 +01:00
vangthao95
1ef499b1fc
AMDGPU/GlobalISel: Fix buffer store RegBankLegalize rules ( #179994 )
...
Enable commented out D16 v3f16 tests.
2026-02-05 16:20:09 -08:00
vangthao95
376dc83d7a
[AMDGPU][GlobalISel] Add RegBankLegalize rules for TFE buffer loads ( #179529 )
2026-02-05 13:42:11 -08:00
anjenner
903a5ab93d
[AMDGPU] [GlobalISel] Add register bank legalize rules for G_FEXP2 ( #179954 )
...
Also G_INTRINSIC_TRUNC, G_INTRINSIC_ROUNDEVEN, G_FFLOOR, G_FCEIL, and
G_FLOG2.
2026-02-05 16:35:31 +00:00
vangthao95
e0c2cc7ed0
[AMDGPU][GlobalISel] Add buffer store byte/short RegBankLegalize rules ( #179367 )
2026-02-05 07:18:39 -08:00
vangthao95
273ee97738
[AMDGPU][GlobalISel] Add G_SADDE/SSUBE RegBankLegalize rule ( #179603 )
2026-02-04 09:41:27 -08:00
vangthao95
b0aea0539f
[AMDGPU][GlobalISel] Add buffer load format D16 RegBankLegalize rules ( #179566 )
2026-02-04 09:20:41 -08:00
Syadus Sefat
abdf66d60b
[AMDGPU][GlobalIsel] Add register bank legalization rules for fptoi and itofp ( #176300 )
...
This patch adds register bank legalization rules for fptoi and itofp
operations in the AMDGPU GlobalISel pipeline.
2026-02-03 11:45:49 -06:00
vangthao95
4177b325c2
[AMDGPU][GlobalISel] Add tbuffer store d16 RegBankLegalize rule ( #179411 )
2026-02-03 09:14:51 -08:00
serge-sans-paille
85919fbfa4
[perf] Replace copy-assign by move-assign in llvm/lib/Target/AMDGPU/ ( #179460 )
2026-02-03 14:24:31 +00:00
Petar Avramovic
2d1110a70f
AMDGPU/GlobalISel: Regbanklegalize rules for G_UNMERGE_VALUES ( #171653 )
...
Move G_UNMERGE_VALUES handling to AMDGPURegBankLegalizeRules.cpp.
Fix sgpr S16 unmerge by lowering using shift and using S32.
Previously sgpr S16 unmerge was selected using _lo16 and _hi16 subreg
indexes which are exclusive to vgpr register classes.
For remaing cases we do trivial mapping, assigns same reg bank
to all operands, vgpr or sgpr.
2026-02-02 17:55:42 +01:00
vangthao95
c686002052
[AMDGPU][GlobalISel] Add RegBankLegalize rules for amdgcn_s_sleep ( #178838 )
2026-01-30 09:00:14 -08:00
vangthao95
bf8f6d8011
[AMDGPU][GlobalISel] Add RegBankLegalize rules for fma_legacy ( #178759 )
2026-01-30 08:52:48 -08:00
vangthao95
8fa695afed
[AMDGPU][GlobalISel] Add RegBankLegalize rules for amdgcn_prng_b32 ( #178741 )
2026-01-30 08:39:27 -08:00
vangthao95
1ccb4a21ae
[AMDGPU][GlobalISel] Add RegBankLegalize rules for amdgcn_wwm/strict_wwm ( #178615 )
2026-01-30 08:26:59 -08:00
vangthao95
c31e13a712
[AMDGPU][GlobalISel] Add RegBankLegalize rules for groupstaticsize ( #178618 )
2026-01-29 11:00:44 -08:00
vangthao95
312d798f12
[AMDGPU][GlobalISel] Add RegBankLegalize rules for global_load_tr_b* ( #178545 )
2026-01-29 10:49:26 -08:00
vangthao95
cba7dcd107
[AMDGPU][GlobalISel] Add RegBankLegalize rules for buffer store variants ( #178488 )
...
Add rules for G_AMDGPU_BUFFER_STORE, G_AMDGPU_BUFFER_STORE_FORMAT,
G_AMDGPU_BUFFER_STORE_FORMAT_D16, and G_AMDGPU_TBUFFER_STORE_FORMAT.
2026-01-29 10:39:35 -08:00
vangthao95
e80de08aa6
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_ATOMIC_CMPXCHG ( #178066 )
...
From the legalizer, G_ATOMIC_CMPXCHG is legal with local and region pointers.
Global and flat pointers are converted into G_AMDGPU_ATOMIC_CMPXCHG. Implement
rules for both variants.
2026-01-27 09:02:33 -08:00
vangthao95
c327d46d79
[AMDGPU][GlobalISel] Add frexp_mant/fract intrinsic RegBankLegalize r… ( #177512 )
...
…ules
2026-01-26 10:23:40 -08:00
vangthao95
b94c5e097b
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_STRICT_FLDEXP ( #177525 )
2026-01-23 10:49:14 -08:00
vangthao95
09685b79ed
[AMDGPU][GlobalISel] Add RegBankLegalize rules for fmin/fmax_legacy ( #177520 )
2026-01-23 10:11:24 -08:00
vangthao95
707ae1df5c
Reland "[AMDGPU][GlobalISel] Add RegBankLegalize support for G_MUL (#… ( #177481 )
...
…177314)"
Original reverted due to v2s16 test failure caused by upstream gfx6/7
16-bit vector behavior change that landed shortly before.
Rebased and regenerated mul.ll test.
Original PR: #177314
2026-01-22 14:59:52 -08:00
vangthao95
26eb738250
Revert "[AMDGPU][GlobalISel] Add RegBankLegalize support for G_MUL" ( #177405 )
...
Reverts llvm/llvm-project#177314
mul.ll test is failing expensive checks.
2026-01-22 12:27:09 -05:00
vangthao95
8b59338e9b
[AMDGPU][GlobalISel] Add ubfe and sbfe intrinsic RegBankLegalize rules ( #177276 )
2026-01-22 09:01:52 -08:00
vangthao95
39642a4b22
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_MUL ( #177314 )
...
Add missing S16, S64, and V2S16 support for G_MUL.
2026-01-22 09:00:34 -08:00
vangthao95
bf9b8dea31
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_AMDGPU_S_MUL_* ( #176842 )
2026-01-21 08:58:35 -08:00
vangthao95
a304968d5e
[AMDGPU][GlobalISel] Add RegBankLegalize rules for SMED3 and CVT_PK_I16_I32 ( #176596 )
...
These opcodes are created together for the i64->i16 signed clamp
pattern.
2026-01-21 08:57:53 -08:00
vangthao95
cc4e7e7c92
[AMDGPU][GlobalISel] Add RegBankLegalize support for S64 amdgcn_if_break ( #176496 )
2026-01-19 11:25:01 -08:00
vangthao95
014a6cdbb3
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_AMDGPU_MAD_U64_U32 ( #176060 )
...
Also add partial G_MUL support in the form of uniform S32 rule for G_MUL
since lowering G_AMDGPU_MAD_U64_U32 requires both uniform and divergent
S32 G_MUL.
2026-01-19 11:21:45 -08:00
Anshil Gandhi
02f9a26817
[AMDGPU] Add legalization rules for atomic ops ( #175253 )
...
Implement rules for G_ATOMICRMW_{ADD, SUB, XCHG, AND, OR, XOR}.
2026-01-16 23:01:24 -05:00
vangthao95
5b4ed87289
[AMDGPU][GlobalISel] Add RegBankLegalize rules for [us]addsat/[us]subsat ( #176255 )
2026-01-16 08:01:19 -08:00
vangthao95
c52a878269
[AMDGPU][GlobalISel] Fix G_TRUNC S16 to VCC for pre-GFX8 targets ( #176254 )
2026-01-16 08:00:42 -08:00
Anshil Gandhi
f41767651b
[AMDGPU] Add regbankselect rules for G_ICMP/G_FCMP ( #172048 )
...
- Legalize G_ICMP for S16, S32, S64, Ptr32 and Ptr64 operands.
- Legalize G_FCMP for S16, S32 and S64 operands.
2026-01-14 12:37:16 -05:00
Abhinav Garg
7af6abd6a4
[AMDGPU][GlobalISel] Add RegBankLegalize support for amd_gcn_end_cf ( #175118 )
2026-01-13 18:18:39 +05:30
vangthao95
b3d25f59d5
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_FLDEXP ( #175072 )
2026-01-09 08:52:35 -08:00
vangthao95
7df0826c41
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_PTRMASK ( #174889 )
...
Add support for G_PTRMASK but we are missing p8 (buffer resource) due to
a legalizer issue in GlobalISel which does not occur on SelectionDAG:
`LLVM ERROR: unable to legalize instruction: %17:_(p8) = G_PTRMASK %0:_,
%22:_(s128) (in function: v_ptrmask_buffer_resource_variable_i48)`
Added a FIXME to indicate this issue.
2026-01-09 08:51:51 -08:00
vangthao95
121a9c414f
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_FCANONICALIZE ( #174662 )
...
Added -global-isel flags to fcanonicalize.ll test.
2026-01-09 08:51:16 -08:00
vangthao95
f7b20ec57f
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_UMULH, G_SMULH ( #174555 )
2026-01-08 13:57:57 -08:00
Chinmay Deshpande
0b9c449edf
[AMDGPU][GISel] Add RegBankLegalize support for G_STRICT_FSUB ( #173929 )
2025-12-30 09:20:51 -08:00
vangthao95
f0597e1f9d
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_AMDGPU_FMED3 ( #173085 )
2025-12-23 17:31:11 -08:00
vangthao95
dab4ad77d5
[AMDGPU][GlobalISel] Add RegBankLegalize mul24 and fmul.legacy ( #173123 )
...
Add RegBankLegalize rules for mul24 and fmul.legacy intrinsics
2025-12-23 12:35:28 -08:00
vangthao95
c471badd81
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_FMAD, G_FMA ( #172941 )
2025-12-22 09:05:31 -08:00