@@ -319,18 +319,11 @@ define <32 x i8> @test_fixed_v32i8(<32 x i8> %a0, <32 x i8> %a1) {
319
319
;
320
320
; AVX1-LABEL: test_fixed_v32i8:
321
321
; AVX1: # %bb.0:
322
- ; AVX1-NEXT: vorps %ymm1, %ymm0, %ymm2
323
- ; AVX1-NEXT: vxorps %ymm1, %ymm0, %ymm0
324
- ; AVX1-NEXT: vpsrlw $1, %xmm0, %xmm1
325
- ; AVX1-NEXT: vbroadcastss {{.*#+}} xmm3 = [127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127]
326
- ; AVX1-NEXT: vpand %xmm3, %xmm1, %xmm1
327
- ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
328
- ; AVX1-NEXT: vpsrlw $1, %xmm0, %xmm0
329
- ; AVX1-NEXT: vpand %xmm3, %xmm0, %xmm0
330
- ; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm3
331
- ; AVX1-NEXT: vpsubb %xmm0, %xmm3, %xmm0
332
- ; AVX1-NEXT: vpsubb %xmm1, %xmm2, %xmm1
333
- ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
322
+ ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
323
+ ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
324
+ ; AVX1-NEXT: vpavgb %xmm2, %xmm3, %xmm2
325
+ ; AVX1-NEXT: vpavgb %xmm1, %xmm0, %xmm0
326
+ ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
334
327
; AVX1-NEXT: retq
335
328
;
336
329
; AVX2-LABEL: test_fixed_v32i8:
@@ -392,15 +385,11 @@ define <16 x i16> @test_fixed_v16i16(<16 x i16> %a0, <16 x i16> %a1) {
392
385
;
393
386
; AVX1-LABEL: test_fixed_v16i16:
394
387
; AVX1: # %bb.0:
395
- ; AVX1-NEXT: vorps %ymm1, %ymm0, %ymm2
396
- ; AVX1-NEXT: vxorps %ymm0, %ymm1, %ymm0
397
- ; AVX1-NEXT: vpsrlw $1, %xmm0, %xmm1
398
- ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
399
- ; AVX1-NEXT: vpsrlw $1, %xmm0, %xmm0
400
- ; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm3
401
- ; AVX1-NEXT: vpsubw %xmm0, %xmm3, %xmm0
402
- ; AVX1-NEXT: vpsubw %xmm1, %xmm2, %xmm1
403
- ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
388
+ ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
389
+ ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
390
+ ; AVX1-NEXT: vpavgw %xmm2, %xmm3, %xmm2
391
+ ; AVX1-NEXT: vpavgw %xmm1, %xmm0, %xmm0
392
+ ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
404
393
; AVX1-NEXT: retq
405
394
;
406
395
; AVX2-LABEL: test_fixed_v16i16:
@@ -959,29 +948,16 @@ define <64 x i8> @test_fixed_v64i8(<64 x i8> %a0, <64 x i8> %a1) {
959
948
;
960
949
; AVX1-LABEL: test_fixed_v64i8:
961
950
; AVX1: # %bb.0:
962
- ; AVX1-NEXT: vorps %ymm3, %ymm1, %ymm4
963
- ; AVX1-NEXT: vorps %ymm2, %ymm0, %ymm5
964
- ; AVX1-NEXT: vxorps %ymm2, %ymm0, %ymm0
965
- ; AVX1-NEXT: vxorps %ymm3, %ymm1, %ymm1
966
- ; AVX1-NEXT: vpsrlw $1, %xmm1, %xmm2
967
- ; AVX1-NEXT: vbroadcastss {{.*#+}} xmm3 = [127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127]
968
- ; AVX1-NEXT: vpand %xmm3, %xmm2, %xmm2
969
- ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1
970
- ; AVX1-NEXT: vpsrlw $1, %xmm1, %xmm1
971
- ; AVX1-NEXT: vpand %xmm3, %xmm1, %xmm1
972
- ; AVX1-NEXT: vpsrlw $1, %xmm0, %xmm6
973
- ; AVX1-NEXT: vpand %xmm3, %xmm6, %xmm6
974
- ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
975
- ; AVX1-NEXT: vpsrlw $1, %xmm0, %xmm0
976
- ; AVX1-NEXT: vpand %xmm3, %xmm0, %xmm0
977
- ; AVX1-NEXT: vextractf128 $1, %ymm5, %xmm3
978
- ; AVX1-NEXT: vpsubb %xmm0, %xmm3, %xmm0
979
- ; AVX1-NEXT: vpsubb %xmm6, %xmm5, %xmm3
980
- ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm3, %ymm0
981
- ; AVX1-NEXT: vextractf128 $1, %ymm4, %xmm3
982
- ; AVX1-NEXT: vpsubb %xmm1, %xmm3, %xmm1
983
- ; AVX1-NEXT: vpsubb %xmm2, %xmm4, %xmm2
984
- ; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm1
951
+ ; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4
952
+ ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5
953
+ ; AVX1-NEXT: vpavgb %xmm4, %xmm5, %xmm4
954
+ ; AVX1-NEXT: vpavgb %xmm2, %xmm0, %xmm0
955
+ ; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0
956
+ ; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2
957
+ ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4
958
+ ; AVX1-NEXT: vpavgb %xmm2, %xmm4, %xmm2
959
+ ; AVX1-NEXT: vpavgb %xmm3, %xmm1, %xmm1
960
+ ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1
985
961
; AVX1-NEXT: retq
986
962
;
987
963
; AVX2-LABEL: test_fixed_v64i8:
@@ -1054,24 +1030,16 @@ define <32 x i16> @test_fixed_v32i16(<32 x i16> %a0, <32 x i16> %a1) {
1054
1030
;
1055
1031
; AVX1-LABEL: test_fixed_v32i16:
1056
1032
; AVX1: # %bb.0:
1057
- ; AVX1-NEXT: vorps %ymm3, %ymm1, %ymm4
1058
- ; AVX1-NEXT: vorps %ymm2, %ymm0, %ymm5
1059
- ; AVX1-NEXT: vxorps %ymm0, %ymm2, %ymm0
1060
- ; AVX1-NEXT: vxorps %ymm1, %ymm3, %ymm1
1061
- ; AVX1-NEXT: vpsrlw $1, %xmm1, %xmm2
1062
- ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1
1063
- ; AVX1-NEXT: vpsrlw $1, %xmm1, %xmm1
1064
- ; AVX1-NEXT: vpsrlw $1, %xmm0, %xmm3
1065
- ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
1066
- ; AVX1-NEXT: vpsrlw $1, %xmm0, %xmm0
1067
- ; AVX1-NEXT: vextractf128 $1, %ymm5, %xmm6
1068
- ; AVX1-NEXT: vpsubw %xmm0, %xmm6, %xmm0
1069
- ; AVX1-NEXT: vpsubw %xmm3, %xmm5, %xmm3
1070
- ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm3, %ymm0
1071
- ; AVX1-NEXT: vextractf128 $1, %ymm4, %xmm3
1072
- ; AVX1-NEXT: vpsubw %xmm1, %xmm3, %xmm1
1073
- ; AVX1-NEXT: vpsubw %xmm2, %xmm4, %xmm2
1074
- ; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm1
1033
+ ; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4
1034
+ ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5
1035
+ ; AVX1-NEXT: vpavgw %xmm4, %xmm5, %xmm4
1036
+ ; AVX1-NEXT: vpavgw %xmm2, %xmm0, %xmm0
1037
+ ; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0
1038
+ ; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2
1039
+ ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4
1040
+ ; AVX1-NEXT: vpavgw %xmm2, %xmm4, %xmm2
1041
+ ; AVX1-NEXT: vpavgw %xmm3, %xmm1, %xmm1
1042
+ ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1
1075
1043
; AVX1-NEXT: retq
1076
1044
;
1077
1045
; AVX2-LABEL: test_fixed_v32i16:
0 commit comments