Skip to content

Commit 2c94c5c

Browse files
committed
Add upstream test
1 parent fb5d1c3 commit 2c94c5c

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

external/llvm-project/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3501,7 +3501,7 @@ unsigned SIInstrInfo::getFoldableCopySrcIdx(const MachineInstr &MI) {
35013501
case AMDGPU::AV_MOV_B64_IMM_PSEUDO:
35023502
return 1;
35033503
default:
3504-
assert(0 && "MI is not a foldable copy");
3504+
llvm_unreachable("MI is not a foldable copy");
35053505
}
35063506
}
35073507

external/llvm-project/llvm/test/CodeGen/AMDGPU/true16-fold.mir

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ body: |
5959
%4:vgpr_16 = COPY %3:sgpr_lo16
6060
%5:vgpr_32 = V_ALIGNBIT_B32_t16_e64 0, %0:sreg_32, 0, killed %1:sreg_32, 0, killed %4:vgpr_16, 0, 0, implicit $exec
6161
S_ENDPGM 0, implicit %5
62+
...
6263

6364
---
6465
name: fold_16bit_madmix_clamp
@@ -197,3 +198,28 @@ body: |
197198
$vgpr0 = COPY %4
198199
S_ENDPGM 0, implicit $vgpr0
199200
...
201+
202+
---
203+
name: fold_imm16_across_reg_sequence
204+
tracksRegLiveness: true
205+
registers:
206+
body: |
207+
bb.0:
208+
liveins: $vgpr0, $vgpr1, $vgpr2
209+
; CHECK-LABEL: name: fold_imm16_across_reg_sequence
210+
; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2
211+
; CHECK-NEXT: {{ $}}
212+
; CHECK-NEXT: [[V_MOV_B16_t16_e64_:%[0-9]+]]:vgpr_16 = V_MOV_B16_t16_e64 0, -1, 0, implicit $exec
213+
; CHECK-NEXT: [[V_MOV_B16_t16_e64_1:%[0-9]+]]:vgpr_16 = V_MOV_B16_t16_e64 0, -1, 0, implicit $exec
214+
; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[V_MOV_B16_t16_e64_]], %subreg.lo16, [[V_MOV_B16_t16_e64_1]], %subreg.hi16
215+
; CHECK-NEXT: [[V_MAX_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F32_e64 0, -1, 0, -1, 0, 0, implicit $mode, implicit $exec
216+
; CHECK-NEXT: $vgpr0 = COPY [[V_MAX_F32_e64_]]
217+
; CHECK-NEXT: S_ENDPGM 0, implicit $vgpr0
218+
%0:vgpr_16 = V_MOV_B16_t16_e64 0, -1, 0, implicit $exec
219+
%1:vgpr_16 = V_MOV_B16_t16_e64 0, -1, 0, implicit $exec
220+
%2:vgpr_32 = REG_SEQUENCE %0, %subreg.lo16, %1, %subreg.hi16
221+
%3:vgpr_32 = nofpexcept V_MAX_F32_e64 0, %2, 0, %2, 0, 0, implicit $mode, implicit $exec
222+
$vgpr0 = COPY %3
223+
S_ENDPGM 0, implicit $vgpr0
224+
...
225+

0 commit comments

Comments
 (0)