Skip to content

Commit 60e53d2

Browse files
authored
[PowerPC] Implement 32byte indexed paired ld and st instruction (#160767)
1 parent 9c26170 commit 60e53d2

File tree

4 files changed

+28
-0
lines changed

4 files changed

+28
-0
lines changed

llvm/lib/Target/PowerPC/PPCInstrFuture.td

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,10 @@ let Predicates = [HasVSX, IsISAFuture] in {
360360
def LXVPRLL : XForm_XTp5_RAB5<31, 621, (outs vsrprc:$XTp),
361361
(ins (memr $RA):$addr, g8rc:$RB),
362362
"lxvprll $XTp, $addr, $RB", IIC_LdStLFD, []>;
363+
def LXVPB32X
364+
: XForm_XTp5_RAB5<31, 877, (outs vsrprc:$XTp),
365+
(ins (memr $RA):$addr, g8rc:$RB),
366+
"lxvpb32x $XTp, $addr, $RB", IIC_LdStLFD, []>;
363367
}
364368

365369
let mayStore = 1 in {
@@ -376,6 +380,10 @@ let Predicates = [HasVSX, IsISAFuture] in {
376380
: XForm_XTp5_RAB5<31, 749, (outs),
377381
(ins vsrprc:$XTp, (memr $RA):$addr, g8rc:$RB),
378382
"stxvprll $XTp, $addr, $RB", IIC_LdStLFD, []>;
383+
def STXVPB32X
384+
: XForm_XTp5_RAB5<31, 1005, (outs),
385+
(ins vsrprc:$XTp, (memr $RA):$addr, g8rc:$RB),
386+
"stxvpb32x $XTp, $addr, $RB", IIC_LdStLFD, []>;
379387
}
380388

381389
def VUPKHSNTOB : VXForm_VRTB5<387, 0, (outs vrrc:$VRT), (ins vrrc:$VRB),

llvm/test/MC/Disassembler/PowerPC/ppc-encoding-ISAFuture.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,18 @@
8282
#CHECK: lxvprll 6, 2, 1
8383
0x7c 0xc2 0x0c 0xda
8484

85+
#CHECK: lxvpb32x 2, 15, 16
86+
0x7c,0x4f,0x86,0xda
87+
8588
#CHECK: stxvprl 0, 1, 2
8689
0x7c 0x01 0x15 0x9a
8790

8891
#CHECK: stxvprll 6, 0, 1
8992
0x7c 0xc0 0x0d 0xda
9093

94+
#CHECK: stxvpb32x 2, 15, 16
95+
0x7c,0x4f,0x87,0xda
96+
9197
#CHECK: dmxvi8gerx4 1, 2, 4
9298
0xec,0x82,0x20,0x58
9399

llvm/test/MC/Disassembler/PowerPC/ppc64le-encoding-ISAFuture.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,18 @@
7676
#CHECK: lxvprll 6, 2, 1
7777
0xda 0x0c 0xc2 0x7c
7878

79+
#CHECK: lxvpb32x 2, 15, 16
80+
0xda,0x86,0x4f,0x7c
81+
7982
#CHECK: stxvprl 0, 1, 2
8083
0x9a 0x15 0x01 0x7c
8184

8285
#CHECK: stxvprll 6, 0, 1
8386
0xda 0x0d 0xc0 0x7c
8487

88+
#CHECK: stxvpb32x 2, 15, 16
89+
0xda,0x87,0x4f,0x7c
90+
8591
#CHECK: dmxvi8gerx4 1, 2, 4
8692
0x58,0x20,0x82,0xec
8793

llvm/test/MC/PowerPC/ppc-encoding-ISAFuture.s

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,10 @@
105105
# CHECK-LE: lxvprll 6, 2, 1 # encoding: [0xda,0x0c,0xc2,0x7c]
106106
lxvprll 6, 2, 1
107107

108+
lxvpb32x 2, 15, 16
109+
#CHECK-BE: lxvpb32x 2, 15, 16 # encoding: [0x7c,0x4f,0x86,0xda]
110+
#CHECK-LE: lxvpb32x 2, 15, 16 # encoding: [0xda,0x86,0x4f,0x7c]
111+
108112
# CHECK-BE: stxvprl 0, 1, 2 # encoding: [0x7c,0x01,0x15,0x9a]
109113
# CHECK-LE: stxvprl 0, 1, 2 # encoding: [0x9a,0x15,0x01,0x7c]
110114
stxvprl 0, 1, 2
@@ -113,6 +117,10 @@
113117
# CHECK-LE: stxvprll 6, 0, 1 # encoding: [0xda,0x0d,0xc0,0x7c]
114118
stxvprll 6, 0, 1
115119

120+
stxvpb32x 2, 15, 16
121+
#CHECK-BE: stxvpb32x 2, 15, 16 # encoding: [0x7c,0x4f,0x87,0xda]
122+
#CHECK-LE: stxvpb32x 2, 15, 16 # encoding: [0xda,0x87,0x4f,0x7c]
123+
116124
dmxvi8gerx4 1, 2, 4
117125
# CHECK-BE: dmxvi8gerx4 1, 2, 4 # encoding: [0xec,0x82,0x20,0x58]
118126
# CHECK-LE: dmxvi8gerx4 1, 2, 4 # encoding: [0x58,0x20,0x82,0xec]

0 commit comments

Comments
 (0)