blob: d08185a9e0ccd7d7c614d03ba74392ba388ff97a [file] [log] [blame] [edit]
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
# RUN: llc -mtriple=amdgcn -mcpu=gfx908 -run-pass=postrapseudos %s -o - | FileCheck -check-prefixes=CHECK,GFX908 %s
# RUN: llc -mtriple=amdgcn -mcpu=gfx90a -run-pass=postrapseudos %s -o - | FileCheck -check-prefixes=CHECK,GFX90A %s
# RUN: llc -mtriple=amdgcn -mcpu=gfx942 -run-pass=postrapseudos %s -o - | FileCheck -check-prefixes=CHECK,GFX942 %s
---
name: av_mov_b32_imm_pseudo_agpr_0
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b32_imm_pseudo_agpr_0
; CHECK: $agpr0 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec
$agpr0 = AV_MOV_B32_IMM_PSEUDO 0, implicit $exec
...
---
name: av_mov_b32_imm_pseudo_agpr_64
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b32_imm_pseudo_agpr_64
; CHECK: $agpr0 = V_ACCVGPR_WRITE_B32_e64 64, implicit $exec
$agpr0 = AV_MOV_B32_IMM_PSEUDO 64, implicit $exec
...
---
name: av_mov_b32_imm_pseudo_vgpr_0
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b32_imm_pseudo_vgpr_0
; CHECK: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
$vgpr0 = AV_MOV_B32_IMM_PSEUDO 0, implicit $exec
...
---
name: av_mov_b32_imm_pseudo_vgpr_64
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b32_imm_pseudo_vgpr_64
; CHECK: $vgpr0 = V_MOV_B32_e32 64, implicit $exec
$vgpr0 = AV_MOV_B32_IMM_PSEUDO 64, implicit $exec
...
---
name: av_mov_b32_imm_pseudo_agpr_vgpr
tracksRegLiveness: true
body: |
bb.0:
liveins: $vgpr0
; CHECK-LABEL: name: av_mov_b32_imm_pseudo_agpr_vgpr
; CHECK: liveins: $vgpr0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: $agpr1 = V_ACCVGPR_WRITE_B32_e64 $vgpr0, implicit $exec
$agpr1 = AV_MOV_B32_IMM_PSEUDO $vgpr0, implicit $exec
...
---
name: av_mov_b64_imm_pseudo_agpr_0
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b64_imm_pseudo_agpr_0
; CHECK: $agpr0 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec, implicit-def $agpr0_agpr1
; CHECK-NEXT: $agpr1 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec, implicit-def $agpr0_agpr1
$agpr0_agpr1 = AV_MOV_B64_IMM_PSEUDO 0, implicit $exec
...
---
name: av_mov_b64_imm_pseudo_agpr_neg1
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b64_imm_pseudo_agpr_neg1
; CHECK: $agpr0 = V_ACCVGPR_WRITE_B32_e64 -1, implicit $exec, implicit-def $agpr0_agpr1
; CHECK-NEXT: $agpr1 = V_ACCVGPR_WRITE_B32_e64 -1, implicit $exec, implicit-def $agpr0_agpr1
$agpr0_agpr1 = AV_MOV_B64_IMM_PSEUDO -1, implicit $exec
...
---
name: av_mov_b64_imm_pseudo_agpr_64
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b64_imm_pseudo_agpr_64
; CHECK: $agpr0 = V_ACCVGPR_WRITE_B32_e64 64, implicit $exec, implicit-def $agpr0_agpr1
; CHECK-NEXT: $agpr1 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec, implicit-def $agpr0_agpr1
$agpr0_agpr1 = AV_MOV_B64_IMM_PSEUDO 64, implicit $exec
...
---
name: av_mov_b64_imm_pseudo_vgpr_0
tracksRegLiveness: true
body: |
bb.0:
; GFX908-LABEL: name: av_mov_b64_imm_pseudo_vgpr_0
; GFX908: $vgpr0 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr0_vgpr1
; GFX908-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr0_vgpr1
;
; GFX90A-LABEL: name: av_mov_b64_imm_pseudo_vgpr_0
; GFX90A: $vgpr0_vgpr1 = V_PK_MOV_B32 8, 0, 8, 0, 0, 0, 0, 0, 0, implicit $exec
;
; GFX942-LABEL: name: av_mov_b64_imm_pseudo_vgpr_0
; GFX942: $vgpr0_vgpr1 = V_MOV_B64_e32 0, implicit $exec
$vgpr0_vgpr1 = AV_MOV_B64_IMM_PSEUDO 0, implicit $exec
...
---
name: av_mov_b64_imm_pseudo_vgpr_64
tracksRegLiveness: true
body: |
bb.0:
; GFX908-LABEL: name: av_mov_b64_imm_pseudo_vgpr_64
; GFX908: $vgpr0 = V_MOV_B32_e32 64, implicit $exec, implicit-def $vgpr0_vgpr1
; GFX908-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr0_vgpr1
;
; GFX90A-LABEL: name: av_mov_b64_imm_pseudo_vgpr_64
; GFX90A: $vgpr0 = V_MOV_B32_e32 64, implicit $exec, implicit-def $vgpr0_vgpr1
; GFX90A-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr0_vgpr1
;
; GFX942-LABEL: name: av_mov_b64_imm_pseudo_vgpr_64
; GFX942: $vgpr0_vgpr1 = V_MOV_B64_e32 64, implicit $exec
$vgpr0_vgpr1 = AV_MOV_B64_IMM_PSEUDO 64, implicit $exec
...
---
name: av_mov_b64_imm_pseudo_agpr_64_hi_0_lo
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b64_imm_pseudo_agpr_64_hi_0_lo
; CHECK: $agpr0 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec, implicit-def $agpr0_agpr1
; CHECK-NEXT: $agpr1 = V_ACCVGPR_WRITE_B32_e64 64, implicit $exec, implicit-def $agpr0_agpr1
$agpr0_agpr1 = AV_MOV_B64_IMM_PSEUDO 274877906944, implicit $exec
...
---
name: av_mov_b64_imm_pseudo_agpr_64_hi_2_lo
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b64_imm_pseudo_agpr_64_hi_2_lo
; CHECK: $agpr0 = V_ACCVGPR_WRITE_B32_e64 2, implicit $exec, implicit-def $agpr0_agpr1
; CHECK-NEXT: $agpr1 = V_ACCVGPR_WRITE_B32_e64 64, implicit $exec, implicit-def $agpr0_agpr1
$agpr0_agpr1 = AV_MOV_B64_IMM_PSEUDO 274877906946, implicit $exec
...
---
name: av_mov_b64_imm_pseudo_agpr_neg16_hi_9_lo
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b64_imm_pseudo_agpr_neg16_hi_9_lo
; CHECK: $agpr0 = V_ACCVGPR_WRITE_B32_e64 9, implicit $exec, implicit-def $agpr0_agpr1
; CHECK-NEXT: $agpr1 = V_ACCVGPR_WRITE_B32_e64 -16, implicit $exec, implicit-def $agpr0_agpr1
$agpr0_agpr1 = AV_MOV_B64_IMM_PSEUDO 18446744004990074889, implicit $exec
...
---
name: av_mov_b64_imm_pseudo_vgpr_inv2pi
tracksRegLiveness: true
body: |
bb.0:
; GFX908-LABEL: name: av_mov_b64_imm_pseudo_vgpr_inv2pi
; GFX908: $vgpr0 = V_MOV_B32_e32 1042479491, implicit $exec, implicit-def $vgpr0_vgpr1
; GFX908-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr0_vgpr1
; GFX908-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr2_vgpr3
; GFX908-NEXT: $vgpr3 = V_MOV_B32_e32 1042479491, implicit $exec, implicit-def $vgpr2_vgpr3
; GFX908-NEXT: $vgpr4 = V_MOV_B32_e32 1042479491, implicit $exec, implicit-def $vgpr4_vgpr5
; GFX908-NEXT: $vgpr5 = V_MOV_B32_e32 1042479491, implicit $exec, implicit-def $vgpr4_vgpr5
;
; GFX90A-LABEL: name: av_mov_b64_imm_pseudo_vgpr_inv2pi
; GFX90A: $vgpr0 = V_MOV_B32_e32 1042479491, implicit $exec, implicit-def $vgpr0_vgpr1
; GFX90A-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr0_vgpr1
; GFX90A-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr2_vgpr3
; GFX90A-NEXT: $vgpr3 = V_MOV_B32_e32 1042479491, implicit $exec, implicit-def $vgpr2_vgpr3
; GFX90A-NEXT: $vgpr4_vgpr5 = V_PK_MOV_B32 8, 1042479491, 8, 1042479491, 0, 0, 0, 0, 0, implicit $exec
;
; GFX942-LABEL: name: av_mov_b64_imm_pseudo_vgpr_inv2pi
; GFX942: $vgpr0_vgpr1 = V_MOV_B64_e32 1042479491, implicit $exec
; GFX942-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr2_vgpr3
; GFX942-NEXT: $vgpr3 = V_MOV_B32_e32 1042479491, implicit $exec, implicit-def $vgpr2_vgpr3
; GFX942-NEXT: $vgpr4_vgpr5 = V_PK_MOV_B32 8, 1042479491, 8, 1042479491, 0, 0, 0, 0, 0, implicit $exec
$vgpr0_vgpr1 = AV_MOV_B64_IMM_PSEUDO 1042479491, implicit $exec
$vgpr2_vgpr3 = AV_MOV_B64_IMM_PSEUDO 4477415320595726336, implicit $exec
$vgpr4_vgpr5 = AV_MOV_B64_IMM_PSEUDO 4477415321638205827, implicit $exec
...
---
name: av_mov_b64_imm_pseudo_unaligned_agpr
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b64_imm_pseudo_unaligned_agpr
; CHECK: $agpr1 = V_ACCVGPR_WRITE_B32_e64 9, implicit $exec, implicit-def $agpr1_agpr2
; CHECK-NEXT: $agpr2 = V_ACCVGPR_WRITE_B32_e64 -16, implicit $exec, implicit-def $agpr1_agpr2
$agpr1_agpr2 = AV_MOV_B64_IMM_PSEUDO 18446744004990074889, implicit $exec
...
---
name: av_mov_b64_imm_pseudo_unaligned_vgpr
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b64_imm_pseudo_unaligned_vgpr
; CHECK: $vgpr1 = V_MOV_B32_e32 9, implicit $exec, implicit-def $vgpr1_vgpr2
; CHECK-NEXT: $vgpr2 = V_MOV_B32_e32 -16, implicit $exec, implicit-def $vgpr1_vgpr2
$vgpr1_vgpr2 = AV_MOV_B64_IMM_PSEUDO 18446744004990074889, implicit $exec
...
---
name: av_mov_b64_misalign_vgpr
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b64_misalign_vgpr
; CHECK: $vgpr5 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr5_vgpr6
; CHECK-NEXT: $vgpr6 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr5_vgpr6
$vgpr5_vgpr6 = AV_MOV_B64_IMM_PSEUDO 0, implicit $exec
...
---
name: av_mov_b64_misalign_agpr
body: |
bb.0:
; CHECK-LABEL: name: av_mov_b64_misalign_agpr
; CHECK: $agpr5 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec, implicit-def $agpr5_agpr6
; CHECK-NEXT: $agpr6 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec, implicit-def $agpr5_agpr6
$agpr5_agpr6 = AV_MOV_B64_IMM_PSEUDO 0, implicit $exec
...