@@ -3537,27 +3537,22 @@ define <7 x i32> @rotl_v7i32_c(<7 x i32> %a) {
35373537; CHECK-SD: // %bb.0: // %entry
35383538; CHECK-SD-NEXT: fmov s0, w0
35393539; CHECK-SD-NEXT: fmov s1, w4
3540- ; CHECK-SD-NEXT: adrp x8, .LCPI108_0
3541- ; CHECK-SD-NEXT: adrp x9, .LCPI108_1
3542- ; CHECK-SD-NEXT: ldr q2, [x8, :lo12:.LCPI108_0]
3543- ; CHECK-SD-NEXT: ldr q3, [x9, :lo12:.LCPI108_1]
35443540; CHECK-SD-NEXT: mov v0.s[1], w1
35453541; CHECK-SD-NEXT: mov v1.s[1], w5
35463542; CHECK-SD-NEXT: mov v0.s[2], w2
35473543; CHECK-SD-NEXT: mov v1.s[2], w6
35483544; CHECK-SD-NEXT: mov v0.s[3], w3
3549- ; CHECK-SD-NEXT: ushl v2.4s, v1.4s, v2.4s
3550- ; CHECK-SD-NEXT: ushl v1.4s, v1.4s, v3.4s
3551- ; CHECK-SD-NEXT: shl v4.4s, v0.4s, #3
3552- ; CHECK-SD-NEXT: usra v4.4s, v0.4s, #29
3553- ; CHECK-SD-NEXT: orr v0.16b, v1.16b, v2.16b
3554- ; CHECK-SD-NEXT: mov w1, v4.s[1]
3555- ; CHECK-SD-NEXT: mov w2, v4.s[2]
3556- ; CHECK-SD-NEXT: mov w3, v4.s[3]
3557- ; CHECK-SD-NEXT: mov w5, v0.s[1]
3558- ; CHECK-SD-NEXT: mov w6, v0.s[2]
3559- ; CHECK-SD-NEXT: fmov w0, s4
3560- ; CHECK-SD-NEXT: fmov w4, s0
3545+ ; CHECK-SD-NEXT: shl v3.4s, v1.4s, #3
3546+ ; CHECK-SD-NEXT: usra v3.4s, v1.4s, #29
3547+ ; CHECK-SD-NEXT: shl v2.4s, v0.4s, #3
3548+ ; CHECK-SD-NEXT: mov w5, v3.s[1]
3549+ ; CHECK-SD-NEXT: mov w6, v3.s[2]
3550+ ; CHECK-SD-NEXT: fmov w4, s3
3551+ ; CHECK-SD-NEXT: usra v2.4s, v0.4s, #29
3552+ ; CHECK-SD-NEXT: mov w1, v2.s[1]
3553+ ; CHECK-SD-NEXT: mov w2, v2.s[2]
3554+ ; CHECK-SD-NEXT: mov w3, v2.s[3]
3555+ ; CHECK-SD-NEXT: fmov w0, s2
35613556; CHECK-SD-NEXT: ret
35623557;
35633558; CHECK-GI-LABEL: rotl_v7i32_c:
@@ -3614,27 +3609,22 @@ define <7 x i32> @rotr_v7i32_c(<7 x i32> %a) {
36143609; CHECK-SD: // %bb.0: // %entry
36153610; CHECK-SD-NEXT: fmov s0, w0
36163611; CHECK-SD-NEXT: fmov s1, w4
3617- ; CHECK-SD-NEXT: adrp x8, .LCPI109_0
3618- ; CHECK-SD-NEXT: adrp x9, .LCPI109_1
3619- ; CHECK-SD-NEXT: ldr q2, [x8, :lo12:.LCPI109_0]
3620- ; CHECK-SD-NEXT: ldr q3, [x9, :lo12:.LCPI109_1]
36213612; CHECK-SD-NEXT: mov v0.s[1], w1
36223613; CHECK-SD-NEXT: mov v1.s[1], w5
36233614; CHECK-SD-NEXT: mov v0.s[2], w2
36243615; CHECK-SD-NEXT: mov v1.s[2], w6
36253616; CHECK-SD-NEXT: mov v0.s[3], w3
3626- ; CHECK-SD-NEXT: ushl v2.4s, v1.4s, v2.4s
3627- ; CHECK-SD-NEXT: ushl v1.4s, v1.4s, v3.4s
3628- ; CHECK-SD-NEXT: shl v4.4s, v0.4s, #29
3629- ; CHECK-SD-NEXT: usra v4.4s, v0.4s, #3
3630- ; CHECK-SD-NEXT: orr v0.16b, v1.16b, v2.16b
3631- ; CHECK-SD-NEXT: mov w1, v4.s[1]
3632- ; CHECK-SD-NEXT: mov w2, v4.s[2]
3633- ; CHECK-SD-NEXT: mov w3, v4.s[3]
3634- ; CHECK-SD-NEXT: mov w5, v0.s[1]
3635- ; CHECK-SD-NEXT: mov w6, v0.s[2]
3636- ; CHECK-SD-NEXT: fmov w0, s4
3637- ; CHECK-SD-NEXT: fmov w4, s0
3617+ ; CHECK-SD-NEXT: shl v3.4s, v1.4s, #29
3618+ ; CHECK-SD-NEXT: usra v3.4s, v1.4s, #3
3619+ ; CHECK-SD-NEXT: shl v2.4s, v0.4s, #29
3620+ ; CHECK-SD-NEXT: mov w5, v3.s[1]
3621+ ; CHECK-SD-NEXT: mov w6, v3.s[2]
3622+ ; CHECK-SD-NEXT: fmov w4, s3
3623+ ; CHECK-SD-NEXT: usra v2.4s, v0.4s, #3
3624+ ; CHECK-SD-NEXT: mov w1, v2.s[1]
3625+ ; CHECK-SD-NEXT: mov w2, v2.s[2]
3626+ ; CHECK-SD-NEXT: mov w3, v2.s[3]
3627+ ; CHECK-SD-NEXT: fmov w0, s2
36383628; CHECK-SD-NEXT: ret
36393629;
36403630; CHECK-GI-LABEL: rotr_v7i32_c:
@@ -4132,36 +4122,31 @@ define <7 x i32> @fshl_v7i32_c(<7 x i32> %a, <7 x i32> %b) {
41324122; CHECK-SD-LABEL: fshl_v7i32_c:
41334123; CHECK-SD: // %bb.0: // %entry
41344124; CHECK-SD-NEXT: fmov s0, w0
4135- ; CHECK-SD-NEXT: fmov s2, w4
4136- ; CHECK-SD-NEXT: ldr s1, [sp, #24]
4137- ; CHECK-SD-NEXT: fmov s3, w7
4125+ ; CHECK-SD-NEXT: fmov s1, w4
41384126; CHECK-SD-NEXT: mov x8, sp
4127+ ; CHECK-SD-NEXT: fmov s2, w7
4128+ ; CHECK-SD-NEXT: ldr s3, [sp, #24]
41394129; CHECK-SD-NEXT: add x9, sp, #32
4140- ; CHECK-SD-NEXT: ld1 { v1.s }[1], [x9]
4141- ; CHECK-SD-NEXT: add x9, sp, #40
4142- ; CHECK-SD-NEXT: adrp x10, .LCPI134_1
41434130; CHECK-SD-NEXT: mov v0.s[1], w1
4144- ; CHECK-SD-NEXT: mov v2 .s[1], w5
4145- ; CHECK-SD-NEXT: ldr q5, [x10, :lo12:.LCPI134_1 ]
4146- ; CHECK-SD-NEXT: ld1 { v3 .s }[1], [x8]
4131+ ; CHECK-SD-NEXT: mov v1 .s[1], w5
4132+ ; CHECK-SD-NEXT: ld1 { v3.s }[1], [x9 ]
4133+ ; CHECK-SD-NEXT: ld1 { v2 .s }[1], [x8]
41474134; CHECK-SD-NEXT: add x8, sp, #8
4148- ; CHECK-SD-NEXT: ld1 { v1.s }[2], [x9]
4149- ; CHECK-SD-NEXT: add x9, sp, #16
4135+ ; CHECK-SD-NEXT: add x9, sp, #40
4136+ ; CHECK-SD-NEXT: ld1 { v3.s }[2], [x9]
41504137; CHECK-SD-NEXT: mov v0.s[2], w2
4151- ; CHECK-SD-NEXT: mov v2.s[2], w6
4152- ; CHECK-SD-NEXT: ld1 { v3.s }[2], [x8]
4153- ; CHECK-SD-NEXT: adrp x8, .LCPI134_0
4154- ; CHECK-SD-NEXT: ldr q4, [x8, :lo12:.LCPI134_0]
4155- ; CHECK-SD-NEXT: ld1 { v3.s }[3], [x9]
4138+ ; CHECK-SD-NEXT: mov v1.s[2], w6
4139+ ; CHECK-SD-NEXT: ld1 { v2.s }[2], [x8]
4140+ ; CHECK-SD-NEXT: add x8, sp, #16
4141+ ; CHECK-SD-NEXT: ld1 { v2.s }[3], [x8]
41564142; CHECK-SD-NEXT: mov v0.s[3], w3
4157- ; CHECK-SD-NEXT: ushl v1.4s, v1.4s, v4.4s
4158- ; CHECK-SD-NEXT: ushl v2.4s, v2.4s, v5.4s
4159- ; CHECK-SD-NEXT: orr v1.16b, v2.16b, v1.16b
4143+ ; CHECK-SD-NEXT: shl v1.4s, v1.4s, #3
4144+ ; CHECK-SD-NEXT: usra v1.4s, v3.4s, #29
41604145; CHECK-SD-NEXT: shl v0.4s, v0.4s, #3
41614146; CHECK-SD-NEXT: mov w5, v1.s[1]
41624147; CHECK-SD-NEXT: mov w6, v1.s[2]
41634148; CHECK-SD-NEXT: fmov w4, s1
4164- ; CHECK-SD-NEXT: usra v0.4s, v3 .4s, #29
4149+ ; CHECK-SD-NEXT: usra v0.4s, v2 .4s, #29
41654150; CHECK-SD-NEXT: mov w1, v0.s[1]
41664151; CHECK-SD-NEXT: mov w2, v0.s[2]
41674152; CHECK-SD-NEXT: mov w3, v0.s[3]
@@ -4225,36 +4210,31 @@ define <7 x i32> @fshr_v7i32_c(<7 x i32> %a, <7 x i32> %b) {
42254210; CHECK-SD-LABEL: fshr_v7i32_c:
42264211; CHECK-SD: // %bb.0: // %entry
42274212; CHECK-SD-NEXT: fmov s0, w0
4228- ; CHECK-SD-NEXT: fmov s2, w4
4229- ; CHECK-SD-NEXT: ldr s1, [sp, #24]
4230- ; CHECK-SD-NEXT: fmov s3, w7
4213+ ; CHECK-SD-NEXT: fmov s1, w4
42314214; CHECK-SD-NEXT: mov x8, sp
4215+ ; CHECK-SD-NEXT: fmov s2, w7
4216+ ; CHECK-SD-NEXT: ldr s3, [sp, #24]
42324217; CHECK-SD-NEXT: add x9, sp, #32
4233- ; CHECK-SD-NEXT: ld1 { v1.s }[1], [x9]
4234- ; CHECK-SD-NEXT: add x9, sp, #40
4235- ; CHECK-SD-NEXT: adrp x10, .LCPI135_1
42364218; CHECK-SD-NEXT: mov v0.s[1], w1
4237- ; CHECK-SD-NEXT: mov v2 .s[1], w5
4238- ; CHECK-SD-NEXT: ldr q5, [x10, :lo12:.LCPI135_1 ]
4239- ; CHECK-SD-NEXT: ld1 { v3 .s }[1], [x8]
4219+ ; CHECK-SD-NEXT: mov v1 .s[1], w5
4220+ ; CHECK-SD-NEXT: ld1 { v3.s }[1], [x9 ]
4221+ ; CHECK-SD-NEXT: ld1 { v2 .s }[1], [x8]
42404222; CHECK-SD-NEXT: add x8, sp, #8
4241- ; CHECK-SD-NEXT: ld1 { v1.s }[2], [x9]
4242- ; CHECK-SD-NEXT: add x9, sp, #16
4223+ ; CHECK-SD-NEXT: add x9, sp, #40
4224+ ; CHECK-SD-NEXT: ld1 { v3.s }[2], [x9]
42434225; CHECK-SD-NEXT: mov v0.s[2], w2
4244- ; CHECK-SD-NEXT: mov v2.s[2], w6
4245- ; CHECK-SD-NEXT: ld1 { v3.s }[2], [x8]
4246- ; CHECK-SD-NEXT: adrp x8, .LCPI135_0
4247- ; CHECK-SD-NEXT: ldr q4, [x8, :lo12:.LCPI135_0]
4248- ; CHECK-SD-NEXT: ld1 { v3.s }[3], [x9]
4226+ ; CHECK-SD-NEXT: mov v1.s[2], w6
4227+ ; CHECK-SD-NEXT: ld1 { v2.s }[2], [x8]
4228+ ; CHECK-SD-NEXT: add x8, sp, #16
4229+ ; CHECK-SD-NEXT: ld1 { v2.s }[3], [x8]
42494230; CHECK-SD-NEXT: mov v0.s[3], w3
4250- ; CHECK-SD-NEXT: ushl v1.4s, v1.4s, v4.4s
4251- ; CHECK-SD-NEXT: ushl v2.4s, v2.4s, v5.4s
4252- ; CHECK-SD-NEXT: orr v1.16b, v2.16b, v1.16b
4231+ ; CHECK-SD-NEXT: shl v1.4s, v1.4s, #29
4232+ ; CHECK-SD-NEXT: usra v1.4s, v3.4s, #3
42534233; CHECK-SD-NEXT: shl v0.4s, v0.4s, #29
42544234; CHECK-SD-NEXT: mov w5, v1.s[1]
42554235; CHECK-SD-NEXT: mov w6, v1.s[2]
42564236; CHECK-SD-NEXT: fmov w4, s1
4257- ; CHECK-SD-NEXT: usra v0.4s, v3 .4s, #3
4237+ ; CHECK-SD-NEXT: usra v0.4s, v2 .4s, #3
42584238; CHECK-SD-NEXT: mov w1, v0.s[1]
42594239; CHECK-SD-NEXT: mov w2, v0.s[2]
42604240; CHECK-SD-NEXT: mov w3, v0.s[3]
0 commit comments