[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