@@ -3909,9 +3909,8 @@ entry:
39093909define <8 x i8 > @fshl_v8i8_c (<8 x i8 > %a , <8 x i8 > %b ) {
39103910; CHECK-SD-LABEL: fshl_v8i8_c:
39113911; CHECK-SD: // %bb.0: // %entry
3912- ; CHECK-SD-NEXT: ushr v1.8b, v1.8b, #1
39133912; CHECK-SD-NEXT: shl v0.8b, v0.8b, #3
3914- ; CHECK-SD-NEXT: usra v0.8b, v1.8b, #4
3913+ ; CHECK-SD-NEXT: usra v0.8b, v1.8b, #5
39153914; CHECK-SD-NEXT: ret
39163915;
39173916; CHECK-GI-LABEL: fshl_v8i8_c:
@@ -3927,8 +3926,7 @@ entry:
39273926define <8 x i8 > @fshr_v8i8_c (<8 x i8 > %a , <8 x i8 > %b ) {
39283927; CHECK-SD-LABEL: fshr_v8i8_c:
39293928; CHECK-SD: // %bb.0: // %entry
3930- ; CHECK-SD-NEXT: add v0.8b, v0.8b, v0.8b
3931- ; CHECK-SD-NEXT: shl v0.8b, v0.8b, #4
3929+ ; CHECK-SD-NEXT: shl v0.8b, v0.8b, #5
39323930; CHECK-SD-NEXT: usra v0.8b, v1.8b, #3
39333931; CHECK-SD-NEXT: ret
39343932;
@@ -3945,9 +3943,8 @@ entry:
39453943define <16 x i8 > @fshl_v16i8_c (<16 x i8 > %a , <16 x i8 > %b ) {
39463944; CHECK-SD-LABEL: fshl_v16i8_c:
39473945; CHECK-SD: // %bb.0: // %entry
3948- ; CHECK-SD-NEXT: ushr v1.16b, v1.16b, #1
39493946; CHECK-SD-NEXT: shl v0.16b, v0.16b, #3
3950- ; CHECK-SD-NEXT: usra v0.16b, v1.16b, #4
3947+ ; CHECK-SD-NEXT: usra v0.16b, v1.16b, #5
39513948; CHECK-SD-NEXT: ret
39523949;
39533950; CHECK-GI-LABEL: fshl_v16i8_c:
@@ -3963,8 +3960,7 @@ entry:
39633960define <16 x i8 > @fshr_v16i8_c (<16 x i8 > %a , <16 x i8 > %b ) {
39643961; CHECK-SD-LABEL: fshr_v16i8_c:
39653962; CHECK-SD: // %bb.0: // %entry
3966- ; CHECK-SD-NEXT: add v0.16b, v0.16b, v0.16b
3967- ; CHECK-SD-NEXT: shl v0.16b, v0.16b, #4
3963+ ; CHECK-SD-NEXT: shl v0.16b, v0.16b, #5
39683964; CHECK-SD-NEXT: usra v0.16b, v1.16b, #3
39693965; CHECK-SD-NEXT: ret
39703966;
@@ -3981,9 +3977,8 @@ entry:
39813977define <4 x i16 > @fshl_v4i16_c (<4 x i16 > %a , <4 x i16 > %b ) {
39823978; CHECK-SD-LABEL: fshl_v4i16_c:
39833979; CHECK-SD: // %bb.0: // %entry
3984- ; CHECK-SD-NEXT: ushr v1.4h, v1.4h, #1
39853980; CHECK-SD-NEXT: shl v0.4h, v0.4h, #3
3986- ; CHECK-SD-NEXT: usra v0.4h, v1.4h, #12
3981+ ; CHECK-SD-NEXT: usra v0.4h, v1.4h, #13
39873982; CHECK-SD-NEXT: ret
39883983;
39893984; CHECK-GI-LABEL: fshl_v4i16_c:
@@ -3999,8 +3994,7 @@ entry:
39993994define <4 x i16 > @fshr_v4i16_c (<4 x i16 > %a , <4 x i16 > %b ) {
40003995; CHECK-SD-LABEL: fshr_v4i16_c:
40013996; CHECK-SD: // %bb.0: // %entry
4002- ; CHECK-SD-NEXT: add v0.4h, v0.4h, v0.4h
4003- ; CHECK-SD-NEXT: shl v0.4h, v0.4h, #12
3997+ ; CHECK-SD-NEXT: shl v0.4h, v0.4h, #13
40043998; CHECK-SD-NEXT: usra v0.4h, v1.4h, #3
40053999; CHECK-SD-NEXT: ret
40064000;
@@ -4018,7 +4012,6 @@ define <7 x i16> @fshl_v7i16_c(<7 x i16> %a, <7 x i16> %b) {
40184012; CHECK-SD-LABEL: fshl_v7i16_c:
40194013; CHECK-SD: // %bb.0: // %entry
40204014; CHECK-SD-NEXT: adrp x8, .LCPI124_0
4021- ; CHECK-SD-NEXT: ushr v1.8h, v1.8h, #1
40224015; CHECK-SD-NEXT: adrp x9, .LCPI124_1
40234016; CHECK-SD-NEXT: ldr q2, [x8, :lo12:.LCPI124_0]
40244017; CHECK-SD-NEXT: ldr q3, [x9, :lo12:.LCPI124_1]
@@ -4060,7 +4053,6 @@ define <7 x i16> @fshr_v7i16_c(<7 x i16> %a, <7 x i16> %b) {
40604053; CHECK-SD: // %bb.0: // %entry
40614054; CHECK-SD-NEXT: adrp x8, .LCPI125_0
40624055; CHECK-SD-NEXT: adrp x9, .LCPI125_1
4063- ; CHECK-SD-NEXT: add v0.8h, v0.8h, v0.8h
40644056; CHECK-SD-NEXT: ldr q2, [x8, :lo12:.LCPI125_0]
40654057; CHECK-SD-NEXT: ldr q3, [x9, :lo12:.LCPI125_1]
40664058; CHECK-SD-NEXT: ushl v1.8h, v1.8h, v2.8h
@@ -4099,9 +4091,8 @@ entry:
40994091define <8 x i16 > @fshl_v8i16_c (<8 x i16 > %a , <8 x i16 > %b ) {
41004092; CHECK-SD-LABEL: fshl_v8i16_c:
41014093; CHECK-SD: // %bb.0: // %entry
4102- ; CHECK-SD-NEXT: ushr v1.8h, v1.8h, #1
41034094; CHECK-SD-NEXT: shl v0.8h, v0.8h, #3
4104- ; CHECK-SD-NEXT: usra v0.8h, v1.8h, #12
4095+ ; CHECK-SD-NEXT: usra v0.8h, v1.8h, #13
41054096; CHECK-SD-NEXT: ret
41064097;
41074098; CHECK-GI-LABEL: fshl_v8i16_c:
@@ -4117,8 +4108,7 @@ entry:
41174108define <8 x i16 > @fshr_v8i16_c (<8 x i16 > %a , <8 x i16 > %b ) {
41184109; CHECK-SD-LABEL: fshr_v8i16_c:
41194110; CHECK-SD: // %bb.0: // %entry
4120- ; CHECK-SD-NEXT: add v0.8h, v0.8h, v0.8h
4121- ; CHECK-SD-NEXT: shl v0.8h, v0.8h, #12
4111+ ; CHECK-SD-NEXT: shl v0.8h, v0.8h, #13
41224112; CHECK-SD-NEXT: usra v0.8h, v1.8h, #3
41234113; CHECK-SD-NEXT: ret
41244114;
@@ -4135,12 +4125,10 @@ entry:
41354125define <16 x i16 > @fshl_v16i16_c (<16 x i16 > %a , <16 x i16 > %b ) {
41364126; CHECK-SD-LABEL: fshl_v16i16_c:
41374127; CHECK-SD: // %bb.0: // %entry
4138- ; CHECK-SD-NEXT: ushr v2.8h, v2.8h, #1
4139- ; CHECK-SD-NEXT: shl v0.8h, v0.8h, #3
4140- ; CHECK-SD-NEXT: ushr v3.8h, v3.8h, #1
41414128; CHECK-SD-NEXT: shl v1.8h, v1.8h, #3
4142- ; CHECK-SD-NEXT: usra v0.8h, v2.8h, #12
4143- ; CHECK-SD-NEXT: usra v1.8h, v3.8h, #12
4129+ ; CHECK-SD-NEXT: shl v0.8h, v0.8h, #3
4130+ ; CHECK-SD-NEXT: usra v1.8h, v3.8h, #13
4131+ ; CHECK-SD-NEXT: usra v0.8h, v2.8h, #13
41444132; CHECK-SD-NEXT: ret
41454133;
41464134; CHECK-GI-LABEL: fshl_v16i16_c:
@@ -4158,10 +4146,8 @@ entry:
41584146define <16 x i16 > @fshr_v16i16_c (<16 x i16 > %a , <16 x i16 > %b ) {
41594147; CHECK-SD-LABEL: fshr_v16i16_c:
41604148; CHECK-SD: // %bb.0: // %entry
4161- ; CHECK-SD-NEXT: add v1.8h, v1.8h, v1.8h
4162- ; CHECK-SD-NEXT: add v0.8h, v0.8h, v0.8h
4163- ; CHECK-SD-NEXT: shl v1.8h, v1.8h, #12
4164- ; CHECK-SD-NEXT: shl v0.8h, v0.8h, #12
4149+ ; CHECK-SD-NEXT: shl v1.8h, v1.8h, #13
4150+ ; CHECK-SD-NEXT: shl v0.8h, v0.8h, #13
41654151; CHECK-SD-NEXT: usra v1.8h, v3.8h, #3
41664152; CHECK-SD-NEXT: usra v0.8h, v2.8h, #3
41674153; CHECK-SD-NEXT: ret
0 commit comments