Skip to content

Commit 15980a1

Browse files
committed
Switch the position of rs1 and rs2 for lea instruction
In Zba, rs1 is index register and rs2 is base register. But for lea instructions, rs1 is base register and rs2 is index register.
1 parent 9fb0458 commit 15980a1

File tree

3 files changed

+156
-152
lines changed

3 files changed

+156
-152
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfoXAndes.td

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -125,16 +125,20 @@ class NDSRVInstBFO<bits<3> funct3, string opcodestr>
125125
let mayStore = 0;
126126
}
127127

128-
class NDSRVInstRR<bits<7> funct7, string opcodestr>
128+
class NDSRVInstRR<bits<7> funct7, string opcodestr,
129+
string argstr = "$rd, $rs1, $rs2">
129130
: RVInstR<funct7, 0b000, OPC_CUSTOM_2,
130131
(outs GPR:$rd), (ins GPR:$rs1, GPR:$rs2),
131-
opcodestr, "$rd, $rs1, $rs2">,
132+
opcodestr, argstr>,
132133
Sched<[WriteIALU, ReadIALU, ReadIALU]> {
133134
let hasSideEffects = 0;
134135
let mayLoad = 0;
135136
let mayStore = 0;
136137
}
137138

139+
class NDSRVInstLEA<bits<7> funct7, string opcodestr>
140+
: NDSRVInstRR<funct7, opcodestr, "$rd, $rs2, $rs1">;
141+
138142
// GP: ADDI, LB, LBU
139143
class NDSRVInstLBGP<bits<2> funct2, string opcodestr>
140144
: RVInst<(outs GPR:$rd), (ins simm18:$imm18),
@@ -321,9 +325,9 @@ def NDS_BNEC : NDSRVInstBC<0b110, "nds.bnec">;
321325
def NDS_BFOS : NDSRVInstBFO<0b011, "nds.bfos">;
322326
def NDS_BFOZ : NDSRVInstBFO<0b010, "nds.bfoz">;
323327

324-
def NDS_LEA_H : NDSRVInstRR<0b0000101, "nds.lea.h">;
325-
def NDS_LEA_W : NDSRVInstRR<0b0000110, "nds.lea.w">;
326-
def NDS_LEA_D : NDSRVInstRR<0b0000111, "nds.lea.d">;
328+
def NDS_LEA_H : NDSRVInstLEA<0b0000101, "nds.lea.h">;
329+
def NDS_LEA_W : NDSRVInstLEA<0b0000110, "nds.lea.w">;
330+
def NDS_LEA_D : NDSRVInstLEA<0b0000111, "nds.lea.d">;
327331

328332
let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in
329333
def NDS_ADDIGP : NDSRVInstLBGP<0b01, "nds.addigp">;
@@ -345,10 +349,10 @@ def NDS_FLMISM : NDSRVInstRR<0b0010011, "nds.flmism">;
345349
} // Predicates = [HasVendorXAndesPerf]
346350

347351
let Predicates = [HasVendorXAndesPerf, IsRV64] in {
348-
def NDS_LEA_B_ZE : NDSRVInstRR<0b0001000, "nds.lea.b.ze">;
349-
def NDS_LEA_H_ZE : NDSRVInstRR<0b0001001, "nds.lea.h.ze">;
350-
def NDS_LEA_W_ZE : NDSRVInstRR<0b0001010, "nds.lea.w.ze">;
351-
def NDS_LEA_D_ZE : NDSRVInstRR<0b0001011, "nds.lea.d.ze">;
352+
def NDS_LEA_B_ZE : NDSRVInstLEA<0b0001000, "nds.lea.b.ze">;
353+
def NDS_LEA_H_ZE : NDSRVInstLEA<0b0001001, "nds.lea.h.ze">;
354+
def NDS_LEA_W_ZE : NDSRVInstLEA<0b0001010, "nds.lea.w.ze">;
355+
def NDS_LEA_D_ZE : NDSRVInstLEA<0b0001011, "nds.lea.d.ze">;
352356

353357
def NDS_LWUGP : NDSRVInstLWGP<0b110, "nds.lwugp">;
354358
def NDS_LDGP : NDSRVInstLDGP<0b011, "nds.ldgp">;

llvm/test/CodeGen/RISCV/rv32zba.ll

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ define signext i16 @sh1add(i64 %0, ptr %1) {
2222
;
2323
; RV32XANDESPERF-LABEL: sh1add:
2424
; RV32XANDESPERF: # %bb.0:
25-
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a2
25+
; RV32XANDESPERF-NEXT: nds.lea.h a0, a2, a0
2626
; RV32XANDESPERF-NEXT: lh a0, 0(a0)
2727
; RV32XANDESPERF-NEXT: ret
2828
%3 = getelementptr inbounds i16, ptr %1, i64 %0
@@ -46,7 +46,7 @@ define i32 @sh2add(i64 %0, ptr %1) {
4646
;
4747
; RV32XANDESPERF-LABEL: sh2add:
4848
; RV32XANDESPERF: # %bb.0:
49-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a2
49+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a2, a0
5050
; RV32XANDESPERF-NEXT: lw a0, 0(a0)
5151
; RV32XANDESPERF-NEXT: ret
5252
%3 = getelementptr inbounds i32, ptr %1, i64 %0
@@ -72,7 +72,7 @@ define i64 @sh3add(i64 %0, ptr %1) {
7272
;
7373
; RV32XANDESPERF-LABEL: sh3add:
7474
; RV32XANDESPERF: # %bb.0:
75-
; RV32XANDESPERF-NEXT: nds.lea.d a1, a0, a2
75+
; RV32XANDESPERF-NEXT: nds.lea.d a1, a2, a0
7676
; RV32XANDESPERF-NEXT: lw a0, 0(a1)
7777
; RV32XANDESPERF-NEXT: lw a1, 4(a1)
7878
; RV32XANDESPERF-NEXT: ret
@@ -99,7 +99,7 @@ define i32 @addmul6(i32 %a, i32 %b) {
9999
; RV32XANDESPERF-LABEL: addmul6:
100100
; RV32XANDESPERF: # %bb.0:
101101
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a0
102-
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a1
102+
; RV32XANDESPERF-NEXT: nds.lea.h a0, a1, a0
103103
; RV32XANDESPERF-NEXT: ret
104104
%c = mul i32 %a, 6
105105
%d = add i32 %c, %b
@@ -123,7 +123,7 @@ define i32 @addmul10(i32 %a, i32 %b) {
123123
; RV32XANDESPERF-LABEL: addmul10:
124124
; RV32XANDESPERF: # %bb.0:
125125
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a0
126-
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a1
126+
; RV32XANDESPERF-NEXT: nds.lea.h a0, a1, a0
127127
; RV32XANDESPERF-NEXT: ret
128128
%c = mul i32 %a, 10
129129
%d = add i32 %c, %b
@@ -148,7 +148,7 @@ define i32 @addmul12(i32 %a, i32 %b) {
148148
; RV32XANDESPERF-LABEL: addmul12:
149149
; RV32XANDESPERF: # %bb.0:
150150
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a0
151-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a1
151+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a1, a0
152152
; RV32XANDESPERF-NEXT: ret
153153
%c = mul i32 %a, 12
154154
%d = add i32 %c, %b
@@ -172,7 +172,7 @@ define i32 @addmul18(i32 %a, i32 %b) {
172172
; RV32XANDESPERF-LABEL: addmul18:
173173
; RV32XANDESPERF: # %bb.0:
174174
; RV32XANDESPERF-NEXT: nds.lea.d a0, a0, a0
175-
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a1
175+
; RV32XANDESPERF-NEXT: nds.lea.h a0, a1, a0
176176
; RV32XANDESPERF-NEXT: ret
177177
%c = mul i32 %a, 18
178178
%d = add i32 %c, %b
@@ -196,7 +196,7 @@ define i32 @addmul20(i32 %a, i32 %b) {
196196
; RV32XANDESPERF-LABEL: addmul20:
197197
; RV32XANDESPERF: # %bb.0:
198198
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a0
199-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a1
199+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a1, a0
200200
; RV32XANDESPERF-NEXT: ret
201201
%c = mul i32 %a, 20
202202
%d = add i32 %c, %b
@@ -221,7 +221,7 @@ define i32 @addmul24(i32 %a, i32 %b) {
221221
; RV32XANDESPERF-LABEL: addmul24:
222222
; RV32XANDESPERF: # %bb.0:
223223
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a0
224-
; RV32XANDESPERF-NEXT: nds.lea.d a0, a0, a1
224+
; RV32XANDESPERF-NEXT: nds.lea.d a0, a1, a0
225225
; RV32XANDESPERF-NEXT: ret
226226
%c = mul i32 %a, 24
227227
%d = add i32 %c, %b
@@ -245,7 +245,7 @@ define i32 @addmul36(i32 %a, i32 %b) {
245245
; RV32XANDESPERF-LABEL: addmul36:
246246
; RV32XANDESPERF: # %bb.0:
247247
; RV32XANDESPERF-NEXT: nds.lea.d a0, a0, a0
248-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a1
248+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a1, a0
249249
; RV32XANDESPERF-NEXT: ret
250250
%c = mul i32 %a, 36
251251
%d = add i32 %c, %b
@@ -269,7 +269,7 @@ define i32 @addmul40(i32 %a, i32 %b) {
269269
; RV32XANDESPERF-LABEL: addmul40:
270270
; RV32XANDESPERF: # %bb.0:
271271
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a0
272-
; RV32XANDESPERF-NEXT: nds.lea.d a0, a0, a1
272+
; RV32XANDESPERF-NEXT: nds.lea.d a0, a1, a0
273273
; RV32XANDESPERF-NEXT: ret
274274
%c = mul i32 %a, 40
275275
%d = add i32 %c, %b
@@ -293,7 +293,7 @@ define i32 @addmul72(i32 %a, i32 %b) {
293293
; RV32XANDESPERF-LABEL: addmul72:
294294
; RV32XANDESPERF: # %bb.0:
295295
; RV32XANDESPERF-NEXT: nds.lea.d a0, a0, a0
296-
; RV32XANDESPERF-NEXT: nds.lea.d a0, a0, a1
296+
; RV32XANDESPERF-NEXT: nds.lea.d a0, a1, a0
297297
; RV32XANDESPERF-NEXT: ret
298298
%c = mul i32 %a, 72
299299
%d = add i32 %c, %b
@@ -383,7 +383,7 @@ define i32 @mul258(i32 %a) {
383383
; RV32XANDESPERF-LABEL: mul258:
384384
; RV32XANDESPERF: # %bb.0:
385385
; RV32XANDESPERF-NEXT: slli a1, a0, 8
386-
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a1
386+
; RV32XANDESPERF-NEXT: nds.lea.h a0, a1, a0
387387
; RV32XANDESPERF-NEXT: ret
388388
%c = mul i32 %a, 258
389389
ret i32 %c
@@ -405,7 +405,7 @@ define i32 @mul260(i32 %a) {
405405
; RV32XANDESPERF-LABEL: mul260:
406406
; RV32XANDESPERF: # %bb.0:
407407
; RV32XANDESPERF-NEXT: slli a1, a0, 8
408-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a1
408+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a1, a0
409409
; RV32XANDESPERF-NEXT: ret
410410
%c = mul i32 %a, 260
411411
ret i32 %c
@@ -427,7 +427,7 @@ define i32 @mul264(i32 %a) {
427427
; RV32XANDESPERF-LABEL: mul264:
428428
; RV32XANDESPERF: # %bb.0:
429429
; RV32XANDESPERF-NEXT: slli a1, a0, 8
430-
; RV32XANDESPERF-NEXT: nds.lea.d a0, a0, a1
430+
; RV32XANDESPERF-NEXT: nds.lea.d a0, a1, a0
431431
; RV32XANDESPERF-NEXT: ret
432432
%c = mul i32 %a, 264
433433
ret i32 %c
@@ -449,7 +449,7 @@ define i32 @mul11(i32 %a) {
449449
; RV32XANDESPERF-LABEL: mul11:
450450
; RV32XANDESPERF: # %bb.0:
451451
; RV32XANDESPERF-NEXT: nds.lea.w a1, a0, a0
452-
; RV32XANDESPERF-NEXT: nds.lea.h a0, a1, a0
452+
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a1
453453
; RV32XANDESPERF-NEXT: ret
454454
%c = mul i32 %a, 11
455455
ret i32 %c
@@ -471,7 +471,7 @@ define i32 @mul19(i32 %a) {
471471
; RV32XANDESPERF-LABEL: mul19:
472472
; RV32XANDESPERF: # %bb.0:
473473
; RV32XANDESPERF-NEXT: nds.lea.d a1, a0, a0
474-
; RV32XANDESPERF-NEXT: nds.lea.h a0, a1, a0
474+
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a1
475475
; RV32XANDESPERF-NEXT: ret
476476
%c = mul i32 %a, 19
477477
ret i32 %c
@@ -493,7 +493,7 @@ define i32 @mul13(i32 %a) {
493493
; RV32XANDESPERF-LABEL: mul13:
494494
; RV32XANDESPERF: # %bb.0:
495495
; RV32XANDESPERF-NEXT: nds.lea.h a1, a0, a0
496-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a1, a0
496+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a1
497497
; RV32XANDESPERF-NEXT: ret
498498
%c = mul i32 %a, 13
499499
ret i32 %c
@@ -515,7 +515,7 @@ define i32 @mul21(i32 %a) {
515515
; RV32XANDESPERF-LABEL: mul21:
516516
; RV32XANDESPERF: # %bb.0:
517517
; RV32XANDESPERF-NEXT: nds.lea.w a1, a0, a0
518-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a1, a0
518+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a1
519519
; RV32XANDESPERF-NEXT: ret
520520
%c = mul i32 %a, 21
521521
ret i32 %c
@@ -537,7 +537,7 @@ define i32 @mul37(i32 %a) {
537537
; RV32XANDESPERF-LABEL: mul37:
538538
; RV32XANDESPERF: # %bb.0:
539539
; RV32XANDESPERF-NEXT: nds.lea.d a1, a0, a0
540-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a1, a0
540+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a1
541541
; RV32XANDESPERF-NEXT: ret
542542
%c = mul i32 %a, 37
543543
ret i32 %c
@@ -581,7 +581,7 @@ define i32 @mul41(i32 %a) {
581581
; RV32XANDESPERF-LABEL: mul41:
582582
; RV32XANDESPERF: # %bb.0:
583583
; RV32XANDESPERF-NEXT: nds.lea.w a1, a0, a0
584-
; RV32XANDESPERF-NEXT: nds.lea.d a0, a1, a0
584+
; RV32XANDESPERF-NEXT: nds.lea.d a0, a0, a1
585585
; RV32XANDESPERF-NEXT: ret
586586
%c = mul i32 %a, 41
587587
ret i32 %c
@@ -603,7 +603,7 @@ define i32 @mul73(i32 %a) {
603603
; RV32XANDESPERF-LABEL: mul73:
604604
; RV32XANDESPERF: # %bb.0:
605605
; RV32XANDESPERF-NEXT: nds.lea.d a1, a0, a0
606-
; RV32XANDESPERF-NEXT: nds.lea.d a0, a1, a0
606+
; RV32XANDESPERF-NEXT: nds.lea.d a0, a0, a1
607607
; RV32XANDESPERF-NEXT: ret
608608
%c = mul i32 %a, 73
609609
ret i32 %c
@@ -692,7 +692,7 @@ define i32 @mul4098(i32 %a) {
692692
; RV32XANDESPERF-LABEL: mul4098:
693693
; RV32XANDESPERF: # %bb.0:
694694
; RV32XANDESPERF-NEXT: slli a1, a0, 12
695-
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a1
695+
; RV32XANDESPERF-NEXT: nds.lea.h a0, a1, a0
696696
; RV32XANDESPERF-NEXT: ret
697697
%c = mul i32 %a, 4098
698698
ret i32 %c
@@ -715,7 +715,7 @@ define i32 @mul4100(i32 %a) {
715715
; RV32XANDESPERF-LABEL: mul4100:
716716
; RV32XANDESPERF: # %bb.0:
717717
; RV32XANDESPERF-NEXT: slli a1, a0, 12
718-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a1
718+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a1, a0
719719
; RV32XANDESPERF-NEXT: ret
720720
%c = mul i32 %a, 4100
721721
ret i32 %c
@@ -738,7 +738,7 @@ define i32 @mul4104(i32 %a) {
738738
; RV32XANDESPERF-LABEL: mul4104:
739739
; RV32XANDESPERF: # %bb.0:
740740
; RV32XANDESPERF-NEXT: slli a1, a0, 12
741-
; RV32XANDESPERF-NEXT: nds.lea.d a0, a0, a1
741+
; RV32XANDESPERF-NEXT: nds.lea.d a0, a1, a0
742742
; RV32XANDESPERF-NEXT: ret
743743
%c = mul i32 %a, 4104
744744
ret i32 %c
@@ -761,7 +761,7 @@ define i32 @add4104(i32 %a) {
761761
; RV32XANDESPERF-LABEL: add4104:
762762
; RV32XANDESPERF: # %bb.0:
763763
; RV32XANDESPERF-NEXT: li a1, 1026
764-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a1, a0
764+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a1
765765
; RV32XANDESPERF-NEXT: ret
766766
%c = add i32 %a, 4104
767767
ret i32 %c
@@ -784,7 +784,7 @@ define i32 @add8208(i32 %a) {
784784
; RV32XANDESPERF-LABEL: add8208:
785785
; RV32XANDESPERF: # %bb.0:
786786
; RV32XANDESPERF-NEXT: li a1, 1026
787-
; RV32XANDESPERF-NEXT: nds.lea.d a0, a1, a0
787+
; RV32XANDESPERF-NEXT: nds.lea.d a0, a0, a1
788788
; RV32XANDESPERF-NEXT: ret
789789
%c = add i32 %a, 8208
790790
ret i32 %c
@@ -816,7 +816,7 @@ define i32 @addshl_5_6(i32 %a, i32 %b) {
816816
;
817817
; RV32XANDESPERF-LABEL: addshl_5_6:
818818
; RV32XANDESPERF: # %bb.0:
819-
; RV32XANDESPERF-NEXT: nds.lea.h a0, a1, a0
819+
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a1
820820
; RV32XANDESPERF-NEXT: slli a0, a0, 5
821821
; RV32XANDESPERF-NEXT: ret
822822
%c = shl i32 %a, 5
@@ -841,7 +841,7 @@ define i32 @addshl_5_7(i32 %a, i32 %b) {
841841
;
842842
; RV32XANDESPERF-LABEL: addshl_5_7:
843843
; RV32XANDESPERF: # %bb.0:
844-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a1, a0
844+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a1
845845
; RV32XANDESPERF-NEXT: slli a0, a0, 5
846846
; RV32XANDESPERF-NEXT: ret
847847
%c = shl i32 %a, 5
@@ -866,7 +866,7 @@ define i32 @addshl_5_8(i32 %a, i32 %b) {
866866
;
867867
; RV32XANDESPERF-LABEL: addshl_5_8:
868868
; RV32XANDESPERF: # %bb.0:
869-
; RV32XANDESPERF-NEXT: nds.lea.d a0, a1, a0
869+
; RV32XANDESPERF-NEXT: nds.lea.d a0, a0, a1
870870
; RV32XANDESPERF-NEXT: slli a0, a0, 5
871871
; RV32XANDESPERF-NEXT: ret
872872
%c = shl i32 %a, 5
@@ -894,7 +894,7 @@ define i32 @srli_1_sh2add(ptr %0, i32 %1) {
894894
; RV32XANDESPERF-LABEL: srli_1_sh2add:
895895
; RV32XANDESPERF: # %bb.0:
896896
; RV32XANDESPERF-NEXT: srli a1, a1, 1
897-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a1, a0
897+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a1
898898
; RV32XANDESPERF-NEXT: lw a0, 0(a0)
899899
; RV32XANDESPERF-NEXT: ret
900900
%3 = lshr i32 %1, 1
@@ -924,7 +924,7 @@ define i64 @srli_2_sh3add(ptr %0, i32 %1) {
924924
; RV32XANDESPERF-LABEL: srli_2_sh3add:
925925
; RV32XANDESPERF: # %bb.0:
926926
; RV32XANDESPERF-NEXT: srli a1, a1, 2
927-
; RV32XANDESPERF-NEXT: nds.lea.d a1, a1, a0
927+
; RV32XANDESPERF-NEXT: nds.lea.d a1, a0, a1
928928
; RV32XANDESPERF-NEXT: lw a0, 0(a1)
929929
; RV32XANDESPERF-NEXT: lw a1, 4(a1)
930930
; RV32XANDESPERF-NEXT: ret
@@ -953,7 +953,7 @@ define signext i16 @srli_2_sh1add(ptr %0, i32 %1) {
953953
; RV32XANDESPERF-LABEL: srli_2_sh1add:
954954
; RV32XANDESPERF: # %bb.0:
955955
; RV32XANDESPERF-NEXT: srli a1, a1, 2
956-
; RV32XANDESPERF-NEXT: nds.lea.h a0, a1, a0
956+
; RV32XANDESPERF-NEXT: nds.lea.h a0, a0, a1
957957
; RV32XANDESPERF-NEXT: lh a0, 0(a0)
958958
; RV32XANDESPERF-NEXT: ret
959959
%3 = lshr i32 %1, 2
@@ -981,7 +981,7 @@ define i32 @srli_3_sh2add(ptr %0, i32 %1) {
981981
; RV32XANDESPERF-LABEL: srli_3_sh2add:
982982
; RV32XANDESPERF: # %bb.0:
983983
; RV32XANDESPERF-NEXT: srli a1, a1, 3
984-
; RV32XANDESPERF-NEXT: nds.lea.w a0, a1, a0
984+
; RV32XANDESPERF-NEXT: nds.lea.w a0, a0, a1
985985
; RV32XANDESPERF-NEXT: lw a0, 0(a0)
986986
; RV32XANDESPERF-NEXT: ret
987987
%3 = lshr i32 %1, 3
@@ -1011,7 +1011,7 @@ define i64 @srli_4_sh3add(ptr %0, i32 %1) {
10111011
; RV32XANDESPERF-LABEL: srli_4_sh3add:
10121012
; RV32XANDESPERF: # %bb.0:
10131013
; RV32XANDESPERF-NEXT: srli a1, a1, 4
1014-
; RV32XANDESPERF-NEXT: nds.lea.d a1, a1, a0
1014+
; RV32XANDESPERF-NEXT: nds.lea.d a1, a0, a1
10151015
; RV32XANDESPERF-NEXT: lw a0, 0(a1)
10161016
; RV32XANDESPERF-NEXT: lw a1, 4(a1)
10171017
; RV32XANDESPERF-NEXT: ret

0 commit comments

Comments
 (0)