-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[AMDGPU] Add illegal type convertion #135729
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
Conversation
@llvm/pr-subscribers-backend-amdgpu Author: None (Shoreshen) ChangesAdd more bit-convert tests for:
Patch is 59.45 MiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/135729.diff 49 Files Affected:
diff --git a/llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll b/llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
index 56edb29281944..3751be86cd82e 100644
--- a/llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+++ b/llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
@@ -1,6 +1,6 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
-; RUN: llc -mtriple=amdgcn < %s | FileCheck -check-prefix=GCN %s
+; RUN: llc -mtriple=amdgcn -mcpu=tahiti < %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
@@ -9,10 +9,10 @@ define <32 x float> @bitcast_v32i32_to_v32f32(<32 x i32> %a, i32 %b) {
; GCN-LABEL: bitcast_v32i32_to_v32f32:
; GCN: ; %bb.0:
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
-; GCN-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:4
+; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:4
+; GCN-NEXT: s_waitcnt vmcnt(0)
+; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v31
; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32
-; GCN-NEXT: s_waitcnt vmcnt(1)
-; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v32
; GCN-NEXT: s_and_saveexec_b64 s[4:5], vcc
; GCN-NEXT: s_xor_b64 s[4:5], exec, s[4:5]
; GCN-NEXT: s_andn2_saveexec_b64 s[4:5], s[4:5]
@@ -228,10 +228,10 @@ define <32 x i32> @bitcast_v32f32_to_v32i32(<32 x float> %a, i32 %b) {
; GCN-LABEL: bitcast_v32f32_to_v32i32:
; GCN: ; %bb.0:
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
-; GCN-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:4
+; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:4
+; GCN-NEXT: s_waitcnt vmcnt(0)
+; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v31
; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32
-; GCN-NEXT: s_waitcnt vmcnt(1)
-; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v32
; GCN-NEXT: s_and_saveexec_b64 s[4:5], vcc
; GCN-NEXT: s_xor_b64 s[4:5], exec, s[4:5]
; GCN-NEXT: s_andn2_saveexec_b64 s[4:5], s[4:5]
@@ -431,10 +431,10 @@ define <16 x i64> @bitcast_v32i32_to_v16i64(<32 x i32> %a, i32 %b) {
; GCN-LABEL: bitcast_v32i32_to_v16i64:
; GCN: ; %bb.0:
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
-; GCN-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:4
+; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:4
+; GCN-NEXT: s_waitcnt vmcnt(0)
+; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v31
; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32
-; GCN-NEXT: s_waitcnt vmcnt(1)
-; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v32
; GCN-NEXT: s_and_saveexec_b64 s[4:5], vcc
; GCN-NEXT: s_xor_b64 s[4:5], exec, s[4:5]
; GCN-NEXT: s_andn2_saveexec_b64 s[4:5], s[4:5]
@@ -650,10 +650,10 @@ define <32 x i32> @bitcast_v16i64_to_v32i32(<16 x i64> %a, i32 %b) {
; GCN-LABEL: bitcast_v16i64_to_v32i32:
; GCN: ; %bb.0:
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
-; GCN-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:4
+; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:4
+; GCN-NEXT: s_waitcnt vmcnt(0)
+; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v31
; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32
-; GCN-NEXT: s_waitcnt vmcnt(1)
-; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v32
; GCN-NEXT: s_and_saveexec_b64 s[4:5], vcc
; GCN-NEXT: s_xor_b64 s[4:5], exec, s[4:5]
; GCN-NEXT: s_andn2_saveexec_b64 s[4:5], s[4:5]
@@ -877,10 +877,10 @@ define <16 x double> @bitcast_v32i32_to_v16f64(<32 x i32> %a, i32 %b) {
; GCN-LABEL: bitcast_v32i32_to_v16f64:
; GCN: ; %bb.0:
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
-; GCN-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:4
+; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:4
+; GCN-NEXT: s_waitcnt vmcnt(0)
+; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v31
; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32
-; GCN-NEXT: s_waitcnt vmcnt(1)
-; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v32
; GCN-NEXT: s_and_saveexec_b64 s[4:5], vcc
; GCN-NEXT: s_xor_b64 s[4:5], exec, s[4:5]
; GCN-NEXT: s_andn2_saveexec_b64 s[4:5], s[4:5]
@@ -1096,10 +1096,10 @@ define <32 x i32> @bitcast_v16f64_to_v32i32(<16 x double> %a, i32 %b) {
; GCN-LABEL: bitcast_v16f64_to_v32i32:
; GCN: ; %bb.0:
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
-; GCN-NEXT: buffer_load_dword v32, off, s[0:3], s32 offset:4
+; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:4
+; GCN-NEXT: s_waitcnt vmcnt(0)
+; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v31
; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32
-; GCN-NEXT: s_waitcnt vmcnt(1)
-; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v32
; GCN-NEXT: s_and_saveexec_b64 s[4:5], vcc
; GCN-NEXT: s_xor_b64 s[4:5], exec, s[4:5]
; GCN-NEXT: s_andn2_saveexec_b64 s[4:5], s[4:5]
@@ -1267,1190 +1267,1181 @@ define <128 x i8> @bitcast_v32i32_to_v128i8(<32 x i32> %a, i32 %b) {
; GCN-NEXT: buffer_store_dword v61, off, s[0:3], s32 offset:20 ; 4-byte Folded Spill
; GCN-NEXT: buffer_store_dword v62, off, s[0:3], s32 offset:16 ; 4-byte Folded Spill
; GCN-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:12 ; 4-byte Folded Spill
-; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:8
-; GCN-NEXT: s_waitcnt expcnt(5)
-; GCN-NEXT: buffer_load_dword v58, off, s[0:3], s32 offset:4
-; GCN-NEXT: s_waitcnt expcnt(4)
-; GCN-NEXT: buffer_load_dword v59, off, s[0:3], s32
-; GCN-NEXT: s_waitcnt vmcnt(2)
-; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v31
-; GCN-NEXT: ; implicit-def: $vgpr52
+; GCN-NEXT: buffer_load_dword v33, off, s[0:3], s32 offset:8
+; GCN-NEXT: buffer_load_dword v31, off, s[0:3], s32 offset:4
+; GCN-NEXT: buffer_load_dword v32, off, s[0:3], s32
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr45
+; GCN-NEXT: ; implicit-def: $vgpr43
+; GCN-NEXT: ; implicit-def: $vgpr41
+; GCN-NEXT: ; implicit-def: $vgpr35
+; GCN-NEXT: ; implicit-def: $vgpr34
+; GCN-NEXT: ; implicit-def: $vgpr55
+; GCN-NEXT: ; implicit-def: $vgpr53
; GCN-NEXT: ; implicit-def: $vgpr51
-; GCN-NEXT: ; implicit-def: $vgpr50
-; GCN-NEXT: ; implicit-def: $vgpr31
; GCN-NEXT: ; implicit-def: $vgpr63
; GCN-NEXT: ; implicit-def: $vgpr62
-; GCN-NEXT: ; implicit-def: $vgpr49
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
; GCN-NEXT: ; implicit-def: $vgpr61
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
; GCN-NEXT: ; implicit-def: $vgpr48
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
+; GCN-NEXT: ; implicit-def: $vgpr38
+; GCN-NEXT: ; implicit-def: $vgpr37
; GCN-NEXT: ; implicit-def: $vgpr60
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr39
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
+; GCN-NEXT: ; implicit-def: $vgpr59
+; GCN-NEXT: ; implicit-def: $vgpr58
; GCN-NEXT: ; implicit-def: $vgpr57
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr38
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
; GCN-NEXT: ; implicit-def: $vgpr56
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr37
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
; GCN-NEXT: ; implicit-def: $vgpr47
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr36
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
; GCN-NEXT: ; implicit-def: $vgpr46
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr35
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr45
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr34
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
; GCN-NEXT: ; implicit-def: $vgpr44
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr33
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr43
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; kill: killed $vgpr53
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; kill: killed $vgpr53
; GCN-NEXT: ; implicit-def: $vgpr42
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; kill: killed $vgpr53
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; kill: killed $vgpr53
-; GCN-NEXT: ; implicit-def: $vgpr41
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; kill: killed $vgpr53
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; kill: killed $vgpr53
; GCN-NEXT: ; implicit-def: $vgpr40
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; kill: killed $vgpr53
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; kill: killed $vgpr53
-; GCN-NEXT: ; implicit-def: $vgpr55
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; kill: killed $vgpr53
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; kill: killed $vgpr53
; GCN-NEXT: ; implicit-def: $vgpr54
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; kill: killed $vgpr53
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; kill: killed $vgpr53
-; GCN-NEXT: ; implicit-def: $vgpr53
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
-; GCN-NEXT: ; kill: killed $vgpr32
-; GCN-NEXT: ; implicit-def: $vgpr32
+; GCN-NEXT: ; implicit-def: $vgpr52
+; GCN-NEXT: ; implicit-def: $vgpr50
+; GCN-NEXT: ; implicit-def: $vgpr49
+; GCN-NEXT: ; implicit-def: $vgpr39
+; GCN-NEXT: ; kill: killed $vgpr36
+; GCN-NEXT: ; implicit-def: $vgpr36
+; GCN-NEXT: s_waitcnt vmcnt(2)
+; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 0, v33
+; GCN-NEXT: ; implicit-def: $vgpr33
; GCN-NEXT: s_and_saveexec_b64 s[4:5], vcc
; GCN-NEXT: s_xor_b64 s[4:5], exec, s[4:5]
; GCN-NEXT: s_cbranch_execz .LBB6_2
; GCN-NEXT: ; %bb.1: ; %cmp.false
; GCN-NEXT: s_waitcnt vmcnt(0)
-; GCN-NEXT: v_alignbit_b32 v31, v58, v59, 24
-; GCN-NEXT: buffer_store_dword v31, off, s[0:3], s32 offset:76 ; 4-byte Folded Spill
+; GCN-NEXT: v_alignbit_b32 v33, v31, v32, 24
+; GCN-NEXT: buffer_store_dword v33, off, s[0:3], s32 offset:76 ; 4-byte Folded Spill
; GCN-NEXT: s_waitcnt expcnt(0)
-; GCN-NEXT: v_alignbit_b32 v31, v58, v59, 16
-; GCN-NEXT: buffer_store_dword v31, off, s[0:3], s32 offset:80 ; 4-byte Folded Spill
+; GCN-NEXT: v_alignbit_b32 v33, v31, v32, 16
+; GCN-NEXT: buffer_store_dword v33, off, s[0:3], s32 offset:148 ; 4-byte Folded Spill
; GCN-NEXT: s_waitcnt expcnt(0)
-; GCN-NEXT: v_alignbit_b32 v31, v58, v59, 8
-; GCN-NEXT: buffer_store_dword v31, off, s[0:3], s32 offset:312 ; 4-byte Folded Spill
+; GCN-NEXT: v_alignbit_b32 v33, v31, v32, 8
+; GCN-NEXT: buffer_store_dword v33, off, s[0:3], s32 offset:80 ; 4-byte Folded Spill
; GCN-NEXT: s_waitcnt expcnt(0)
-; GCN-NEXT: v_alignbit_b32 v31, v30, v29, 24
-; GCN-NEXT: buffer_store_dword v31, off, s[0:3], s32 offset:84 ; 4-byte Folded Spill
+; GCN-NEXT: v_alignbit_b32 v33, v30, v29, 24
+; GCN-NEXT: buffer_store_dword v33, off, s[0:3], s32 offset:84 ; 4-byte Folded Spill
; GCN-NEXT: s_waitcnt expcnt(0)
-; GCN-NEXT: v_alignbit_b32 v31, v30, v29, 16
-; GCN-NEXT: buffer_store_dword v31, off, s[0:3], s32 offset:88 ; 4-byte Folded Spill
+; GCN-NEXT: v_alignbit_b32 v33, v30, v29, 16
+; GCN-NEXT: buffer_store_dword v33, off, s[0:3], s32 offset:88 ; 4-byte Folded Spill
; GCN-NEXT: s_waitcnt expcnt(0)
-; GCN-NEXT: v_alignbit_b32 v31, v30, v29, 8
-; GCN-NEXT: buffer_store_dword v31, off, s[0:3], s32 offset:316 ; 4-byte Folded Spill
+; GCN-NEXT: v_alignbit_b32 v33, v30, v29, 8
+; GCN-NEXT: buffer_store_dword v33, off, s[0:3], s32 offset:92 ; 4-byte Folded Spill
; GCN-NEXT: s_waitcnt expcnt(0)
-; GCN-NEXT: v_alignbit_b32 v31, v28, v27, 24
-; GCN-NEXT: buffer_store_dword v31, off, s[0:3], s32 offset:92 ; 4-byte Folded Spill
+; GCN-NEXT: v_alignbit_b32 v33, v28, v27, 24
+; GCN-NEXT: buffer_store_dword v33, off, s[0:3], s32 ...
[truncated]
|
I'd split this PR into several ones for faster and easier review: 1) those that add |
Hi @shiltian , I updated this PR for only adding illegal type conversion tests. I'll put up the following 2 after this is merged. Thanks |
Add more bit-convert tests for illegal types conversion
Add inreg test for sgpr purpose This is the second PR after #135729. To test sgpr inputs and outputs, using inreg cases for bit-conversions --------- Co-authored-by: Matt Arsenault <[email protected]>
Add inreg test for sgpr purpose This is the second PR after llvm/llvm-project#135729. To test sgpr inputs and outputs, using inreg cases for bit-conversions --------- Co-authored-by: Matt Arsenault <[email protected]>
Add more bit-convert tests for illegal types conversion