| # 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 |
| ... |