-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[AMDGPU][True16][CodeGen] update GFX11Plus codegen test with true16 flag #135078
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[AMDGPU][True16][CodeGen] update GFX11Plus codegen test with true16 flag #135078
Conversation
0993207
to
f9c7aaa
Compare
@llvm/pr-subscribers-backend-amdgpu Author: Brox Chen (broxigarchen) ChangesThis is a NFC patch. This patch run a bulk update on CodeGen tests that are impacted by the true16 features. This patch applies:
For some GISEL runlines, the current CodeGen do not fully support the true16 version. Still update the runlines, but comment out the failing one, and added a "FIXME-TRUE16" comment to that test for easier tracking. These test will be fixed in the following patches. Patch is 14.08 MiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/135078.diff 143 Files Affected:
diff --git a/llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll b/llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
index 56edb29281944..2d19f9702e6ba 100644
--- a/llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+++ b/llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
@@ -3,7 +3,8 @@
; RUN: llc -mtriple=amdgcn < %s | FileCheck -check-prefix=GCN %s
; RUN: llc -mtriple=amdgcn -mcpu=tonga < %s | FileCheck -check-prefixes=VI %s
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck -check-prefixes=GFX9 %s
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 < %s | FileCheck -check-prefixes=GFX11 %s
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-TRUE16 %s
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-FAKE16 %s
define <32 x float> @bitcast_v32i32_to_v32f32(<32 x i32> %a, i32 %b) {
; GCN-LABEL: bitcast_v32i32_to_v32f32:
@@ -4447,693 +4448,1258 @@ define <128 x i8> @bitcast_v32i32_to_v128i8(<32 x i32> %a, i32 %b) {
; GFX9-NEXT: s_waitcnt vmcnt(0)
; GFX9-NEXT: s_setpc_b64 s[30:31]
;
-; GFX11-LABEL: bitcast_v32i32_to_v128i8:
-; GFX11: ; %bb.0:
-; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
-; GFX11-NEXT: s_clause 0x13
-; GFX11-NEXT: scratch_store_b32 off, v40, s32 offset:88
-; GFX11-NEXT: scratch_store_b32 off, v41, s32 offset:84
-; GFX11-NEXT: scratch_store_b32 off, v42, s32 offset:80
-; GFX11-NEXT: scratch_store_b32 off, v43, s32 offset:76
-; GFX11-NEXT: scratch_store_b32 off, v44, s32 offset:72
-; GFX11-NEXT: scratch_store_b32 off, v45, s32 offset:68
-; GFX11-NEXT: scratch_store_b32 off, v46, s32 offset:64
-; GFX11-NEXT: scratch_store_b32 off, v47, s32 offset:60
-; GFX11-NEXT: scratch_store_b32 off, v56, s32 offset:56
-; GFX11-NEXT: scratch_store_b32 off, v57, s32 offset:52
-; GFX11-NEXT: scratch_store_b32 off, v58, s32 offset:48
-; GFX11-NEXT: scratch_store_b32 off, v59, s32 offset:44
-; GFX11-NEXT: scratch_store_b32 off, v60, s32 offset:40
-; GFX11-NEXT: scratch_store_b32 off, v61, s32 offset:36
-; GFX11-NEXT: scratch_store_b32 off, v62, s32 offset:32
-; GFX11-NEXT: scratch_store_b32 off, v63, s32 offset:28
-; GFX11-NEXT: scratch_store_b32 off, v72, s32 offset:24
-; GFX11-NEXT: scratch_store_b32 off, v73, s32 offset:20
-; GFX11-NEXT: scratch_store_b32 off, v74, s32 offset:16
-; GFX11-NEXT: scratch_store_b32 off, v75, s32 offset:12
-; GFX11-NEXT: s_clause 0x2
-; GFX11-NEXT: scratch_load_b32 v33, off, s32 offset:8
-; GFX11-NEXT: scratch_load_b32 v32, off, s32 offset:4
-; GFX11-NEXT: scratch_load_b32 v31, off, s32
-; GFX11-NEXT: ; implicit-def: $vgpr75
-; GFX11-NEXT: ; implicit-def: $vgpr74
-; GFX11-NEXT: ; implicit-def: $vgpr66
-; GFX11-NEXT: ; implicit-def: $vgpr73
-; GFX11-NEXT: ; implicit-def: $vgpr72
-; GFX11-NEXT: ; implicit-def: $vgpr63
-; GFX11-NEXT: ; implicit-def: $vgpr62
-; GFX11-NEXT: ; implicit-def: $vgpr61
-; GFX11-NEXT: ; implicit-def: $vgpr65
-; GFX11-NEXT: ; implicit-def: $vgpr60
-; GFX11-NEXT: ; implicit-def: $vgpr59
-; GFX11-NEXT: ; implicit-def: $vgpr58
-; GFX11-NEXT: ; implicit-def: $vgpr57
-; GFX11-NEXT: ; implicit-def: $vgpr56
-; GFX11-NEXT: ; implicit-def: $vgpr64
-; GFX11-NEXT: ; implicit-def: $vgpr47
-; GFX11-NEXT: ; implicit-def: $vgpr46
-; GFX11-NEXT: ; implicit-def: $vgpr45
-; GFX11-NEXT: ; implicit-def: $vgpr44
-; GFX11-NEXT: ; implicit-def: $vgpr43
-; GFX11-NEXT: ; implicit-def: $vgpr54
-; GFX11-NEXT: ; implicit-def: $vgpr42
-; GFX11-NEXT: ; implicit-def: $vgpr41
-; GFX11-NEXT: ; implicit-def: $vgpr40
-; GFX11-NEXT: ; implicit-def: $vgpr183
-; GFX11-NEXT: ; implicit-def: $vgpr182
-; GFX11-NEXT: ; implicit-def: $vgpr53
-; GFX11-NEXT: ; implicit-def: $vgpr181
-; GFX11-NEXT: ; implicit-def: $vgpr180
-; GFX11-NEXT: ; implicit-def: $vgpr179
-; GFX11-NEXT: ; implicit-def: $vgpr178
-; GFX11-NEXT: ; implicit-def: $vgpr177
-; GFX11-NEXT: ; implicit-def: $vgpr52
-; GFX11-NEXT: ; implicit-def: $vgpr176
-; GFX11-NEXT: ; implicit-def: $vgpr167
-; GFX11-NEXT: ; implicit-def: $vgpr166
-; GFX11-NEXT: ; implicit-def: $vgpr165
-; GFX11-NEXT: ; implicit-def: $vgpr164
-; GFX11-NEXT: ; implicit-def: $vgpr51
-; GFX11-NEXT: ; implicit-def: $vgpr163
-; GFX11-NEXT: ; implicit-def: $vgpr162
-; GFX11-NEXT: ; implicit-def: $vgpr161
-; GFX11-NEXT: ; implicit-def: $vgpr160
-; GFX11-NEXT: ; implicit-def: $vgpr151
-; GFX11-NEXT: ; implicit-def: $vgpr50
-; GFX11-NEXT: ; implicit-def: $vgpr150
-; GFX11-NEXT: ; implicit-def: $vgpr149
-; GFX11-NEXT: ; implicit-def: $vgpr148
-; GFX11-NEXT: ; implicit-def: $vgpr147
-; GFX11-NEXT: ; implicit-def: $vgpr146
-; GFX11-NEXT: ; implicit-def: $vgpr49
-; GFX11-NEXT: ; implicit-def: $vgpr145
-; GFX11-NEXT: ; implicit-def: $vgpr144
-; GFX11-NEXT: ; implicit-def: $vgpr135
-; GFX11-NEXT: ; implicit-def: $vgpr134
-; GFX11-NEXT: ; implicit-def: $vgpr133
-; GFX11-NEXT: ; implicit-def: $vgpr48
-; GFX11-NEXT: ; implicit-def: $vgpr132
-; GFX11-NEXT: ; implicit-def: $vgpr131
-; GFX11-NEXT: ; implicit-def: $vgpr130
-; GFX11-NEXT: ; implicit-def: $vgpr129
-; GFX11-NEXT: ; implicit-def: $vgpr128
-; GFX11-NEXT: ; implicit-def: $vgpr38
-; GFX11-NEXT: ; implicit-def: $vgpr119
-; GFX11-NEXT: ; implicit-def: $vgpr118
-; GFX11-NEXT: ; implicit-def: $vgpr117
-; GFX11-NEXT: ; implicit-def: $vgpr116
-; GFX11-NEXT: ; implicit-def: $vgpr115
-; GFX11-NEXT: ; implicit-def: $vgpr37
-; GFX11-NEXT: ; implicit-def: $vgpr114
-; GFX11-NEXT: ; implicit-def: $vgpr113
-; GFX11-NEXT: ; implicit-def: $vgpr112
-; GFX11-NEXT: ; implicit-def: $vgpr103
-; GFX11-NEXT: ; implicit-def: $vgpr102
-; GFX11-NEXT: ; implicit-def: $vgpr36
-; GFX11-NEXT: ; implicit-def: $vgpr101
-; GFX11-NEXT: ; implicit-def: $vgpr100
-; GFX11-NEXT: ; implicit-def: $vgpr99
-; GFX11-NEXT: ; implicit-def: $vgpr98
-; GFX11-NEXT: ; implicit-def: $vgpr97
-; GFX11-NEXT: ; implicit-def: $vgpr35
-; GFX11-NEXT: ; implicit-def: $vgpr96
-; GFX11-NEXT: ; implicit-def: $vgpr87
-; GFX11-NEXT: ; implicit-def: $vgpr86
-; GFX11-NEXT: ; implicit-def: $vgpr85
-; GFX11-NEXT: ; implicit-def: $vgpr84
-; GFX11-NEXT: ; implicit-def: $vgpr83
-; GFX11-NEXT: ; implicit-def: $vgpr82
-; GFX11-NEXT: ; implicit-def: $vgpr81
-; GFX11-NEXT: ; implicit-def: $vgpr80
-; GFX11-NEXT: ; implicit-def: $vgpr71
-; GFX11-NEXT: ; implicit-def: $vgpr70
-; GFX11-NEXT: ; implicit-def: $vgpr69
-; GFX11-NEXT: ; implicit-def: $vgpr68
-; GFX11-NEXT: ; implicit-def: $vgpr34
-; GFX11-NEXT: s_waitcnt vmcnt(2)
-; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 0, v33
-; GFX11-NEXT: ; implicit-def: $vgpr33
-; GFX11-NEXT: s_and_saveexec_b32 s0, vcc_lo
-; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1)
-; GFX11-NEXT: s_xor_b32 s0, exec_lo, s0
-; GFX11-NEXT: s_cbranch_execz .LBB6_2
-; GFX11-NEXT: ; %bb.1: ; %cmp.false
-; GFX11-NEXT: v_lshrrev_b64 v[48:49], 24, v[19:20]
-; GFX11-NEXT: s_waitcnt vmcnt(0)
-; GFX11-NEXT: v_lshrrev_b64 v[33:34], 24, v[31:32]
-; GFX11-NEXT: v_lshrrev_b64 v[49:50], 24, v[17:18]
-; GFX11-NEXT: v_lshrrev_b64 v[34:35], 24, v[29:30]
-; GFX11-NEXT: v_lshrrev_b64 v[50:51], 24, v[15:16]
-; GFX11-NEXT: v_lshrrev_b64 v[35:36], 24, v[27:28]
-; GFX11-NEXT: v_lshrrev_b64 v[51:52], 24, v[13:14]
-; GFX11-NEXT: v_lshrrev_b64 v[36:37], 24, v[25:26]
-; GFX11-NEXT: v_lshrrev_b64 v[52:53], 24, v[11:12]
-; GFX11-NEXT: v_lshrrev_b64 v[64:65], 24, v[5:6]
-; GFX11-NEXT: v_lshrrev_b64 v[37:38], 24, v[23:24]
-; GFX11-NEXT: v_lshrrev_b64 v[53:54], 24, v[9:10]
-; GFX11-NEXT: v_lshrrev_b64 v[65:66], 24, v[3:4]
-; GFX11-NEXT: v_lshrrev_b32_e32 v68, 24, v32
-; GFX11-NEXT: v_lshrrev_b32_e32 v69, 16, v32
-; GFX11-NEXT: v_lshrrev_b32_e32 v70, 8, v32
-; GFX11-NEXT: v_lshrrev_b32_e32 v71, 16, v31
-; GFX11-NEXT: v_lshrrev_b32_e32 v80, 8, v31
-; GFX11-NEXT: v_lshrrev_b32_e32 v81, 24, v30
-; GFX11-NEXT: v_lshrrev_b32_e32 v82, 16, v30
-; GFX11-NEXT: v_lshrrev_b32_e32 v83, 8, v30
-; GFX11-NEXT: v_lshrrev_b32_e32 v84, 16, v29
-; GFX11-NEXT: v_lshrrev_b32_e32 v85, 8, v29
-; GFX11-NEXT: v_lshrrev_b32_e32 v86, 24, v28
-; GFX11-NEXT: v_lshrrev_b32_e32 v87, 16, v28
-; GFX11-NEXT: v_lshrrev_b32_e32 v96, 8, v28
-; GFX11-NEXT: v_lshrrev_b32_e32 v97, 16, v27
-; GFX11-NEXT: v_lshrrev_b32_e32 v98, 8, v27
-; GFX11-NEXT: v_lshrrev_b32_e32 v99, 24, v26
-; GFX11-NEXT: v_lshrrev_b32_e32 v100, 16, v26
-; GFX11-NEXT: v_lshrrev_b32_e32 v101, 8, v26
-; GFX11-NEXT: v_lshrrev_b32_e32 v102, 16, v25
-; GFX11-NEXT: v_lshrrev_b32_e32 v103, 8, v25
-; GFX11-NEXT: v_lshrrev_b32_e32 v112, 24, v24
-; GFX11-NEXT: v_lshrrev_b32_e32 v113, 16, v24
-; GFX11-NEXT: v_lshrrev_b32_e32 v114, 8, v24
-; GFX11-NEXT: v_lshrrev_b32_e32 v115, 16, v23
-; GFX11-NEXT: v_lshrrev_b32_e32 v116, 8, v23
-; GFX11-NEXT: v_lshrrev_b32_e32 v117, 24, v22
-; GFX11-NEXT: v_lshrrev_b32_e32 v118, 16, v22
-; GFX11-NEXT: v_lshrrev_b32_e32 v119, 8, v22
-; GFX11-NEXT: v_lshrrev_b32_e32 v128, 16, v21
-; GFX11-NEXT: v_lshrrev_b32_e32 v129, 8, v21
-; GFX11-NEXT: v_lshrrev_b32_e32 v130, 24, v20
-; GFX11-NEXT: v_lshrrev_b32_e32 v131, 16, v20
-; GFX11-NEXT: v_lshrrev_b32_e32 v132, 8, v20
-; GFX11-NEXT: v_lshrrev_b32_e32 v133, 16, v19
-; GFX11-NEXT: v_lshrrev_b32_e32 v134, 8, v19
-; GFX11-NEXT: v_lshrrev_b32_e32 v135, 24, v18
-; GFX11-NEXT: v_lshrrev_b32_e32 v144, 16, v18
-; GFX11-NEXT: v_lshrrev_b32_e32 v145, 8, v18
-; GFX11-NEXT: v_lshrrev_b32_e32 v146, 16, v17
-; GFX11-NEXT: v_lshrrev_b32_e32 v147, 8, v17
-; GFX11-NEXT: v_lshrrev_b32_e32 v148, 24, v16
-; GFX11-NEXT: v_lshrrev_b32_e32 v149, 16, v16
-; GFX11-NEXT: v_lshrrev_b32_e32 v150, 8, v16
-; GFX11-NEXT: v_lshrrev_b32_e32 v151, 16, v15
-; GFX11-NEXT: v_lshrrev_b32_e32 v160, 8, v15
-; GFX11-NEXT: v_lshrrev_b32_e32 v161, 24, v14
-; GFX11-NEXT: v_lshrrev_b32_e32 v162, 16, v14
-; GFX11-NEXT: v_lshrrev_b32_e32 v163, 8, v14
-; GFX11-NEXT: v_lshrrev_b32_e32 v164, 16, v13
-; GFX11-NEXT: v_lshrrev_b32_e32 v165, 8, v13
-; GFX11-NEXT: v_lshrrev_b32_e32 v166, 24, v12
-; GFX11-NEXT: v_lshrrev_b32_e32 v167, 16, v12
-; GFX11-NEXT: v_lshrrev_b32_e32 v176, 8, v12
-; GFX11-NEXT: v_lshrrev_b32_e32 v177, 16, v11
-; GFX11-NEXT: v_lshrrev_b32_e32 v178, 8, v11
-; GFX11-NEXT: v_lshrrev_b32_e32 v179, 24, v10
-; GFX11-NEXT: v_lshrrev_b32_e32 v180, 16, v10
-; GFX11-NEXT: v_lshrrev_b32_e32 v181, 8, v10
-; GFX11-NEXT: v_lshrrev_b32_e32 v182, 16, v9
-; GFX11-NEXT: v_lshrrev_b32_e32 v183, 8, v9
-; GFX11-NEXT: v_lshrrev_b32_e32 v40, 24, v8
-; GFX11-NEXT: v_lshrrev_b32_e32 v41, 16, v8
-; GFX11-NEXT: v_lshrrev_b32_e32 v42, 8, v8
-; GFX11-NEXT: v_lshrrev_b32_e32 v43, 16, v7
-; GFX11-NEXT: v_lshrrev_b32_e32 v44, 8, v7
-; GFX11-NEXT: v_lshrrev_b32_e32 v45, 24, v6
-; GFX11-NEXT: v_lshrrev_b32_e32 v46, 16, v6
-; GFX11-NEXT: v_lshrrev_b32_e32 v47, 8, v6
-; GFX11-NEXT: v_lshrrev_b32_e32 v56, 16, v5
-; GFX11-NEXT: v_lshrrev_b32_e32 v57, 8, v5
-; GFX11-NEXT: v_lshrrev_b32_e32 v58, 24, v4
-; GFX11-NEXT: v_lshrrev_b32_e32 v59, 16, v4
-; GFX11-NEXT: v_lshrrev_b32_e32 v60, 8, v4
-; GFX11-NEXT: v_lshrrev_b32_e32 v61, 16, v3
-; GFX11-NEXT: v_lshrrev_b32_e32 v62, 8, v3
-; GFX11-NEXT: v_lshrrev_b32_e32 v63, 24, v2
-; GFX11-NEXT: v_lshrrev_b32_e32 v72, 16, v2
-; GFX11-NEXT: v_lshrrev_b32_e32 v73, 8, v2
-; GFX11-NEXT: v_lshrrev_b32_e32 v74, 16, v1
-; GFX11-NEXT: v_lshrrev_b32_e32 v75, 8, v1
-; GFX11-NEXT: v_lshrrev_b64 v[38:39], 24, v[21:22]
-; GFX11-NEXT: v_lshrrev_b64 v[54:55], 24, v[7:8]
-; GFX11-NEXT: v_lshrrev_b64 v[66:67], 24, v[1:2]
-; GFX11-NEXT: .LBB6_2: ; %Flow
-; GFX11-NEXT: s_and_not1_saveexec_b32 s0, s0
-; GFX11-NEXT: s_cbranch_execz .LBB6_4
-; GFX11-NEXT: ; %bb.3: ; %cmp.true
-; GFX11-NEXT: v_add_nc_u32_e32 v20, 3, v20
-; GFX11-NEXT: v_add_nc_u32_e32 v19, 3, v19
-; GFX11-NEXT: v_add_nc_u32_e32 v18, 3, v18
-; GFX11-NEXT: v_add_nc_u32_e32 v17, 3, v17
-; GFX11-NEXT: s_waitcnt vmcnt(1)
-; GFX11-NEXT: v_add_nc_u32_e32 v32, 3, v32
-; GFX11-NEXT: s_waitcnt vmcnt(0)
-; GFX11-NEXT: v_add_nc_u32_e32 v31, 3, v31
-; GFX11-NEXT: v_add_nc_u32_e32 v16, 3, v16
-; GFX11-NEXT: v_add_nc_u32_e32 v15, 3, v15
-; GFX11-NEXT: v_add_nc_u32_e32 v30, 3, v30
-; GFX11-NEXT: v_add_nc_u32_e32 v29, 3, v29
-; GFX11-NEXT: v_add_nc_u32_e32 v14, 3, v14
-; GFX11-NEXT: v_add_nc_u32_e32 v13, 3, v13
-; GFX11-NEXT: v_add_nc_u32_e32 v28, 3, v28
-; GFX11-NEXT: v_add_nc_u32_e32 v27, 3, v27
-; GFX11-NEXT: v_add_nc_u32_e32 v6, 3, v6
-; GFX11-NEXT: v_add_nc_u32_e32 v5, 3, v5
-; GFX11-NEXT: v_add_nc_u32_e32 v12, 3, v12
-; GFX11-NEXT: v_add_nc_u32_e32 v11, 3, v11
-; GFX11-NEXT: v_add_nc_u32_e32 v26, 3, v26
-; GFX11-NEXT: v_add_nc_u32_e32 v25, 3, v25
-; GFX11-NEXT: v_add_nc_u32_e32 v4, 3, v4
-; GFX11-NEXT: v_add_nc_u32_e32 v3, 3, v3
-; GFX11-NEXT: v_add_nc_u32_e32 v10, 3, v10
-; GFX11-NEXT: v_add_nc_u32_e32 v9, 3, v9
-; GFX11-NEXT: v_add_nc_u32_e32 v24, 3, v24
-; GFX11-NEXT: v_add_nc_u32_e32 v23, 3, v23
-; GFX11-NEXT: v_lshrrev_b64 v[48:49], 24, v[19:20]
-; GFX11-NEXT: v_add_nc_u32_e32 v2, 3, v2
-; GFX11-NEXT: v_add_nc_u32_e32 v1, 3, v1
-; GFX11-NEXT: v_add_nc_u32_e32 v8, 3, v8
-; GFX11-NEXT: v_add_nc_u32_e32 v7, 3, v7
-; GFX11-NEXT: v_add_nc_u32_e32 v22, 3, v22
-; GFX11-NEXT: v_add_nc_u32_e32 v21, 3, v21
-; GFX11-NEXT: v_lshrrev_b64 v[33:34], 24, v[31:32]
-; GFX11-NEXT: v_lshrrev_b64 v[49:50], 24, v[17:18]
-; GFX11-NEXT: v_lshrrev_b64 v[34:35], 24, v[29:30]
-; GFX11-NEXT: v_lshrrev_b64 v[50:51], 24, v[15:16]
-; GFX11-NEXT: v_lshrrev_b64 v[35:36], 24, v[27:28]
-; GFX11-NEXT: v_lshrrev_b64 v[51:52], 24, v[13:14]
-; GFX11-NEXT: v_lshrrev_b64 v[36:37], 24, v[25:26]
-; GFX11-NEXT: v_lshrrev_b64 v[52:53], 24, v[11:12]
-; GFX11-NEXT: v_lshrrev_b64 v[64:65], 24, v[5:6]
-; GFX11-NEXT: v_lshrrev_b64 v[37:38], 24, v[23:24]
-; GFX11-NEXT: v_lshrrev_b64 v[53:54], 24, v[9:10]
-; GFX11-NEXT: v_lshrrev_b64 v[65:66], 24, v[3:4]
-; GFX11-NEXT: v_lshrrev_b64 v[38:39], 24, v[21:22]
-; GFX11-NEXT: v_lshrrev_b64 v[54:55], 24, v[7:8]
-; GFX11-NEXT: v_lshrrev_b64 v[66:67], 24, v[1:2]
-; GFX11-NEXT: v_lshrrev_b32_e32 v68, 24, v32
-; GFX11-NEXT: v_lshrrev_b32_e32 v69, 16, v32
-; GFX11-NEXT: v_lshrrev_b32_e32 v70, 8, v32
-; GFX11-NEXT: v_lshrrev_b32_e32 v71, 16, v31
-; GFX11-NEXT: v_lshrrev_b32_e32 v80, 8, v31
-; GFX11-NEXT: v_lshrrev_b32_e32 v81, 24, v30
-; GFX11-NEXT: v_lshrrev_b32_e32 v82, 16, v30
-; GFX11-NEXT: v_lshrrev_b32_e32 v83, 8, v30
-; GFX11-NEXT: v_lshrrev_b32_e32 v84, 16, v29
-; GFX11-NEXT: v_lshrrev_b32_e32 v85, 8, v29
-; GFX11-NEXT: v_lshrrev_b32_e32 v86, 24, v28
-; GFX11-NEXT: v_lshrrev_b32_e32 v87, 16, v28
-; GFX11-NEXT: v_lshrrev_b32_e32 v96, 8, v28
-; GFX11-NEXT: v_lshrrev_b32_e32 v97, 16, v27
-; GFX11-NEXT: v_lshrrev_b32_e32 v98, 8, v27
-; GFX11-NEXT: v_lshrrev_b32_e32 v99, 24, v26
-; GFX11-NEXT: v_lshrrev_b32_e32 v100, 16, v26
-; GFX11-NEXT: v_lshrrev_b32_e32 v101, 8, v26
-; GFX11-NEXT: v_lshrrev_b32_e32 v102, 16, v25
-; GFX11-NEXT: v_lshrrev_b32_e32 v103, 8, v25
-; GFX11-NEXT: v_lshrrev_b32_e32 v112, 24, v24
-; GFX11-NEXT: v_lshrrev_b32_e32 v113, 16, v24
-; GFX11-NEXT: v_lshrrev_b32_e32 v114, 8, v24
-; GFX11-NEXT: v_lshrrev_b32_e32 v115, 16, v23
-; GFX11-NEXT: v_lshrrev_b32_e32 v116, 8, v23
-; GFX11-NEXT: v_lshrrev_b32_e32 v117, 24, v22
-; GFX11-NEXT: v_lshrrev_b32_e32 v118, 16, v22
-; GFX11-NEXT: v_lshrrev_b32_e32 v119, 8, v22
-; GFX11-NEXT: v_lshrrev_b32_e32 v128, 16, v21
-; GFX11-NEXT: v_lshrrev_b32_e32 v129, 8, v21
-; GFX11-NEXT: v_lshrrev_b32_e32 v130, 24, v20
-; GFX11-NEXT: v_lshrrev_b32_e32 v131, 16, v20
-; GFX11-NEXT: v_lshrrev_b32_e32 v132, 8, v20
-; GFX11-NEXT: v_lshrrev_b32_e32 v133, 16, v19
-; GFX11-NEXT: v_lshrrev_b32_e32 v134, 8, v19
-; GFX11-NEXT: v_lshrrev_b32_e32 v135, 24, v18
-; GFX11-NEXT: v_lshrrev_b32_e32 v144, 16, v18
-; GFX11-NEXT: v_lshrrev_b32_e32 v145, 8, v18
-; GFX11-NEXT: v_lshrrev_b32_e32 v146, 16, v17
-; GFX11-NEXT: v_lshrrev_b32_e32 v147, 8, v17
-; GFX11-NEXT: v_lshrrev_b32_e32 v148, 24, v16
-; GFX11-NEXT: v_lshrrev_b32_e32 v149, 16, v16
-; GFX11-NEXT: v_lshrrev_b32_e32 v150, 8, v16
-; GFX11-NEXT: v_lshrrev_b32_e32 v151, 16, v15
-; GFX11-NEXT: v_lshrrev_b32_e32 v160, 8, v15
-; GFX11-NEXT: v_lshrrev_b32_e32 v161, 24, v14
-; GFX11-NEXT: v_lshrrev_b32_e32 v162, 16, v14
-; GFX11-NEXT: v_lshrrev_b32_e32 v163, 8, v14
-; GFX11-NEXT: v_lshrrev_b32_e32 v164, 16, v13
-; GFX11-NEXT: v_lshrrev_b32_e32 v165, 8, v13
-; GFX11-NEXT: v_lshrrev_b32_e32 v166, 24, v12
-; GFX11-NEXT: v_lshrrev_b32_e32 v167, 16, v12
-; GFX11-NEXT: v_lshrrev_b32_e32 v176, 8, v12
-; GFX11-NEXT: v_lshrrev_b32_e32 v177, 16, v11
-; GFX11-NEXT: v_lshrrev_b32_e32 v178, 8, v11
-; GFX11-NEXT: v_lshrrev_b32_e32 v179, 24, v10
-; GFX11-NEXT: v_lshrrev_b32_e32 v180, 16, v10
-; GFX11-NEXT: v_lshrrev_b32_e32 v181, 8, v10
-; GFX11-NEXT: v_lshrrev_b32_e32 v182, 16, v9
-; GFX11-NEXT: v_lshrrev_b32_e32 v183, 8, v9
-; GFX11-NEXT: v_lshrrev_b32_e32 v40, 24, v8
-; GFX11-NEXT: v_lshrrev_b32_e32 v41, 16, v8
-; GFX11-NEXT: v_lshrrev_b32_e32 v42, 8, v8
-; GFX11-NEXT: v_lshrrev_b32_e32 v43, 16, v7
-; GFX11-NEXT: v_lshrrev_b32_e32 v44, 8, v7
-; GFX11-NEXT: v_lshrrev_b32_e32 v45, 24, v6
-; GFX11-NEXT: v_lshrrev_b32_e32 v46, 16, v6
-; GFX11-NEXT: v_lshrrev_b32_e32 v47, 8, v6
-; GFX11-NEXT: v_lshrrev_b32_e32 v56, 16, v5
-; GFX11-NEXT: v_lshrrev_b32_e32 v57, 8, v5
-; GFX11-NEXT: v_lshrrev_b32_e32 v58, 24, v4
-; GFX11-NEXT: v_lshrrev_b32_e32 v59, 16, v4
-; GFX11-NEXT: v_lshrrev_b32_e32 v60, 8, v4
-; GFX11-NEXT: v_lshrrev_b32_e32 v61, 16, v3
-; GFX11-NEXT: v_lshrrev_b32_e32 v62, 8, v3
-; GFX11-NEXT: v_lshrrev_b32_e32 v63, 24, v2
-; GFX11-NEXT: v_lshrrev_b32_e32 v72, 16, v2
-; GFX11-NEXT: v_lshrrev_b32_e32 v73, 8, v2
-; GFX11-NEXT: v_lshrrev_b32_e32 v74, 16, v1
-; GFX11-NEXT: v_lshrrev_b32_e32 v75, 8, v1
-; GFX11-NEXT: .LBB6_4: ; %end
-; GFX11-NEXT: s_or_b32 exec_lo, exec_lo, s0
-; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1)
-; GFX11-NEXT: v_lshlrev_b16 v55, 8, v75
-; GFX11-NEXT: v_and_b32_e32 v1, 0xff, v1
-; GFX11-NEXT: v_lshlrev_b16 v39, 8, v66
-; GFX11-NEXT: v_and_b32_e32 v2, 0xff, v2
-; GFX11-NEXT: v_lshlrev_b16 v66, 8, v63
-; GFX11-NEXT: v_lshlrev_b16 v65, 8, v65
-; GFX11-NEXT: v_or_b32_e32 v1, v1, v55
-; GFX11-NEXT: v_and_b32_e32 v55, 0xff, v74
-; GFX11-NEXT: v_and_b32_e32 v3, 0xff, v3
-; GFX11-NEXT: v_and_b32_e32 v67, 0xff, v61
-; GFX11-NEXT: v_and_b32_e32 v4, 0xff, v4
-; GFX11-NEXT: v_and_b32_e32 v1, 0xffff, v1
-; GFX11-NEXT: v_or_b32_e32 v39, v55, v39
-; GFX11-NEXT: v_lshlrev_b16 v55, 8, v73
-; GFX11-NEXT: v_or_b32_e32 v65, v67, v65
-; GFX11-NEXT: v_lshlrev_b16 v67, 8, v58
-; GFX11-NEXT: v_and_b32_e32 v5, 0xff, v5
-; GFX11-NEXT: v_lshlrev_b32_e32 v39, 16, v39
-; GFX11-NEXT: v_or_b32_e32 v2, v2, v55
-; GFX11-NEXT: v_and_b32_e32 v55, 0xff, v72
-; GFX11-NEXT: v_lshlrev_b16 v64, 8, v64
-; GFX11-NEXT: v_and_b32_e32 v6, 0xff, v6
-; GFX11-NEXT: v_or_b32_e32 v1, v1, v39
-; GFX11-NEXT: v_and_b32_e32 v2, 0xffff, v2
-; GFX11-NEXT: v_or_b32_e32 v55, v55, v66
-; GFX11-NEXT: v_lshlrev_b16 v66, 8, v62
-; GFX11-NEXT: v_and_b32_e32 v7, 0xff, v7
-; GFX11-NEXT: v_lshlrev_b16 v54, 8, v54
-; GFX11-NEXT: v_and_b32_e32 v8, 0xff, v8
-; GFX11-NEXT: v_lshlrev_b32_e32 v39, 16, v55
-; GFX11-NEXT: v_or_b32_e32 v3, v3, v66
-; GFX11-NEXT: v_lshlrev_b16 v55, 8, v60
-; GFX11-NEXT: v_and_b32_e32 v66, 0xff, v59
-; GFX11-NEXT: v_lshlrev_b16 v53, 8, v53
-; GFX11-NEXT: v_or_b32_e32 v2, v2, v39
-; GFX11-NEXT: v_and_b32_e32 v3, 0xffff, v3
-; GFX11-NEXT: v_lshlrev_b32_e32 v39, 16, v65
-; GFX11-NEXT: v_or_b32_e32 v4, v4, v55
-; GFX11-NEXT: v_or_b32_e32 v55, v66, v67
-; GFX11-NEXT: v_lshlrev_b16 v65, 8, v57
-; GFX11-NEXT: v_and_b32_e32 v66, 0xff, v56
-; GFX11-NEXT: v_or_b32_e32 v3, v3, v39
-; GFX11-NEXT: v_and_b32_e32 v4, 0xffff, v4
-; GFX11-NEXT: v_lshlrev_b3...
[truncated]
|
Why do all tests need to check this feature? Why not have a few dedicated test cases just to stress-test this? |
Eventually this should be trimmed down. In the end state, only the true16 path exists |
Hi Pierre. This is in a transition state. We plan to use +real-true16 mode as default in the end. Thus we added test for both mode now, and eventually we will remove the -real-true16 check line after we switch the default. |
@@ -38,7 +63,6 @@ body: | | |||
%4:vgpr_32 = V_MOV_B32_dpp %3, %1, 1, 15, 15, 1, implicit $exec | |||
V_CMP_LT_F32_e32 %4, %0, implicit-def $vcc, implicit $mode, implicit $exec | |||
|
|||
; unsafe to combine cmpx |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These looked useful.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reverted
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, apart from the removed comments. Will you make sure to downstream this before submitting here, please?
@@ -14949,85 +17080,139 @@ define <2 x bfloat> @flat_agent_atomic_fmin_ret_v2bf16__offset12b_neg__amdgpu_no | |||
; GFX942-NEXT: v_mov_b32_e32 v7, v0 | |||
; GFX942-NEXT: v_lshlrev_b32_e32 v0, 16, v7 | |||
; GFX942-NEXT: v_and_b32_e32 v3, 0xffff0000, v7 | |||
; GFX942-NEXT: v_min_f32_e32 v0, v0, v1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Strangely, there are places like this that git highlights as a change, but I see nothing really changed...
; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+real-true16 -mattr=+wavefrontsize64 -mattr=-flat-for-global -amdgpu-atomic-optimizer-strategy=Iterative -verify-machineinstrs < %s | FileCheck -enable-var-scope -check-prefixes=GFX1264,GFX1264_ITERATIVE,GFX1264_ITERATIVE-TRUE16 %s | ||
; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=-real-true16 -mattr=+wavefrontsize64 -mattr=-flat-for-global -amdgpu-atomic-optimizer-strategy=Iterative -verify-machineinstrs < %s | FileCheck -enable-var-scope -check-prefixes=GFX1264,GFX1264_ITERATIVE,GFX1264_ITERATIVE-FAKE16 %s | ||
; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+real-true16 -mattr=+wavefrontsize32 -mattr=-flat-for-global -amdgpu-atomic-optimizer-strategy=Iterative -verify-machineinstrs < %s | FileCheck -enable-var-scope -check-prefixes=GFX1232,GFX1232_ITERATIVE,GFX1232_ITERATIVE-TRUE16 %s | ||
; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=-real-true16 -mattr=+wavefrontsize32 -mattr=-flat-for-global -amdgpu-atomic-optimizer-strategy=Iterative -verify-machineinstrs < %s | FileCheck -enable-var-scope -check-prefixes=GFX1232,GFX1232_ITERATIVE,GFX1232_ITERATIVE-FAKE16 %s | ||
; RUN: llc -mtriple=amdgcn -amdgpu-atomic-optimizer-strategy=DPP -verify-machineinstrs < %s | FileCheck -enable-var-scope -check-prefixes=GFX7LESS,GFX7LESS_DPP %s |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are several test files where we have multiple 'modes' such as iterative vs dpp in this one. These two modes had one common check prefix before, and if you added more prefixes with real and fake they could have a common one still.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Joe. I am using a script to update all of these mattr updates and I noticed that it added many non-used check tags. However, since this should be removed soon when we remove fake16, I think it might not worth to manually clean up them. I am in favor of cleaning them together with a script to remove fake16
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems there are only a few test files that has this issue. Manually update those to have multipe real/fake tag as discussed offline. For sdag vs gisel they seems mostly different so I kept those the same.
f9c7aaa
to
fbffaba
Compare
rebased and resolved conflicts |
fbffaba
to
09f733c
Compare
rebased and resolved conflicts again, CI error is not related to this patch |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, the run line format looks good.
If file size is an issue, it would be possible to omit true16 run lines for some of the more verbose tests, such as amdgcn.bitcast.1024bit.ll. But the two issues with that are 1) we won't have regression or improvement coverage there and 2) when we want to flip the default from fake16 to true16 we will see the big diffs. It would be nice to have a clean default flip that doesn't affect any tests. Please wait a day or two to see if there is any more comment on that.
09f733c
to
f21a9b7
Compare
Address the issue on removing the comments in vopc_dpp.mir. rebased and resolved conflicts |
…lag (llvm#135078) This is a NFC patch. This patch run a bulk update on CodeGen tests that are impacted by the true16 features. This patch applies: 1. duplicate GFX11plus runlines and apply them with "+mattr=+real-true16" and "+mattr=-real-true16" 2. update the test with the update script For some GISEL runlines, the current CodeGen do not fully support the true16 version. Still update the runlines, but comment out the failing one, and added a "FIXME-TRUE16" comment to that test for easier tracking. These test will be fixed in the following patches. This is in a transition state that we support both "+real-true16/-real-true16" in our code base. We plan to move to "+real-true16" as default, and finally remove "-real-true16" mode and test lines.
…lag (llvm#135078) This is a NFC patch. This patch run a bulk update on CodeGen tests that are impacted by the true16 features. This patch applies: 1. duplicate GFX11plus runlines and apply them with "+mattr=+real-true16" and "+mattr=-real-true16" 2. update the test with the update script For some GISEL runlines, the current CodeGen do not fully support the true16 version. Still update the runlines, but comment out the failing one, and added a "FIXME-TRUE16" comment to that test for easier tracking. These test will be fixed in the following patches. This is in a transition state that we support both "+real-true16/-real-true16" in our code base. We plan to move to "+real-true16" as default, and finally remove "-real-true16" mode and test lines.
…lag (llvm#135078) This is a NFC patch. This patch run a bulk update on CodeGen tests that are impacted by the true16 features. This patch applies: 1. duplicate GFX11plus runlines and apply them with "+mattr=+real-true16" and "+mattr=-real-true16" 2. update the test with the update script For some GISEL runlines, the current CodeGen do not fully support the true16 version. Still update the runlines, but comment out the failing one, and added a "FIXME-TRUE16" comment to that test for easier tracking. These test will be fixed in the following patches. This is in a transition state that we support both "+real-true16/-real-true16" in our code base. We plan to move to "+real-true16" as default, and finally remove "-real-true16" mode and test lines.
This is a NFC patch.
This patch run a bulk update on CodeGen tests that are impacted by the true16 features. This patch applies:
For some GISEL runlines, the current CodeGen do not fully support the true16 version. Still update the runlines, but comment out the failing one, and added a "FIXME-TRUE16" comment to that test for easier tracking. These test will be fixed in the following patches.
This is in a transition state that we support both "+real-true16/-real-true16" in our code base. We plan to move to "+real-true16" as default, and finally remove "-real-true16" mode and test lines.