Skip to content

Commit ec1c780

Browse files
committed
update test
1 parent c7ffae4 commit ec1c780

File tree

2 files changed

+7
-16
lines changed

2 files changed

+7
-16
lines changed

llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -1059,13 +1059,13 @@ static SDValue lowerVECTOR_SHUFFLE_VSHUF4I(const SDLoc &DL, ArrayRef<int> Mask,
10591059
// Calculate the immediate. Replace any remaining undefs with zero
10601060
APInt Imm(64, 0);
10611061
for (int i = SubVecSize - 1; i >= 0; --i) {
1062-
int Idx = SubMask[i];
1062+
int M = SubMask[i];
10631063

1064-
if (Idx == -1)
1065-
Idx = 0;
1064+
if (M == -1)
1065+
M = 0;
10661066

10671067
Imm <<= 2;
1068-
Imm |= Idx & 0x3;
1068+
Imm |= M & 0x3;
10691069
}
10701070

10711071
// Return vshuf4i.d and xvshuf4i.d

llvm/test/CodeGen/LoongArch/lsx/widen-shuffle-mask.ll

+3-12
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@ define <16 x i8> @widen_shuffle_mask_v16i8_to_v4i32(<16 x i8> %a, <16 x i8> %b)
2828
define <16 x i8> @widen_shuffle_mask_v16i8_to_v2i64(<16 x i8> %a, <16 x i8> %b) {
2929
; CHECK-LABEL: widen_shuffle_mask_v16i8_to_v2i64:
3030
; CHECK: # %bb.0:
31-
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_0)
32-
; CHECK-NEXT: vld $vr2, $a0, %pc_lo12(.LCPI2_0)
33-
; CHECK-NEXT: vshuf.d $vr2, $vr1, $vr0
34-
; CHECK-NEXT: vori.b $vr0, $vr2, 0
31+
; CHECK-NEXT: vshuf4i.d $vr0, $vr1, 12
3532
; CHECK-NEXT: ret
3633
%r = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
3734
ret <16 x i8> %r
@@ -52,10 +49,7 @@ define <8 x i16> @widen_shuffle_mask_v8i16_to_v4i32(<8 x i16> %a, <8 x i16> %b)
5249
define <8 x i16> @widen_shuffle_mask_v8i16_to_v2i64(<8 x i16> %a, <8 x i16> %b) {
5350
; CHECK-LABEL: widen_shuffle_mask_v8i16_to_v2i64:
5451
; CHECK: # %bb.0:
55-
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(.LCPI4_0)
56-
; CHECK-NEXT: vld $vr2, $a0, %pc_lo12(.LCPI4_0)
57-
; CHECK-NEXT: vshuf.d $vr2, $vr1, $vr0
58-
; CHECK-NEXT: vori.b $vr0, $vr2, 0
52+
; CHECK-NEXT: vshuf4i.d $vr0, $vr1, 12
5953
; CHECK-NEXT: ret
6054
%r = shufflevector <8 x i16> %a, <8 x i16> %b, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 12, i32 13, i32 14, i32 15>
6155
ret <8 x i16> %r
@@ -64,10 +58,7 @@ define <8 x i16> @widen_shuffle_mask_v8i16_to_v2i64(<8 x i16> %a, <8 x i16> %b)
6458
define <4 x i32> @widen_shuffle_mask_v4i32_to_v2i64(<4 x i32> %a, <4 x i32> %b) {
6559
; CHECK-LABEL: widen_shuffle_mask_v4i32_to_v2i64:
6660
; CHECK: # %bb.0:
67-
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(.LCPI5_0)
68-
; CHECK-NEXT: vld $vr2, $a0, %pc_lo12(.LCPI5_0)
69-
; CHECK-NEXT: vshuf.d $vr2, $vr1, $vr0
70-
; CHECK-NEXT: vori.b $vr0, $vr2, 0
61+
; CHECK-NEXT: vshuf4i.d $vr0, $vr1, 12
7162
; CHECK-NEXT: ret
7263
%r = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 6, i32 7>
7364
ret <4 x i32> %r

0 commit comments

Comments
 (0)