Skip to content

Commit 2a8a66a

Browse files
committed
add a new tablerec SRAW8
1 parent 8f3a298 commit 2a8a66a

File tree

6 files changed

+14
-8
lines changed

6 files changed

+14
-8
lines changed

llvm/lib/Target/PowerPC/P10InstrResources.td

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,8 @@ def : InstRW<[P10W_F2_4C, P10W_DISP_EVEN, P10W_DISP_ANY, P10F2_Read],
833833
def : InstRW<[P10W_F2_4C, P10W_DISP_EVEN, P10W_DISP_ANY, P10F2_Read, P10F2_Read],
834834
(instrs
835835
SRAD_rec,
836-
SRAW_rec
836+
SRAW_rec,
837+
SRAW8_rec
837838
)>;
838839

839840
// 2-way crack instructions
@@ -1008,7 +1009,7 @@ def : InstRW<[P10W_FX_3C, P10W_DISP_ANY, P10FX_Read, P10FX_Read],
10081009
SLD,
10091010
SLW, SLW8,
10101011
SRAD,
1011-
SRAW,
1012+
SRAW, SRAW8,
10121013
SRD,
10131014
SRW, SRW8,
10141015
SUBF, SUBF8,

llvm/lib/Target/PowerPC/P9InstrResources.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ def : InstRW<[P9_ALU_2C, IP_EXEC_1C, DISP_3SLOTS_1C],
189189
(instregex "F(N)?ABS(D|S)$"),
190190
(instregex "FNEG(D|S)$"),
191191
(instregex "FCPSGN(D|S)$"),
192-
(instregex "SRAW(I)?$"),
192+
(instregex "SRAW(I|8)?$"),
193193
(instregex "ISEL(8)?$"),
194194
RLDIMI,
195195
XSIEXPDP,
@@ -1091,7 +1091,7 @@ def : InstRW<[P9_ALUOpAndALUOp_4C, IP_EXEC_1C, IP_EXEC_1C,
10911091
(instregex "RLD(I)?C(R|L)_rec$"),
10921092
(instregex "RLW(IMI|INM|NM)(8)?_rec$"),
10931093
(instregex "SLW(8)?_rec$"),
1094-
(instregex "SRAW(I)?_rec$"),
1094+
(instregex "SRAW(8|I)?_rec$"),
10951095
(instregex "SRW(8)?_rec$"),
10961096
RLDICL_32_rec,
10971097
RLDIMI_rec

llvm/lib/Target/PowerPC/PPCInstr64Bit.td

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -932,6 +932,11 @@ defm SLW8 : XForm_6r<31, 24, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
932932
"slw", "$RA, $RST, $RB", IIC_IntGeneral, []>, ZExt32To64;
933933
defm SRW8 : XForm_6r<31, 536, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
934934
"srw", "$RA, $RST, $RB", IIC_IntGeneral, []>, ZExt32To64;
935+
936+
defm SRAW8 : XForm_6rc<31, 792, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
937+
"sraw", "$RA, $RST, $RB", IIC_IntShift,
938+
[(set i64:$RA, (PPCsra i64:$RST, i64:$RB))]>, SExt32To64;
939+
935940
} // Interpretation64Bit
936941

937942
// For fast-isel:

llvm/lib/Target/PowerPC/PPCInstrInfo.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2408,7 +2408,7 @@ defm SRW : XForm_6r<31, 536, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
24082408
[(set i32:$RA, (PPCsrl i32:$RST, i32:$RB))]>, ZExt32To64;
24092409
defm SRAW : XForm_6rc<31, 792, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
24102410
"sraw", "$RA, $RST, $RB", IIC_IntShift,
2411-
[(set i32:$RA, (PPCsra i32:$RST, i32:$RB))]>;
2411+
[(set i32:$RA, (PPCsra i32:$RST, i32:$RB))]>, SExt32To64;
24122412
}
24132413

24142414
def : InstAlias<"mr $rA, $rB", (OR gprc:$rA, gprc:$rB, gprc:$rB)>;

llvm/lib/Target/PowerPC/PPCScheduleP7.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ let SchedModel = P7Model in {
216216
RLWNM, RLWNM8, RLWNM_rec, RLDIMI, RLDIMI_rec,
217217
RLDICL_32, RLDICL_32_64, RLDICL_32_rec, RLDICR_32, RLWINM8_rec, RLWNM8_rec,
218218
SLD, SLD_rec, SLW, SLW8, SLW_rec, SLW8_rec, SRD, SRD_rec, SRW, SRW8, SRW_rec,
219-
SRW8_rec, SRADI, SRADI_rec, SRAWI, SRAWI_rec, SRAD, SRAD_rec, SRAW, SRAW_rec,
219+
SRW8_rec, SRADI, SRADI_rec, SRAWI, SRAWI_rec, SRAD, SRAD_rec, SRAW, SRAW_rec, SRAW8, SRAW8_rec,
220220
SRADI_32, SUBFE, SUBFE8, SUBFE8O_rec, SUBFEO_rec
221221
)>;
222222

llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs-out-of-range.mir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,7 @@ body: |
722722
%3 = COPY %0.sub_32
723723
%4 = SRAW killed %3, killed %2, implicit-def dead $carry
724724
; CHECK: LI 48
725-
; CHECK: SRAW killed %3, killed %2, implicit-def dead $carry
725+
; CHECK: SRAW8 killed %7, killed %9, implicit-def $carry, implicit-def dead $carry
726726
; CHECK-LATE: sraw 3, 3, 4
727727
%5 = EXTSW_32_64 killed %4
728728
$x3 = COPY %5
@@ -779,7 +779,7 @@ body: |
779779
%2 = LI 80
780780
%3 = COPY %0.sub_32
781781
%4 = SRAW_rec killed %3, %2, implicit-def dead $carry, implicit-def $cr0
782-
; CHECK: SRAW_rec killed %3, %2, implicit-def dead $carry, implicit-def $cr0
782+
; CHECK: killed %10, killed %12, implicit-def $carry, implicit-def $cr0, implicit-def dead $carry, implicit-def $cr0
783783
; CHECK-LATE: sraw. 3, 3, 4
784784
%5 = COPY killed $cr0
785785
%6 = ISEL %2, %4, %5.sub_eq

0 commit comments

Comments
 (0)