Skip to content

Commit 7e2bf68

Browse files
committed
!fixup update tests and use MMO.
1 parent 9800b2c commit 7e2bf68

File tree

2 files changed

+11
-15
lines changed

2 files changed

+11
-15
lines changed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21262,17 +21262,18 @@ static SDValue combineV3I8LoadExt(LoadSDNode *LD, SelectionDAG &DAG) {
2126221262
return SDValue();
2126321263

2126421264
SDLoc DL(LD);
21265+
MachineFunction &MF = DAG.getMachineFunction();
2126521266
SDValue Chain = LD->getChain();
2126621267
SDValue BasePtr = LD->getBasePtr();
21268+
MachineMemOperand *MMO = LD->getMemOperand();
2126721269
assert(LD->getOffset().isUndef() && "undef offset expected");
2126821270

2126921271
// Load 2 x i8, then 1 x i8.
21270-
SDValue L16 = DAG.getLoad(MVT::i16, DL, Chain, BasePtr, LD->getPointerInfo(),
21271-
LD->getOriginalAlign());
21272+
SDValue L16 = DAG.getLoad(MVT::i16, DL, Chain, BasePtr, MMO);
2127221273
TypeSize Offset2 = TypeSize::getFixed(2);
21273-
SDValue L8 = DAG.getLoad(
21274-
MVT::i8, DL, Chain, DAG.getMemBasePlusOffset(BasePtr, Offset2, DL),
21275-
LD->getPointerInfo(), commonAlignment(LD->getOriginalAlign(), Offset2));
21274+
SDValue L8 = DAG.getLoad(MVT::i8, DL, Chain,
21275+
DAG.getMemBasePlusOffset(BasePtr, Offset2, DL),
21276+
MF.getMachineMemOperand(MMO, 2, 1));
2127621277

2127721278
// Extend to i32.
2127821279
SDValue Ext16 = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::i32, L16);

llvm/test/CodeGen/AArch64/vec3-loads-ext-trunc-stores.ll

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,19 +76,14 @@ define <4 x i32> @load_v3i8_to_4xi32(ptr %src) {
7676
define <4 x i32> @load_v3i8_to_4xi32_align_2(ptr %src) {
7777
; CHECK-LABEL: load_v3i8_to_4xi32_align_2:
7878
; CHECK: ; %bb.0:
79-
; CHECK-NEXT: sub sp, sp, #16
80-
; CHECK-NEXT: .cfi_def_cfa_offset 16
81-
; CHECK-NEXT: ldrh w8, [x0]
79+
; CHECK-NEXT: ldrb w8, [x0, #2]
80+
; CHECK-NEXT: ldrh w9, [x0]
8281
; CHECK-NEXT: movi.2d v1, #0x0000ff000000ff
83-
; CHECK-NEXT: strh w8, [sp, #12]
84-
; CHECK-NEXT: ldr s0, [sp, #12]
85-
; CHECK-NEXT: ldrsb w8, [x0, #2]
86-
; CHECK-NEXT: ushll.8h v0, v0, #0
87-
; CHECK-NEXT: mov.h v0[1], v0[1]
88-
; CHECK-NEXT: mov.h v0[2], w8
82+
; CHECK-NEXT: orr w8, w9, w8, lsl #16
83+
; CHECK-NEXT: fmov s0, w8
84+
; CHECK-NEXT: zip1.8b v0, v0, v0
8985
; CHECK-NEXT: ushll.4s v0, v0, #0
9086
; CHECK-NEXT: and.16b v0, v0, v1
91-
; CHECK-NEXT: add sp, sp, #16
9287
; CHECK-NEXT: ret
9388
;
9489
; BE-LABEL: load_v3i8_to_4xi32_align_2:

0 commit comments

Comments
 (0)