File tree Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -1487,7 +1487,9 @@ void MachineVerifier::verifyPreISelGenericInstruction(const MachineInstr *MI) {
1487
1487
LLT SrcTy = MRI->getType (MI->getOperand (NumDsts).getReg ());
1488
1488
if (DstTy.isVector ()) {
1489
1489
// This case is the converse of G_CONCAT_VECTORS.
1490
- if (!SrcTy.isVector () || SrcTy.getScalarType () != DstTy.getScalarType () ||
1490
+ if (!SrcTy.isVector () ||
1491
+ (SrcTy.getScalarType () != DstTy.getScalarType () &&
1492
+ !SrcTy.isPointerVector ()) ||
1491
1493
SrcTy.isScalableVector () != DstTy.isScalableVector () ||
1492
1494
SrcTy.getSizeInBits () != NumDsts * DstTy.getSizeInBits ())
1493
1495
report (" G_UNMERGE_VALUES source operand does not match vector "
Original file line number Diff line number Diff line change
1
+ ; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2
+ ; RUN: llc -O0 -mtriple=aarch64-linux-gnu -global-isel -verify-machineinstrs -stop-after=irtranslator %s -o - | FileCheck %s
3
+
4
+ define <4 x ptr > @vector_gep_v4i32 (<4 x ptr > %b , <4 x i32 > %off ) {
5
+ ; CHECK-LABEL: name: vector_gep_v4i32
6
+ ; CHECK: bb.1.entry:
7
+ ; CHECK-NEXT: liveins: $q0, $q1, $q2
8
+ ; CHECK-NEXT: {{ $}}
9
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
10
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
11
+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x p0>) = G_CONCAT_VECTORS [[COPY]](<2 x s64>), [[COPY1]](<2 x s64>)
12
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x s32>) = COPY $q2
13
+ ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(<4 x s64>) = G_SEXT [[COPY2]](<4 x s32>)
14
+ ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(<4 x p0>) = G_PTR_ADD [[CONCAT_VECTORS]], [[SEXT]](<4 x s64>)
15
+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<4 x p0>) = COPY [[PTR_ADD]](<4 x p0>)
16
+ ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x s64>), [[UV1:%[0-9]+]]:_(<2 x s64>) = G_UNMERGE_VALUES [[COPY3]](<4 x p0>)
17
+ ; CHECK-NEXT: $q0 = COPY [[UV]](<2 x s64>)
18
+ ; CHECK-NEXT: $q1 = COPY [[UV1]](<2 x s64>)
19
+ ; CHECK-NEXT: RET_ReallyLR implicit $q0, implicit $q1
20
+ entry:
21
+ %g = getelementptr i8 , <4 x ptr > %b , <4 x i32 > %off
22
+ ret <4 x ptr > %g
23
+ }
You can’t perform that action at this time.
0 commit comments