mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Revert "R600/SI: Fix incorrect encoding of DS_WRITE_B32 instructions"
This reverts commit a6a39ced09
.
This is the wrong version of this fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188523 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a6a39ced09
commit
b07ec96068
@ -134,7 +134,9 @@ Counters SIInsertWaits::getHwCounts(MachineInstr &MI) {
|
||||
// LGKM may uses larger values
|
||||
if (TSFlags & SIInstrFlags::LGKM_CNT) {
|
||||
|
||||
const MachineOperand &Op = MI.getOperand(0);
|
||||
MachineOperand &Op = MI.getOperand(0);
|
||||
if (!Op.isReg())
|
||||
Op = MI.getOperand(1);
|
||||
assert(Op.isReg() && "First LGKM operand must be a register!");
|
||||
|
||||
unsigned Reg = Op.getReg();
|
||||
|
@ -342,8 +342,8 @@ class VOP3_64 <bits<9> op, string opName, list<dag> pattern> : VOP3 <
|
||||
class DS_Load_Helper <bits<8> op, string asm, RegisterClass regClass> : DS <
|
||||
op,
|
||||
(outs regClass:$vdst),
|
||||
(ins VReg_32:$addr, VReg_32:$data0, VReg_32:$data1,
|
||||
i8imm:$offset0, i8imm:$offset1, i1imm:$gds),
|
||||
(ins i1imm:$gds, VReg_32:$addr, VReg_32:$data0, VReg_32:$data1,
|
||||
i8imm:$offset0, i8imm:$offset1),
|
||||
asm#" $vdst, $gds, $addr, $data0, $data1, $offset0, $offset1, [M0]",
|
||||
[]> {
|
||||
let mayLoad = 1;
|
||||
@ -353,8 +353,8 @@ class DS_Load_Helper <bits<8> op, string asm, RegisterClass regClass> : DS <
|
||||
class DS_Store_Helper <bits<8> op, string asm, RegisterClass regClass> : DS <
|
||||
op,
|
||||
(outs),
|
||||
(ins VReg_32:$addr, VReg_32:$data0, VReg_32:$data1,
|
||||
i8imm:$offset0, i8imm:$offset1, i1imm:$gds),
|
||||
(ins i1imm:$gds, VReg_32:$addr, VReg_32:$data0, VReg_32:$data1,
|
||||
i8imm:$offset0, i8imm:$offset1),
|
||||
asm#" $gds, $addr, $data0, $data1, $offset0, $offset1, [M0]",
|
||||
[]> {
|
||||
let mayStore = 1;
|
||||
|
@ -1745,13 +1745,13 @@ def : Pat <
|
||||
|
||||
def : Pat <
|
||||
(local_load i64:$src0),
|
||||
(i32 (DS_READ_B32 (EXTRACT_SUBREG $src0, sub0),
|
||||
(EXTRACT_SUBREG $src0, sub0), (EXTRACT_SUBREG $src0, sub0), 0, 0, 0))
|
||||
(i32 (DS_READ_B32 0, (EXTRACT_SUBREG $src0, sub0),
|
||||
(EXTRACT_SUBREG $src0, sub0), (EXTRACT_SUBREG $src0, sub0), 0, 0))
|
||||
>;
|
||||
|
||||
def : Pat <
|
||||
(local_store i32:$src1, i64:$src0),
|
||||
(DS_WRITE_B32 (EXTRACT_SUBREG $src0, sub0), $src1, $src1, 0, 0, 0)
|
||||
(DS_WRITE_B32 0, (EXTRACT_SUBREG $src0, sub0), $src1, $src1, 0, 0)
|
||||
>;
|
||||
|
||||
/********** ================== **********/
|
||||
|
@ -13,7 +13,7 @@
|
||||
; SI-CHECK-NEXT: .long 32768
|
||||
|
||||
; EG-CHECK: LDS_WRITE
|
||||
; SI-CHECK: DS_WRITE_B32 0
|
||||
; SI-CHECK: DS_WRITE_B32
|
||||
|
||||
; GROUP_BARRIER must be the last instruction in a clause
|
||||
; EG-CHECK: GROUP_BARRIER
|
||||
@ -21,7 +21,7 @@
|
||||
; SI-CHECK: S_BARRIER
|
||||
|
||||
; EG-CHECK: LDS_READ_RET
|
||||
; SI-CHECK: DS_READ_B32 VGPR{{[0-9]}}, 0
|
||||
; SI-CHECK: DS_READ_B32
|
||||
|
||||
define void @local_memory(i32 addrspace(1)* %out) {
|
||||
entry:
|
||||
|
Loading…
Reference in New Issue
Block a user