@@ -3909,9 +3909,8 @@ entry:
3909
3909
define <8 x i8 > @fshl_v8i8_c (<8 x i8 > %a , <8 x i8 > %b ) {
3910
3910
; CHECK-SD-LABEL: fshl_v8i8_c:
3911
3911
; CHECK-SD: // %bb.0: // %entry
3912
- ; CHECK-SD-NEXT: ushr v1.8b, v1.8b, #1
3913
3912
; 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
3915
3914
; CHECK-SD-NEXT: ret
3916
3915
;
3917
3916
; CHECK-GI-LABEL: fshl_v8i8_c:
@@ -3928,8 +3927,7 @@ entry:
3928
3927
define <8 x i8 > @fshr_v8i8_c (<8 x i8 > %a , <8 x i8 > %b ) {
3929
3928
; CHECK-SD-LABEL: fshr_v8i8_c:
3930
3929
; CHECK-SD: // %bb.0: // %entry
3931
- ; CHECK-SD-NEXT: add v0.8b, v0.8b, v0.8b
3932
- ; CHECK-SD-NEXT: shl v0.8b, v0.8b, #4
3930
+ ; CHECK-SD-NEXT: shl v0.8b, v0.8b, #5
3933
3931
; CHECK-SD-NEXT: usra v0.8b, v1.8b, #3
3934
3932
; CHECK-SD-NEXT: ret
3935
3933
;
@@ -3947,9 +3945,8 @@ entry:
3947
3945
define <16 x i8 > @fshl_v16i8_c (<16 x i8 > %a , <16 x i8 > %b ) {
3948
3946
; CHECK-SD-LABEL: fshl_v16i8_c:
3949
3947
; CHECK-SD: // %bb.0: // %entry
3950
- ; CHECK-SD-NEXT: ushr v1.16b, v1.16b, #1
3951
3948
; CHECK-SD-NEXT: shl v0.16b, v0.16b, #3
3952
- ; CHECK-SD-NEXT: usra v0.16b, v1.16b, #4
3949
+ ; CHECK-SD-NEXT: usra v0.16b, v1.16b, #5
3953
3950
; CHECK-SD-NEXT: ret
3954
3951
;
3955
3952
; CHECK-GI-LABEL: fshl_v16i8_c:
@@ -3966,8 +3963,7 @@ entry:
3966
3963
define <16 x i8 > @fshr_v16i8_c (<16 x i8 > %a , <16 x i8 > %b ) {
3967
3964
; CHECK-SD-LABEL: fshr_v16i8_c:
3968
3965
; CHECK-SD: // %bb.0: // %entry
3969
- ; CHECK-SD-NEXT: add v0.16b, v0.16b, v0.16b
3970
- ; CHECK-SD-NEXT: shl v0.16b, v0.16b, #4
3966
+ ; CHECK-SD-NEXT: shl v0.16b, v0.16b, #5
3971
3967
; CHECK-SD-NEXT: usra v0.16b, v1.16b, #3
3972
3968
; CHECK-SD-NEXT: ret
3973
3969
;
@@ -3985,9 +3981,8 @@ entry:
3985
3981
define <4 x i16 > @fshl_v4i16_c (<4 x i16 > %a , <4 x i16 > %b ) {
3986
3982
; CHECK-SD-LABEL: fshl_v4i16_c:
3987
3983
; CHECK-SD: // %bb.0: // %entry
3988
- ; CHECK-SD-NEXT: ushr v1.4h, v1.4h, #1
3989
3984
; CHECK-SD-NEXT: shl v0.4h, v0.4h, #3
3990
- ; CHECK-SD-NEXT: usra v0.4h, v1.4h, #12
3985
+ ; CHECK-SD-NEXT: usra v0.4h, v1.4h, #13
3991
3986
; CHECK-SD-NEXT: ret
3992
3987
;
3993
3988
; CHECK-GI-LABEL: fshl_v4i16_c:
@@ -4004,8 +3999,7 @@ entry:
4004
3999
define <4 x i16 > @fshr_v4i16_c (<4 x i16 > %a , <4 x i16 > %b ) {
4005
4000
; CHECK-SD-LABEL: fshr_v4i16_c:
4006
4001
; CHECK-SD: // %bb.0: // %entry
4007
- ; CHECK-SD-NEXT: add v0.4h, v0.4h, v0.4h
4008
- ; CHECK-SD-NEXT: shl v0.4h, v0.4h, #12
4002
+ ; CHECK-SD-NEXT: shl v0.4h, v0.4h, #13
4009
4003
; CHECK-SD-NEXT: usra v0.4h, v1.4h, #3
4010
4004
; CHECK-SD-NEXT: ret
4011
4005
;
@@ -4024,7 +4018,6 @@ define <7 x i16> @fshl_v7i16_c(<7 x i16> %a, <7 x i16> %b) {
4024
4018
; CHECK-SD-LABEL: fshl_v7i16_c:
4025
4019
; CHECK-SD: // %bb.0: // %entry
4026
4020
; CHECK-SD-NEXT: adrp x8, .LCPI124_0
4027
- ; CHECK-SD-NEXT: ushr v1.8h, v1.8h, #1
4028
4021
; CHECK-SD-NEXT: adrp x9, .LCPI124_1
4029
4022
; CHECK-SD-NEXT: ldr q2, [x8, :lo12:.LCPI124_0]
4030
4023
; CHECK-SD-NEXT: ldr q3, [x9, :lo12:.LCPI124_1]
@@ -4066,7 +4059,6 @@ define <7 x i16> @fshr_v7i16_c(<7 x i16> %a, <7 x i16> %b) {
4066
4059
; CHECK-SD: // %bb.0: // %entry
4067
4060
; CHECK-SD-NEXT: adrp x8, .LCPI125_0
4068
4061
; CHECK-SD-NEXT: adrp x9, .LCPI125_1
4069
- ; CHECK-SD-NEXT: add v0.8h, v0.8h, v0.8h
4070
4062
; CHECK-SD-NEXT: ldr q2, [x8, :lo12:.LCPI125_0]
4071
4063
; CHECK-SD-NEXT: ldr q3, [x9, :lo12:.LCPI125_1]
4072
4064
; CHECK-SD-NEXT: ushl v1.8h, v1.8h, v2.8h
@@ -4105,9 +4097,8 @@ entry:
4105
4097
define <8 x i16 > @fshl_v8i16_c (<8 x i16 > %a , <8 x i16 > %b ) {
4106
4098
; CHECK-SD-LABEL: fshl_v8i16_c:
4107
4099
; CHECK-SD: // %bb.0: // %entry
4108
- ; CHECK-SD-NEXT: ushr v1.8h, v1.8h, #1
4109
4100
; CHECK-SD-NEXT: shl v0.8h, v0.8h, #3
4110
- ; CHECK-SD-NEXT: usra v0.8h, v1.8h, #12
4101
+ ; CHECK-SD-NEXT: usra v0.8h, v1.8h, #13
4111
4102
; CHECK-SD-NEXT: ret
4112
4103
;
4113
4104
; CHECK-GI-LABEL: fshl_v8i16_c:
@@ -4124,8 +4115,7 @@ entry:
4124
4115
define <8 x i16 > @fshr_v8i16_c (<8 x i16 > %a , <8 x i16 > %b ) {
4125
4116
; CHECK-SD-LABEL: fshr_v8i16_c:
4126
4117
; CHECK-SD: // %bb.0: // %entry
4127
- ; CHECK-SD-NEXT: add v0.8h, v0.8h, v0.8h
4128
- ; CHECK-SD-NEXT: shl v0.8h, v0.8h, #12
4118
+ ; CHECK-SD-NEXT: shl v0.8h, v0.8h, #13
4129
4119
; CHECK-SD-NEXT: usra v0.8h, v1.8h, #3
4130
4120
; CHECK-SD-NEXT: ret
4131
4121
;
@@ -4143,12 +4133,10 @@ entry:
4143
4133
define <16 x i16 > @fshl_v16i16_c (<16 x i16 > %a , <16 x i16 > %b ) {
4144
4134
; CHECK-SD-LABEL: fshl_v16i16_c:
4145
4135
; CHECK-SD: // %bb.0: // %entry
4146
- ; CHECK-SD-NEXT: ushr v2.8h, v2.8h, #1
4147
- ; CHECK-SD-NEXT: shl v0.8h, v0.8h, #3
4148
- ; CHECK-SD-NEXT: ushr v3.8h, v3.8h, #1
4149
4136
; CHECK-SD-NEXT: shl v1.8h, v1.8h, #3
4150
- ; CHECK-SD-NEXT: usra v0.8h, v2.8h, #12
4151
- ; CHECK-SD-NEXT: usra v1.8h, v3.8h, #12
4137
+ ; CHECK-SD-NEXT: shl v0.8h, v0.8h, #3
4138
+ ; CHECK-SD-NEXT: usra v1.8h, v3.8h, #13
4139
+ ; CHECK-SD-NEXT: usra v0.8h, v2.8h, #13
4152
4140
; CHECK-SD-NEXT: ret
4153
4141
;
4154
4142
; CHECK-GI-LABEL: fshl_v16i16_c:
@@ -4168,10 +4156,8 @@ entry:
4168
4156
define <16 x i16 > @fshr_v16i16_c (<16 x i16 > %a , <16 x i16 > %b ) {
4169
4157
; CHECK-SD-LABEL: fshr_v16i16_c:
4170
4158
; CHECK-SD: // %bb.0: // %entry
4171
- ; CHECK-SD-NEXT: add v1.8h, v1.8h, v1.8h
4172
- ; CHECK-SD-NEXT: add v0.8h, v0.8h, v0.8h
4173
- ; CHECK-SD-NEXT: shl v1.8h, v1.8h, #12
4174
- ; CHECK-SD-NEXT: shl v0.8h, v0.8h, #12
4159
+ ; CHECK-SD-NEXT: shl v1.8h, v1.8h, #13
4160
+ ; CHECK-SD-NEXT: shl v0.8h, v0.8h, #13
4175
4161
; CHECK-SD-NEXT: usra v1.8h, v3.8h, #3
4176
4162
; CHECK-SD-NEXT: usra v0.8h, v2.8h, #3
4177
4163
; CHECK-SD-NEXT: ret
0 commit comments