21 changes: 14 additions & 7 deletions llvm/test/CodeGen/X86/vector-trunc-usat.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2906,13 +2906,20 @@ define <4 x i8> @trunc_usat_v4i32_v4i8(<4 x i32> %a0) {
; AVX1-NEXT: vpackuswb %xmm0, %xmm0, %xmm0
; AVX1-NEXT: retq
;
; AVX2-LABEL: trunc_usat_v4i32_v4i8:
; AVX2: # %bb.0:
; AVX2-NEXT: vpbroadcastd {{.*#+}} xmm1 = [255,255,255,255]
; AVX2-NEXT: vpminud %xmm1, %xmm0, %xmm0
; AVX2-NEXT: vpackusdw %xmm0, %xmm0, %xmm0
; AVX2-NEXT: vpackuswb %xmm0, %xmm0, %xmm0
; AVX2-NEXT: retq
; AVX2-SLOW-LABEL: trunc_usat_v4i32_v4i8:
; AVX2-SLOW: # %bb.0:
; AVX2-SLOW-NEXT: vpbroadcastd {{.*#+}} xmm1 = [255,255,255,255]
; AVX2-SLOW-NEXT: vpminud %xmm1, %xmm0, %xmm0
; AVX2-SLOW-NEXT: vpackusdw %xmm0, %xmm0, %xmm0
; AVX2-SLOW-NEXT: vpackuswb %xmm0, %xmm0, %xmm0
; AVX2-SLOW-NEXT: retq
;
; AVX2-FAST-LABEL: trunc_usat_v4i32_v4i8:
; AVX2-FAST: # %bb.0:
; AVX2-FAST-NEXT: vpbroadcastd {{.*#+}} xmm1 = [255,255,255,255]
; AVX2-FAST-NEXT: vpminud %xmm1, %xmm0, %xmm0
; AVX2-FAST-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,4,8,12,u,u,u,u,u,u,u,u,u,u,u,u]
; AVX2-FAST-NEXT: retq
;
; AVX512F-LABEL: trunc_usat_v4i32_v4i8:
; AVX512F: # %bb.0:
Expand Down