@@ -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:
@@ -3927,8 +3926,7 @@ entry:
3927
3926
define <8 x i8 > @fshr_v8i8_c (<8 x i8 > %a , <8 x i8 > %b ) {
3928
3927
; CHECK-SD-LABEL: fshr_v8i8_c:
3929
3928
; 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
3932
3930
; CHECK-SD-NEXT: usra v0.8b, v1.8b, #3
3933
3931
; CHECK-SD-NEXT: ret
3934
3932
;
@@ -3945,9 +3943,8 @@ entry:
3945
3943
define <16 x i8 > @fshl_v16i8_c (<16 x i8 > %a , <16 x i8 > %b ) {
3946
3944
; CHECK-SD-LABEL: fshl_v16i8_c:
3947
3945
; CHECK-SD: // %bb.0: // %entry
3948
- ; CHECK-SD-NEXT: ushr v1.16b, v1.16b, #1
3949
3946
; 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
3951
3948
; CHECK-SD-NEXT: ret
3952
3949
;
3953
3950
; CHECK-GI-LABEL: fshl_v16i8_c:
@@ -3963,8 +3960,7 @@ entry:
3963
3960
define <16 x i8 > @fshr_v16i8_c (<16 x i8 > %a , <16 x i8 > %b ) {
3964
3961
; CHECK-SD-LABEL: fshr_v16i8_c:
3965
3962
; 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
3968
3964
; CHECK-SD-NEXT: usra v0.16b, v1.16b, #3
3969
3965
; CHECK-SD-NEXT: ret
3970
3966
;
@@ -3981,9 +3977,8 @@ entry:
3981
3977
define <4 x i16 > @fshl_v4i16_c (<4 x i16 > %a , <4 x i16 > %b ) {
3982
3978
; CHECK-SD-LABEL: fshl_v4i16_c:
3983
3979
; CHECK-SD: // %bb.0: // %entry
3984
- ; CHECK-SD-NEXT: ushr v1.4h, v1.4h, #1
3985
3980
; 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
3987
3982
; CHECK-SD-NEXT: ret
3988
3983
;
3989
3984
; CHECK-GI-LABEL: fshl_v4i16_c:
@@ -3999,8 +3994,7 @@ entry:
3999
3994
define <4 x i16 > @fshr_v4i16_c (<4 x i16 > %a , <4 x i16 > %b ) {
4000
3995
; CHECK-SD-LABEL: fshr_v4i16_c:
4001
3996
; 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
4004
3998
; CHECK-SD-NEXT: usra v0.4h, v1.4h, #3
4005
3999
; CHECK-SD-NEXT: ret
4006
4000
;
@@ -4018,7 +4012,6 @@ define <7 x i16> @fshl_v7i16_c(<7 x i16> %a, <7 x i16> %b) {
4018
4012
; CHECK-SD-LABEL: fshl_v7i16_c:
4019
4013
; CHECK-SD: // %bb.0: // %entry
4020
4014
; CHECK-SD-NEXT: adrp x8, .LCPI124_0
4021
- ; CHECK-SD-NEXT: ushr v1.8h, v1.8h, #1
4022
4015
; CHECK-SD-NEXT: adrp x9, .LCPI124_1
4023
4016
; CHECK-SD-NEXT: ldr q2, [x8, :lo12:.LCPI124_0]
4024
4017
; 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) {
4060
4053
; CHECK-SD: // %bb.0: // %entry
4061
4054
; CHECK-SD-NEXT: adrp x8, .LCPI125_0
4062
4055
; CHECK-SD-NEXT: adrp x9, .LCPI125_1
4063
- ; CHECK-SD-NEXT: add v0.8h, v0.8h, v0.8h
4064
4056
; CHECK-SD-NEXT: ldr q2, [x8, :lo12:.LCPI125_0]
4065
4057
; CHECK-SD-NEXT: ldr q3, [x9, :lo12:.LCPI125_1]
4066
4058
; CHECK-SD-NEXT: ushl v1.8h, v1.8h, v2.8h
@@ -4099,9 +4091,8 @@ entry:
4099
4091
define <8 x i16 > @fshl_v8i16_c (<8 x i16 > %a , <8 x i16 > %b ) {
4100
4092
; CHECK-SD-LABEL: fshl_v8i16_c:
4101
4093
; CHECK-SD: // %bb.0: // %entry
4102
- ; CHECK-SD-NEXT: ushr v1.8h, v1.8h, #1
4103
4094
; 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
4105
4096
; CHECK-SD-NEXT: ret
4106
4097
;
4107
4098
; CHECK-GI-LABEL: fshl_v8i16_c:
@@ -4117,8 +4108,7 @@ entry:
4117
4108
define <8 x i16 > @fshr_v8i16_c (<8 x i16 > %a , <8 x i16 > %b ) {
4118
4109
; CHECK-SD-LABEL: fshr_v8i16_c:
4119
4110
; 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
4122
4112
; CHECK-SD-NEXT: usra v0.8h, v1.8h, #3
4123
4113
; CHECK-SD-NEXT: ret
4124
4114
;
@@ -4135,12 +4125,10 @@ entry:
4135
4125
define <16 x i16 > @fshl_v16i16_c (<16 x i16 > %a , <16 x i16 > %b ) {
4136
4126
; CHECK-SD-LABEL: fshl_v16i16_c:
4137
4127
; 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
4141
4128
; 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
4144
4132
; CHECK-SD-NEXT: ret
4145
4133
;
4146
4134
; CHECK-GI-LABEL: fshl_v16i16_c:
@@ -4158,10 +4146,8 @@ entry:
4158
4146
define <16 x i16 > @fshr_v16i16_c (<16 x i16 > %a , <16 x i16 > %b ) {
4159
4147
; CHECK-SD-LABEL: fshr_v16i16_c:
4160
4148
; 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
4165
4151
; CHECK-SD-NEXT: usra v1.8h, v3.8h, #3
4166
4152
; CHECK-SD-NEXT: usra v0.8h, v2.8h, #3
4167
4153
; CHECK-SD-NEXT: ret
0 commit comments