[llvm] [nfc][AMDGPU] Autogenerated assertions applied to fold-imm-copy.mir (PR #135071)

via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 9 12:30:28 PDT 2025


https://github.com/mssefat created https://github.com/llvm/llvm-project/pull/135071

Autogenerated assertions are applied to fold-imm-copy.mir

>From 44ec59208a5396219bbcc69a78cd52ac408acacb Mon Sep 17 00:00:00 2001
From: mssefat <syadus.sefat at gmail.com>
Date: Wed, 9 Apr 2025 15:25:05 -0400
Subject: [PATCH] [nfc][AMDGPU] Autogenerated assertions applied to
 fold-imm-copy.mir

Autogenerated assertions are applied to fold-imm-copy.mir
---
 llvm/test/CodeGen/AMDGPU/fold-imm-copy.mir | 57 ++++++++++++++--------
 1 file changed, 37 insertions(+), 20 deletions(-)

diff --git a/llvm/test/CodeGen/AMDGPU/fold-imm-copy.mir b/llvm/test/CodeGen/AMDGPU/fold-imm-copy.mir
index dce11209d0514..300bae7551ca5 100644
--- a/llvm/test/CodeGen/AMDGPU/fold-imm-copy.mir
+++ b/llvm/test/CodeGen/AMDGPU/fold-imm-copy.mir
@@ -1,14 +1,23 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
 # RUN: llc -mtriple=amdgcn -run-pass si-fold-operands -verify-machineinstrs %s -o - | FileCheck -check-prefix=GCN %s
 
-# GCN-LABEL:       name: fold-imm-copy
-# GCN:             V_AND_B32_e32 65535
-
 ---
 name: fold-imm-copy
 tracksRegLiveness: true
 body:             |
   bb.0:
     liveins: $vgpr0, $sgpr0_sgpr1
+    ; GCN-LABEL: name: fold-imm-copy
+    ; GCN: liveins: $vgpr0, $sgpr0_sgpr1
+    ; GCN-NEXT: {{  $}}
+    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
+    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_64 = COPY $sgpr0_sgpr1
+    ; GCN-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY1]], 9, 0
+    ; GCN-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 2, [[COPY]], implicit $exec
+    ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
+    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE killed [[V_LSHLREV_B32_e64_]], %subreg.sub0, killed [[V_MOV_B32_e32_]], %subreg.sub1
+    ; GCN-NEXT: [[BUFFER_LOAD_DWORD_ADDR64_:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_ADDR64 [[REG_SEQUENCE]], [[S_LOAD_DWORDX4_IMM]], 0, 4, 0, 0, implicit $exec
+    ; GCN-NEXT: [[V_AND_B32_e32_:%[0-9]+]]:vgpr_32 = V_AND_B32_e32 65535, [[BUFFER_LOAD_DWORD_ADDR64_]], implicit $exec
     %0:vgpr_32 = COPY $vgpr0
     %1:sgpr_64 = COPY $sgpr0_sgpr1
     %2:sgpr_128 = S_LOAD_DWORDX4_IMM %1, 9, 0
@@ -23,14 +32,19 @@ body:             |
 ...
 
 ---
-# GCN-LABEL:       name: no_extra_fold_on_same_opnd
 # The first XOR needs commuting to fold that immediate operand.
-# GCN:             V_XOR_B32_e32 0, %1
-# GCN:             V_XOR_B32_e32 %2, %4.sub0
 name: no_extra_fold_on_same_opnd
 tracksRegLiveness: true
 body:             |
   bb.0:
+    ; GCN-LABEL: name: no_extra_fold_on_same_opnd
+    ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
+    ; GCN-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
+    ; GCN-NEXT: [[DEF2:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
+    ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
+    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE killed [[DEF]], %subreg.sub0, killed [[V_MOV_B32_e32_]], %subreg.sub1
+    ; GCN-NEXT: [[V_XOR_B32_e32_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e32 0, [[DEF1]], implicit $exec
+    ; GCN-NEXT: [[V_XOR_B32_e32_1:%[0-9]+]]:vgpr_32 = V_XOR_B32_e32 [[DEF2]], [[REG_SEQUENCE]].sub0, implicit $exec
     %0:vgpr_32 = IMPLICIT_DEF
     %1:vgpr_32 = IMPLICIT_DEF
     %2:vgpr_32 = IMPLICIT_DEF
@@ -45,13 +59,14 @@ body:             |
 # Make sure the subreg index is not reinterpreted when folding
 # immediates
 #
-# GCN-LABEL: name: clear_subreg_imm_fold{{$}}
-# GCN: %1:sgpr_32 = S_MOV_B32 4294967288
-# GCN: %2:sgpr_32 = S_MOV_B32 4294967295
 name: clear_subreg_imm_fold
 tracksRegLiveness: true
 body:             |
   bb.0:
+    ; GCN-LABEL: name: clear_subreg_imm_fold
+    ; GCN: [[S_MOV_B32_:%[0-9]+]]:sgpr_32 = S_MOV_B32 4294967288
+    ; GCN-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sgpr_32 = S_MOV_B32 4294967295
+    ; GCN-NEXT: S_ENDPGM 0, implicit [[S_MOV_B32_]], implicit [[S_MOV_B32_1]]
     %0:sreg_64 = S_MOV_B64 -8
     %1:sgpr_32 = COPY %0.sub0
     %2:sgpr_32 = COPY %0.sub1
@@ -59,28 +74,29 @@ body:             |
 
 ...
 
-# GCN-LABEL: name: no_fold_imm_into_m0{{$}}
-# GCN: %0:sreg_32 = S_MOV_B32 -8
-# GCN-NEXT: $m0 = COPY %0
-
 ---
 name: no_fold_imm_into_m0
 tracksRegLiveness: true
 body:             |
   bb.0:
+    ; GCN-LABEL: name: no_fold_imm_into_m0
+    ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 -8
+    ; GCN-NEXT: $m0 = COPY [[S_MOV_B32_]]
+    ; GCN-NEXT: S_ENDPGM 0, implicit $m0
     %0:sreg_32 = S_MOV_B32 -8
     $m0 = COPY %0
     S_ENDPGM 0, implicit $m0
 
 ...
 
-# GCN-LABEL: name: fold_sgpr_imm_to_vgpr_copy{{$}}
-# GCN: $vgpr0 = V_MOV_B32_e32 -8, implicit $exec
 ---
 name: fold_sgpr_imm_to_vgpr_copy
 tracksRegLiveness: true
 body:             |
   bb.0:
+    ; GCN-LABEL: name: fold_sgpr_imm_to_vgpr_copy
+    ; GCN: $vgpr0 = V_MOV_B32_e32 -8, implicit $exec
+    ; GCN-NEXT: S_ENDPGM 0, implicit $vgpr0
     %0:sreg_32 = S_MOV_B32 -8
     $vgpr0 = COPY %0
     S_ENDPGM 0, implicit $vgpr0
@@ -90,16 +106,17 @@ body:             |
 # The users of $vgpr1 should not be visited for further immediate
 # folding.
 
-# GCN-LABEL: name: no_fold_physreg_users_vgpr{{$}}
-# GCN: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
-# GCN-NEXT: S_NOP 0, implicit-def $vgpr1
-# GCN-NEXT: %2:vgpr_32 = COPY $vgpr1
-# GCN-NEXT: $vgpr2 = COPY %2
 ---
 name: no_fold_physreg_users_vgpr
 tracksRegLiveness: true
 body:             |
   bb.0:
+    ; GCN-LABEL: name: no_fold_physreg_users_vgpr
+    ; GCN: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
+    ; GCN-NEXT: S_NOP 0, implicit-def $vgpr1
+    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1
+    ; GCN-NEXT: $vgpr2 = COPY [[COPY]]
+    ; GCN-NEXT: S_ENDPGM 0
     %0:sreg_32 = S_MOV_B32 0
     %1:vgpr_32 = COPY %0
     $vgpr1 = COPY %0



More information about the llvm-commits mailing list