mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-16 11:06:33 +00:00
[nfc][AMDGPU] Autogenerated assertions applied to fold-imm-copy.mir (#135071)
Autogenerated assertions are applied to fold-imm-copy.mir
This commit is contained in:
parent
4d06d22da0
commit
8145659c39
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user