186 changes: 82 additions & 104 deletions llvm/test/CodeGen/X86/fpclamptosat_vec.ll
Original file line number Diff line number Diff line change
Expand Up @@ -76,18 +76,16 @@ define <2 x i32> @utest_f64i32(<2 x double> %x) {
; CHECK-NEXT: punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]
; CHECK-NEXT: movdqa {{.*#+}} xmm0 = [9223372039002259456,9223372039002259456]
; CHECK-NEXT: pxor %xmm1, %xmm0
; CHECK-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259455,9223372039002259455]
; CHECK-NEXT: pcmpgtd %xmm0, %xmm2
; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm2[0,0,2,2]
; CHECK-NEXT: pshufd {{.*#+}} xmm2 = xmm0[0,0,2,2]
; CHECK-NEXT: movdqa {{.*#+}} xmm3 = [2147483647,2147483647,2147483647,2147483647]
; CHECK-NEXT: pcmpgtd %xmm2, %xmm3
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
; CHECK-NEXT: pcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; CHECK-NEXT: pand %xmm3, %xmm0
; CHECK-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
; CHECK-NEXT: por %xmm0, %xmm2
; CHECK-NEXT: pand %xmm2, %xmm1
; CHECK-NEXT: pandn {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
; CHECK-NEXT: por %xmm1, %xmm2
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm2[0,2,2,3]
; CHECK-NEXT: pand %xmm0, %xmm1
; CHECK-NEXT: pandn {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; CHECK-NEXT: por %xmm1, %xmm0
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
; CHECK-NEXT: retq
entry:
%conv = fptoui <2 x double> %x to <2 x i64>
Expand Down Expand Up @@ -276,31 +274,27 @@ define <4 x i32> @utest_f32i32(<4 x float> %x) {
; CHECK-NEXT: movdqa {{.*#+}} xmm3 = [9223372039002259456,9223372039002259456]
; CHECK-NEXT: movdqa %xmm0, %xmm4
; CHECK-NEXT: pxor %xmm3, %xmm4
; CHECK-NEXT: pshufd {{.*#+}} xmm5 = xmm4[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm3, %xmm5
; CHECK-NEXT: movdqa {{.*#+}} xmm6 = [9223372039002259455,9223372039002259455]
; CHECK-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
; CHECK-NEXT: movdqa {{.*#+}} xmm6 = [2147483647,2147483647,2147483647,2147483647]
; CHECK-NEXT: movdqa %xmm6, %xmm7
; CHECK-NEXT: pcmpgtd %xmm4, %xmm7
; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm7[0,0,2,2]
; CHECK-NEXT: pand %xmm5, %xmm4
; CHECK-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
; CHECK-NEXT: por %xmm4, %xmm5
; CHECK-NEXT: pand %xmm5, %xmm0
; CHECK-NEXT: pandn %xmm2, %xmm5
; CHECK-NEXT: por %xmm0, %xmm5
; CHECK-NEXT: pcmpgtd %xmm5, %xmm7
; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm3, %xmm4
; CHECK-NEXT: pand %xmm7, %xmm4
; CHECK-NEXT: pand %xmm4, %xmm0
; CHECK-NEXT: pandn %xmm2, %xmm4
; CHECK-NEXT: por %xmm0, %xmm4
; CHECK-NEXT: movdqa %xmm1, %xmm0
; CHECK-NEXT: pxor %xmm3, %xmm0
; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm0[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm3, %xmm4
; CHECK-NEXT: pcmpgtd %xmm0, %xmm6
; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm6[0,0,2,2]
; CHECK-NEXT: pand %xmm4, %xmm3
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm6[1,1,3,3]
; CHECK-NEXT: por %xmm3, %xmm0
; CHECK-NEXT: pshufd {{.*#+}} xmm5 = xmm0[0,0,2,2]
; CHECK-NEXT: pcmpgtd %xmm5, %xmm6
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm3, %xmm0
; CHECK-NEXT: pand %xmm6, %xmm0
; CHECK-NEXT: pand %xmm0, %xmm1
; CHECK-NEXT: pandn %xmm2, %xmm0
; CHECK-NEXT: por %xmm1, %xmm0
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm5[0,2]
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm4[0,2]
; CHECK-NEXT: retq
entry:
%conv = fptoui <4 x float> %x to <4 x i64>
Expand Down Expand Up @@ -560,33 +554,28 @@ define <4 x i32> @utesth_f16i32(<4 x half> %x) {
; CHECK-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259456,9223372039002259456]
; CHECK-NEXT: movdqa %xmm0, %xmm3
; CHECK-NEXT: pxor %xmm2, %xmm3
; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm3[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm2, %xmm4
; CHECK-NEXT: movdqa {{.*#+}} xmm5 = [9223372039002259455,9223372039002259455]
; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm3[0,0,2,2]
; CHECK-NEXT: movdqa {{.*#+}} xmm5 = [2147483647,2147483647,2147483647,2147483647]
; CHECK-NEXT: movdqa %xmm5, %xmm6
; CHECK-NEXT: pcmpgtd %xmm3, %xmm6
; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm6[0,0,2,2]
; CHECK-NEXT: pand %xmm4, %xmm3
; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm6[1,1,3,3]
; CHECK-NEXT: por %xmm3, %xmm4
; CHECK-NEXT: pand %xmm4, %xmm0
; CHECK-NEXT: pandn %xmm1, %xmm4
; CHECK-NEXT: por %xmm0, %xmm4
; CHECK-NEXT: pcmpgtd %xmm4, %xmm6
; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm3[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm2, %xmm3
; CHECK-NEXT: pand %xmm6, %xmm3
; CHECK-NEXT: pand %xmm3, %xmm0
; CHECK-NEXT: pandn %xmm1, %xmm3
; CHECK-NEXT: por %xmm0, %xmm3
; CHECK-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
; CHECK-NEXT: movdqa %xmm6, %xmm0
; CHECK-NEXT: pxor %xmm2, %xmm0
; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm0[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm2, %xmm3
; CHECK-NEXT: pcmpgtd %xmm0, %xmm5
; CHECK-NEXT: pshufd {{.*#+}} xmm2 = xmm5[0,0,2,2]
; CHECK-NEXT: pand %xmm3, %xmm2
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm5[1,1,3,3]
; CHECK-NEXT: por %xmm2, %xmm0
; CHECK-NEXT: movdqa %xmm6, %xmm2
; CHECK-NEXT: pand %xmm0, %xmm2
; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm0[0,0,2,2]
; CHECK-NEXT: pcmpgtd %xmm4, %xmm5
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm2, %xmm0
; CHECK-NEXT: pand %xmm5, %xmm0
; CHECK-NEXT: pand %xmm0, %xmm6
; CHECK-NEXT: pandn %xmm1, %xmm0
; CHECK-NEXT: por %xmm2, %xmm0
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm4[0,2]
; CHECK-NEXT: por %xmm6, %xmm0
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm3[0,2]
; CHECK-NEXT: addq $72, %rsp
; CHECK-NEXT: .cfi_def_cfa_offset 8
; CHECK-NEXT: retq
Expand Down Expand Up @@ -1661,18 +1650,16 @@ define <2 x i32> @utest_f64i32_mm(<2 x double> %x) {
; CHECK-NEXT: punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]
; CHECK-NEXT: movdqa {{.*#+}} xmm0 = [9223372039002259456,9223372039002259456]
; CHECK-NEXT: pxor %xmm1, %xmm0
; CHECK-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259455,9223372039002259455]
; CHECK-NEXT: pcmpgtd %xmm0, %xmm2
; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm2[0,0,2,2]
; CHECK-NEXT: pshufd {{.*#+}} xmm2 = xmm0[0,0,2,2]
; CHECK-NEXT: movdqa {{.*#+}} xmm3 = [2147483647,2147483647,2147483647,2147483647]
; CHECK-NEXT: pcmpgtd %xmm2, %xmm3
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
; CHECK-NEXT: pcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; CHECK-NEXT: pand %xmm3, %xmm0
; CHECK-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
; CHECK-NEXT: por %xmm0, %xmm2
; CHECK-NEXT: pand %xmm2, %xmm1
; CHECK-NEXT: pandn {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
; CHECK-NEXT: por %xmm1, %xmm2
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm2[0,2,2,3]
; CHECK-NEXT: pand %xmm0, %xmm1
; CHECK-NEXT: pandn {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; CHECK-NEXT: por %xmm1, %xmm0
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
; CHECK-NEXT: retq
entry:
%conv = fptoui <2 x double> %x to <2 x i64>
Expand Down Expand Up @@ -1855,32 +1842,28 @@ define <4 x i32> @utest_f32i32_mm(<4 x float> %x) {
; CHECK-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259456,9223372039002259456]
; CHECK-NEXT: movdqa %xmm0, %xmm3
; CHECK-NEXT: pxor %xmm2, %xmm3
; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm3[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm2, %xmm4
; CHECK-NEXT: movdqa {{.*#+}} xmm5 = [9223372039002259455,9223372039002259455]
; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm3[0,0,2,2]
; CHECK-NEXT: movdqa {{.*#+}} xmm5 = [2147483647,2147483647,2147483647,2147483647]
; CHECK-NEXT: movdqa %xmm5, %xmm6
; CHECK-NEXT: pcmpgtd %xmm3, %xmm6
; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm6[0,0,2,2]
; CHECK-NEXT: pand %xmm4, %xmm3
; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm6[1,1,3,3]
; CHECK-NEXT: por %xmm3, %xmm4
; CHECK-NEXT: movdqa {{.*#+}} xmm3 = [4294967295,4294967295]
; CHECK-NEXT: pand %xmm4, %xmm0
; CHECK-NEXT: pandn %xmm3, %xmm4
; CHECK-NEXT: por %xmm0, %xmm4
; CHECK-NEXT: pcmpgtd %xmm4, %xmm6
; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm3[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm2, %xmm3
; CHECK-NEXT: pand %xmm6, %xmm3
; CHECK-NEXT: movdqa {{.*#+}} xmm4 = [4294967295,4294967295]
; CHECK-NEXT: pand %xmm3, %xmm0
; CHECK-NEXT: pandn %xmm4, %xmm3
; CHECK-NEXT: por %xmm0, %xmm3
; CHECK-NEXT: movdqa %xmm1, %xmm0
; CHECK-NEXT: pxor %xmm2, %xmm0
; CHECK-NEXT: pshufd {{.*#+}} xmm6 = xmm0[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm2, %xmm6
; CHECK-NEXT: pcmpgtd %xmm0, %xmm5
; CHECK-NEXT: pshufd {{.*#+}} xmm2 = xmm5[0,0,2,2]
; CHECK-NEXT: pand %xmm6, %xmm2
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm5[1,1,3,3]
; CHECK-NEXT: por %xmm2, %xmm0
; CHECK-NEXT: pshufd {{.*#+}} xmm6 = xmm0[0,0,2,2]
; CHECK-NEXT: pcmpgtd %xmm6, %xmm5
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm2, %xmm0
; CHECK-NEXT: pand %xmm5, %xmm0
; CHECK-NEXT: pand %xmm0, %xmm1
; CHECK-NEXT: pandn %xmm3, %xmm0
; CHECK-NEXT: pandn %xmm4, %xmm0
; CHECK-NEXT: por %xmm1, %xmm0
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm4[0,2]
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm3[0,2]
; CHECK-NEXT: retq
entry:
%conv = fptoui <4 x float> %x to <4 x i64>
Expand Down Expand Up @@ -2134,34 +2117,29 @@ define <4 x i32> @utesth_f16i32_mm(<4 x half> %x) {
; CHECK-NEXT: movdqa {{.*#+}} xmm1 = [9223372039002259456,9223372039002259456]
; CHECK-NEXT: movdqa %xmm0, %xmm2
; CHECK-NEXT: pxor %xmm1, %xmm2
; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm2[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm1, %xmm3
; CHECK-NEXT: movdqa {{.*#+}} xmm4 = [9223372039002259455,9223372039002259455]
; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm2[0,0,2,2]
; CHECK-NEXT: movdqa {{.*#+}} xmm4 = [2147483647,2147483647,2147483647,2147483647]
; CHECK-NEXT: movdqa %xmm4, %xmm5
; CHECK-NEXT: pcmpgtd %xmm2, %xmm5
; CHECK-NEXT: pshufd {{.*#+}} xmm2 = xmm5[0,0,2,2]
; CHECK-NEXT: pand %xmm3, %xmm2
; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm5[1,1,3,3]
; CHECK-NEXT: por %xmm2, %xmm3
; CHECK-NEXT: movdqa {{.*#+}} xmm2 = [4294967295,4294967295]
; CHECK-NEXT: pand %xmm3, %xmm0
; CHECK-NEXT: pandn %xmm2, %xmm3
; CHECK-NEXT: por %xmm0, %xmm3
; CHECK-NEXT: pcmpgtd %xmm3, %xmm5
; CHECK-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm1, %xmm2
; CHECK-NEXT: pand %xmm5, %xmm2
; CHECK-NEXT: movdqa {{.*#+}} xmm3 = [4294967295,4294967295]
; CHECK-NEXT: pand %xmm2, %xmm0
; CHECK-NEXT: pandn %xmm3, %xmm2
; CHECK-NEXT: por %xmm0, %xmm2
; CHECK-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
; CHECK-NEXT: movdqa %xmm6, %xmm0
; CHECK-NEXT: pxor %xmm1, %xmm0
; CHECK-NEXT: pshufd {{.*#+}} xmm5 = xmm0[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm1, %xmm5
; CHECK-NEXT: pcmpgtd %xmm0, %xmm4
; CHECK-NEXT: pshufd {{.*#+}} xmm1 = xmm4[0,0,2,2]
; CHECK-NEXT: pand %xmm5, %xmm1
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm4[1,1,3,3]
; CHECK-NEXT: por %xmm1, %xmm0
; CHECK-NEXT: movdqa %xmm6, %xmm1
; CHECK-NEXT: pand %xmm0, %xmm1
; CHECK-NEXT: pandn %xmm2, %xmm0
; CHECK-NEXT: por %xmm1, %xmm0
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm3[0,2]
; CHECK-NEXT: pshufd {{.*#+}} xmm5 = xmm0[0,0,2,2]
; CHECK-NEXT: pcmpgtd %xmm5, %xmm4
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
; CHECK-NEXT: pcmpeqd %xmm1, %xmm0
; CHECK-NEXT: pand %xmm4, %xmm0
; CHECK-NEXT: pand %xmm0, %xmm6
; CHECK-NEXT: pandn %xmm3, %xmm0
; CHECK-NEXT: por %xmm6, %xmm0
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm2[0,2]
; CHECK-NEXT: addq $72, %rsp
; CHECK-NEXT: .cfi_def_cfa_offset 8
; CHECK-NEXT: retq
Expand Down
410 changes: 184 additions & 226 deletions llvm/test/CodeGen/X86/masked_store_trunc_usat.ll

Large diffs are not rendered by default.

477 changes: 222 additions & 255 deletions llvm/test/CodeGen/X86/psubus.ll

Large diffs are not rendered by default.

20 changes: 8 additions & 12 deletions llvm/test/CodeGen/X86/sat-add.ll
Original file line number Diff line number Diff line change
Expand Up @@ -750,29 +750,25 @@ define <2 x i64> @unsigned_sat_constant_v2i64_using_cmp_notval(<2 x i64> %x) {
; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [42,42]
; SSE2-NEXT: paddq %xmm0, %xmm1
; SSE2-NEXT: pxor {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm0[1,1,3,3]
; SSE2-NEXT: pcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm0[0,0,2,2]
; SSE2-NEXT: pcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
; SSE2-NEXT: pand %xmm3, %xmm2
; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm0[0,0,2,2]
; SSE2-NEXT: pcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
; SSE2-NEXT: pcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; SSE2-NEXT: pand %xmm2, %xmm0
; SSE2-NEXT: por %xmm1, %xmm0
; SSE2-NEXT: por %xmm2, %xmm0
; SSE2-NEXT: retq
;
; SSE41-LABEL: unsigned_sat_constant_v2i64_using_cmp_notval:
; SSE41: # %bb.0:
; SSE41-NEXT: movdqa {{.*#+}} xmm1 = [42,42]
; SSE41-NEXT: paddq %xmm0, %xmm1
; SSE41-NEXT: pxor {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; SSE41-NEXT: pshufd {{.*#+}} xmm2 = xmm0[1,1,3,3]
; SSE41-NEXT: pcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; SSE41-NEXT: pshufd {{.*#+}} xmm3 = xmm0[0,0,2,2]
; SSE41-NEXT: pcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
; SSE41-NEXT: pand %xmm3, %xmm2
; SSE41-NEXT: pshufd {{.*#+}} xmm2 = xmm0[0,0,2,2]
; SSE41-NEXT: pcmpgtd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
; SSE41-NEXT: pcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; SSE41-NEXT: pand %xmm2, %xmm0
; SSE41-NEXT: por %xmm1, %xmm0
; SSE41-NEXT: por %xmm2, %xmm0
; SSE41-NEXT: retq
;
; SSE42-LABEL: unsigned_sat_constant_v2i64_using_cmp_notval:
Expand Down
28 changes: 12 additions & 16 deletions llvm/test/CodeGen/X86/vec_setcc-2.ll
Original file line number Diff line number Diff line change
Expand Up @@ -303,14 +303,12 @@ define <2 x i1> @uge_v2i64_splat(<2 x i64> %x) {
; SSE2-LABEL: uge_v2i64_splat:
; SSE2: ## %bb.0:
; SSE2-NEXT: pxor {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [9223372039002259898,9223372039002259898]
; SSE2-NEXT: pcmpgtd %xmm0, %xmm1
; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm1[0,0,2,2]
; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
; SSE2-NEXT: pcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; SSE2-NEXT: pand %xmm2, %xmm0
; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
; SSE2-NEXT: por %xmm0, %xmm1
; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm0[0,0,2,2]
; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147484090,2147484090,2147484090,2147484090]
; SSE2-NEXT: pcmpgtd %xmm1, %xmm2
; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,3,3]
; SSE2-NEXT: pcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
; SSE2-NEXT: pand %xmm2, %xmm1
; SSE2-NEXT: pcmpeqd %xmm0, %xmm0
; SSE2-NEXT: pxor %xmm1, %xmm0
; SSE2-NEXT: retq
Expand Down Expand Up @@ -379,14 +377,12 @@ define <2 x i1> @ult_v2i64_splat(<2 x i64> %x) {
; SSE2-LABEL: ult_v2i64_splat:
; SSE2: ## %bb.0:
; SSE2-NEXT: pxor {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [9223372039002259898,9223372039002259898]
; SSE2-NEXT: pcmpgtd %xmm0, %xmm1
; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm1[0,0,2,2]
; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm0[1,1,3,3]
; SSE2-NEXT: pcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm3
; SSE2-NEXT: pand %xmm2, %xmm3
; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,3,3]
; SSE2-NEXT: por %xmm3, %xmm0
; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm0[0,0,2,2]
; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147484090,2147484090,2147484090,2147484090]
; SSE2-NEXT: pcmpgtd %xmm1, %xmm2
; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
; SSE2-NEXT: pcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
; SSE2-NEXT: pand %xmm2, %xmm0
; SSE2-NEXT: retq
;
; SSE41-LABEL: ult_v2i64_splat:
Expand Down
6,346 changes: 1,953 additions & 4,393 deletions llvm/test/CodeGen/X86/vector-popcnt-128-ult-ugt.ll

Large diffs are not rendered by default.

2,414 changes: 1,108 additions & 1,306 deletions llvm/test/CodeGen/X86/vector-trunc-usat.ll

Large diffs are not rendered by default.