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) {
14871487 LLT SrcTy = MRI->getType (MI->getOperand (NumDsts).getReg ());
14881488 if (DstTy.isVector ()) {
14891489 // 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 ()) ||
14911493 SrcTy.isScalableVector () != DstTy.isScalableVector () ||
14921494 SrcTy.getSizeInBits () != NumDsts * DstTy.getSizeInBits ())
14931495 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