1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefix=SSE --check-prefix=SSE2 3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse4.2 | FileCheck %s --check-prefix=SSE --check-prefix=SSE4 4*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefix=AVX --check-prefix=AVX1 5*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2 -mattr=+avx2 | FileCheck %s --check-prefix=AVX --check-prefix=AVX2 6*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=knl | FileCheck %s --check-prefix=AVX --check-prefix=AVX512F 7*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=skx | FileCheck %s --check-prefix=AVX --check-prefix=AVX512F --check-prefix=AVX512BW --check-prefix=AVX512VL 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test1(<16 x i8> %a, <16 x i8> %b) { 10*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test1: 11*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 12*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 13*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm0, %xmm2 14*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm0 15*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 16*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm0 17*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 18*9880d681SAndroid Build Coastguard Worker; 19*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test1: 20*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 21*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm1, %xmm0 22*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 23*9880d681SAndroid Build Coastguard Worker; 24*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test1: 25*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 26*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminsb %xmm1, %xmm0, %xmm0 27*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 28*9880d681SAndroid Build Coastguard Workerentry: 29*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <16 x i8> %a, %b 30*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b 31*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 32*9880d681SAndroid Build Coastguard Worker} 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test2(<16 x i8> %a, <16 x i8> %b) { 35*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test2: 36*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 37*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm2 38*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm1, %xmm2 39*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm3 40*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 41*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 42*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 43*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 44*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 45*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 46*9880d681SAndroid Build Coastguard Worker; 47*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test2: 48*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 49*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm1, %xmm0 50*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 51*9880d681SAndroid Build Coastguard Worker; 52*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test2: 53*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 54*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminsb %xmm1, %xmm0, %xmm0 55*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 56*9880d681SAndroid Build Coastguard Workerentry: 57*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <16 x i8> %a, %b 58*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b 59*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 60*9880d681SAndroid Build Coastguard Worker} 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test3(<16 x i8> %a, <16 x i8> %b) { 63*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test3: 64*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 65*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm2 66*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm1, %xmm2 67*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm0 68*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 69*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm2 70*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 71*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 72*9880d681SAndroid Build Coastguard Worker; 73*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test3: 74*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 75*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm1, %xmm0 76*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 77*9880d681SAndroid Build Coastguard Worker; 78*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test3: 79*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 80*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 81*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 82*9880d681SAndroid Build Coastguard Workerentry: 83*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <16 x i8> %a, %b 84*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b 85*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 86*9880d681SAndroid Build Coastguard Worker} 87*9880d681SAndroid Build Coastguard Worker 88*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test4(<16 x i8> %a, <16 x i8> %b) { 89*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test4: 90*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 91*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 92*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm0, %xmm3 93*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 94*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 95*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm3 96*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 97*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 98*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 99*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 100*9880d681SAndroid Build Coastguard Worker; 101*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test4: 102*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 103*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm1, %xmm0 104*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 105*9880d681SAndroid Build Coastguard Worker; 106*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test4: 107*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 108*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 109*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 110*9880d681SAndroid Build Coastguard Workerentry: 111*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <16 x i8> %a, %b 112*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b 113*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 114*9880d681SAndroid Build Coastguard Worker} 115*9880d681SAndroid Build Coastguard Worker 116*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test5(<16 x i8> %a, <16 x i8> %b) { 117*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test5: 118*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 119*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm1, %xmm0 120*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 121*9880d681SAndroid Build Coastguard Worker; 122*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test5: 123*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 124*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminub %xmm1, %xmm0, %xmm0 125*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 126*9880d681SAndroid Build Coastguard Workerentry: 127*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <16 x i8> %a, %b 128*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b 129*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 130*9880d681SAndroid Build Coastguard Worker} 131*9880d681SAndroid Build Coastguard Worker 132*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test6(<16 x i8> %a, <16 x i8> %b) { 133*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test6: 134*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 135*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm1, %xmm0 136*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 137*9880d681SAndroid Build Coastguard Worker; 138*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test6: 139*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 140*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminub %xmm1, %xmm0, %xmm0 141*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 142*9880d681SAndroid Build Coastguard Workerentry: 143*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <16 x i8> %a, %b 144*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b 145*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 146*9880d681SAndroid Build Coastguard Worker} 147*9880d681SAndroid Build Coastguard Worker 148*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test7(<16 x i8> %a, <16 x i8> %b) { 149*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test7: 150*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 151*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm1, %xmm0 152*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 153*9880d681SAndroid Build Coastguard Worker; 154*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test7: 155*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 156*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 157*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 158*9880d681SAndroid Build Coastguard Workerentry: 159*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <16 x i8> %a, %b 160*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b 161*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 162*9880d681SAndroid Build Coastguard Worker} 163*9880d681SAndroid Build Coastguard Worker 164*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test8(<16 x i8> %a, <16 x i8> %b) { 165*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test8: 166*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 167*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm1, %xmm0 168*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 169*9880d681SAndroid Build Coastguard Worker; 170*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test8: 171*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 172*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 173*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 174*9880d681SAndroid Build Coastguard Workerentry: 175*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <16 x i8> %a, %b 176*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b 177*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 178*9880d681SAndroid Build Coastguard Worker} 179*9880d681SAndroid Build Coastguard Worker 180*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test9(<8 x i16> %a, <8 x i16> %b) { 181*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test9: 182*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 183*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm1, %xmm0 184*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 185*9880d681SAndroid Build Coastguard Worker; 186*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test9: 187*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 188*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminsw %xmm1, %xmm0, %xmm0 189*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 190*9880d681SAndroid Build Coastguard Workerentry: 191*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <8 x i16> %a, %b 192*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b 193*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 194*9880d681SAndroid Build Coastguard Worker} 195*9880d681SAndroid Build Coastguard Worker 196*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test10(<8 x i16> %a, <8 x i16> %b) { 197*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test10: 198*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 199*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm1, %xmm0 200*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 201*9880d681SAndroid Build Coastguard Worker; 202*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test10: 203*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 204*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminsw %xmm1, %xmm0, %xmm0 205*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 206*9880d681SAndroid Build Coastguard Workerentry: 207*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <8 x i16> %a, %b 208*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b 209*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 210*9880d681SAndroid Build Coastguard Worker} 211*9880d681SAndroid Build Coastguard Worker 212*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test11(<8 x i16> %a, <8 x i16> %b) { 213*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test11: 214*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 215*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm1, %xmm0 216*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 217*9880d681SAndroid Build Coastguard Worker; 218*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test11: 219*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 220*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 221*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 222*9880d681SAndroid Build Coastguard Workerentry: 223*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <8 x i16> %a, %b 224*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b 225*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 226*9880d681SAndroid Build Coastguard Worker} 227*9880d681SAndroid Build Coastguard Worker 228*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test12(<8 x i16> %a, <8 x i16> %b) { 229*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test12: 230*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 231*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm1, %xmm0 232*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 233*9880d681SAndroid Build Coastguard Worker; 234*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test12: 235*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 236*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 237*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 238*9880d681SAndroid Build Coastguard Workerentry: 239*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <8 x i16> %a, %b 240*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b 241*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 242*9880d681SAndroid Build Coastguard Worker} 243*9880d681SAndroid Build Coastguard Worker 244*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test13(<8 x i16> %a, <8 x i16> %b) { 245*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test13: 246*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 247*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [32768,32768,32768,32768,32768,32768,32768,32768] 248*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 249*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 250*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm2 251*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm3, %xmm2 252*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm0 253*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 254*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm0 255*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 256*9880d681SAndroid Build Coastguard Worker; 257*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test13: 258*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 259*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm1, %xmm0 260*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 261*9880d681SAndroid Build Coastguard Worker; 262*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test13: 263*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 264*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminuw %xmm1, %xmm0, %xmm0 265*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 266*9880d681SAndroid Build Coastguard Workerentry: 267*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <8 x i16> %a, %b 268*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b 269*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 270*9880d681SAndroid Build Coastguard Worker} 271*9880d681SAndroid Build Coastguard Worker 272*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test14(<8 x i16> %a, <8 x i16> %b) { 273*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test14: 274*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 275*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm2 276*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm1, %xmm2 277*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm3 278*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm2, %xmm3 279*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm0 280*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 281*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm0 282*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 283*9880d681SAndroid Build Coastguard Worker; 284*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test14: 285*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 286*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm1, %xmm0 287*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 288*9880d681SAndroid Build Coastguard Worker; 289*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test14: 290*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 291*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminuw %xmm1, %xmm0, %xmm0 292*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 293*9880d681SAndroid Build Coastguard Workerentry: 294*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <8 x i16> %a, %b 295*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b 296*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 297*9880d681SAndroid Build Coastguard Worker} 298*9880d681SAndroid Build Coastguard Worker 299*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test15(<8 x i16> %a, <8 x i16> %b) { 300*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test15: 301*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 302*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [32768,32768,32768,32768,32768,32768,32768,32768] 303*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 304*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 305*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 306*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm3, %xmm2 307*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm0 308*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 309*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm0 310*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 311*9880d681SAndroid Build Coastguard Worker; 312*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test15: 313*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 314*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm1, %xmm0 315*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 316*9880d681SAndroid Build Coastguard Worker; 317*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test15: 318*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 319*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 320*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 321*9880d681SAndroid Build Coastguard Workerentry: 322*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <8 x i16> %a, %b 323*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b 324*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 325*9880d681SAndroid Build Coastguard Worker} 326*9880d681SAndroid Build Coastguard Worker 327*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test16(<8 x i16> %a, <8 x i16> %b) { 328*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test16: 329*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 330*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 331*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm0, %xmm2 332*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm3 333*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm2, %xmm3 334*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm0 335*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 336*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm0 337*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 338*9880d681SAndroid Build Coastguard Worker; 339*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test16: 340*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 341*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm1, %xmm0 342*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 343*9880d681SAndroid Build Coastguard Worker; 344*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test16: 345*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 346*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 347*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 348*9880d681SAndroid Build Coastguard Workerentry: 349*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <8 x i16> %a, %b 350*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b 351*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 352*9880d681SAndroid Build Coastguard Worker} 353*9880d681SAndroid Build Coastguard Worker 354*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test17(<4 x i32> %a, <4 x i32> %b) { 355*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test17: 356*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 357*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 358*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm2 359*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm0 360*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 361*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm0 362*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 363*9880d681SAndroid Build Coastguard Worker; 364*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test17: 365*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 366*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm1, %xmm0 367*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 368*9880d681SAndroid Build Coastguard Worker; 369*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test17: 370*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 371*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminsd %xmm1, %xmm0, %xmm0 372*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 373*9880d681SAndroid Build Coastguard Workerentry: 374*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <4 x i32> %a, %b 375*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b 376*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 377*9880d681SAndroid Build Coastguard Worker} 378*9880d681SAndroid Build Coastguard Worker 379*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test18(<4 x i32> %a, <4 x i32> %b) { 380*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test18: 381*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 382*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm2 383*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm1, %xmm2 384*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm3 385*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 386*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 387*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 388*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 389*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 390*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 391*9880d681SAndroid Build Coastguard Worker; 392*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test18: 393*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 394*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm1, %xmm0 395*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 396*9880d681SAndroid Build Coastguard Worker; 397*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test18: 398*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 399*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminsd %xmm1, %xmm0, %xmm0 400*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 401*9880d681SAndroid Build Coastguard Workerentry: 402*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <4 x i32> %a, %b 403*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b 404*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 405*9880d681SAndroid Build Coastguard Worker} 406*9880d681SAndroid Build Coastguard Worker 407*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test19(<4 x i32> %a, <4 x i32> %b) { 408*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test19: 409*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 410*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm2 411*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm1, %xmm2 412*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm0 413*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 414*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm2 415*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 416*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 417*9880d681SAndroid Build Coastguard Worker; 418*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test19: 419*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 420*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm1, %xmm0 421*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 422*9880d681SAndroid Build Coastguard Worker; 423*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test19: 424*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 425*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 426*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 427*9880d681SAndroid Build Coastguard Workerentry: 428*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <4 x i32> %a, %b 429*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b 430*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 431*9880d681SAndroid Build Coastguard Worker} 432*9880d681SAndroid Build Coastguard Worker 433*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test20(<4 x i32> %a, <4 x i32> %b) { 434*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test20: 435*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 436*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 437*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm3 438*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 439*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 440*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm3 441*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 442*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 443*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 444*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 445*9880d681SAndroid Build Coastguard Worker; 446*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test20: 447*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 448*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm1, %xmm0 449*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 450*9880d681SAndroid Build Coastguard Worker; 451*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test20: 452*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 453*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 454*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 455*9880d681SAndroid Build Coastguard Workerentry: 456*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <4 x i32> %a, %b 457*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b 458*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 459*9880d681SAndroid Build Coastguard Worker} 460*9880d681SAndroid Build Coastguard Worker 461*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test21(<4 x i32> %a, <4 x i32> %b) { 462*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test21: 463*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 464*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648] 465*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 466*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 467*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm2 468*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm2 469*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm0 470*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 471*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm0 472*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 473*9880d681SAndroid Build Coastguard Worker; 474*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test21: 475*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 476*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm1, %xmm0 477*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 478*9880d681SAndroid Build Coastguard Worker; 479*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test21: 480*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 481*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminud %xmm1, %xmm0, %xmm0 482*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 483*9880d681SAndroid Build Coastguard Workerentry: 484*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <4 x i32> %a, %b 485*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b 486*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 487*9880d681SAndroid Build Coastguard Worker} 488*9880d681SAndroid Build Coastguard Worker 489*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test22(<4 x i32> %a, <4 x i32> %b) { 490*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test22: 491*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 492*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [2147483648,2147483648,2147483648,2147483648] 493*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 494*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 495*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm3 496*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm2, %xmm3 497*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 498*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 499*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm3 500*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 501*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 502*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 503*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 504*9880d681SAndroid Build Coastguard Worker; 505*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test22: 506*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 507*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm1, %xmm0 508*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 509*9880d681SAndroid Build Coastguard Worker; 510*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test22: 511*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 512*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminud %xmm1, %xmm0, %xmm0 513*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 514*9880d681SAndroid Build Coastguard Workerentry: 515*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <4 x i32> %a, %b 516*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b 517*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 518*9880d681SAndroid Build Coastguard Worker} 519*9880d681SAndroid Build Coastguard Worker 520*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test23(<4 x i32> %a, <4 x i32> %b) { 521*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test23: 522*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 523*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648] 524*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 525*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 526*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm2 528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm0 529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm0 531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 532*9880d681SAndroid Build Coastguard Worker; 533*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test23: 534*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 535*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm1, %xmm0 536*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 537*9880d681SAndroid Build Coastguard Worker; 538*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test23: 539*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 540*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 541*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 542*9880d681SAndroid Build Coastguard Workerentry: 543*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <4 x i32> %a, %b 544*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b 545*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 546*9880d681SAndroid Build Coastguard Worker} 547*9880d681SAndroid Build Coastguard Worker 548*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test24(<4 x i32> %a, <4 x i32> %b) { 549*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test24: 550*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 551*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [2147483648,2147483648,2147483648,2147483648] 552*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm2 553*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 554*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm3 555*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm2, %xmm3 556*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 557*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 558*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm3 559*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 560*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 561*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 562*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 563*9880d681SAndroid Build Coastguard Worker; 564*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test24: 565*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 566*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm1, %xmm0 567*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 568*9880d681SAndroid Build Coastguard Worker; 569*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test24: 570*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 571*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 572*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 573*9880d681SAndroid Build Coastguard Workerentry: 574*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <4 x i32> %a, %b 575*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b 576*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 577*9880d681SAndroid Build Coastguard Worker} 578*9880d681SAndroid Build Coastguard Worker 579*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test25(<32 x i8> %a, <32 x i8> %b) { 580*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test25: 581*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 582*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 583*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm1, %xmm4 584*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm5 585*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm0, %xmm5 586*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm0 587*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 588*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm0 589*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm1 590*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm4 591*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm1 592*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 593*9880d681SAndroid Build Coastguard Worker; 594*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test25: 595*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 596*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm2, %xmm0 597*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm3, %xmm1 598*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 599*9880d681SAndroid Build Coastguard Worker; 600*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test25: 601*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 602*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 603*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 604*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm2, %xmm3, %xmm2 605*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm1, %xmm0, %xmm0 606*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 607*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 608*9880d681SAndroid Build Coastguard Worker; 609*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test25: 610*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 611*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsb %ymm1, %ymm0, %ymm0 612*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 613*9880d681SAndroid Build Coastguard Worker; 614*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test25: 615*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 616*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsb %ymm1, %ymm0, %ymm0 617*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 618*9880d681SAndroid Build Coastguard Workerentry: 619*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <32 x i8> %a, %b 620*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b 621*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 622*9880d681SAndroid Build Coastguard Worker} 623*9880d681SAndroid Build Coastguard Worker 624*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test26(<32 x i8> %a, <32 x i8> %b) { 625*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test26: 626*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 627*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm6 628*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm3, %xmm6 629*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm7, %xmm7 630*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm4 631*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 632*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 633*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm2, %xmm5 634*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm7 635*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 636*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm7 637*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm5 638*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm6 639*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm4 640*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm4 641*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 642*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 643*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 644*9880d681SAndroid Build Coastguard Worker; 645*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test26: 646*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 647*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm2, %xmm0 648*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm3, %xmm1 649*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 650*9880d681SAndroid Build Coastguard Worker; 651*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test26: 652*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 653*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 654*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 655*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm2, %xmm3, %xmm2 656*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm1, %xmm0, %xmm0 657*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 658*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 659*9880d681SAndroid Build Coastguard Worker; 660*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test26: 661*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 662*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsb %ymm1, %ymm0, %ymm0 663*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 664*9880d681SAndroid Build Coastguard Worker; 665*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test26: 666*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 667*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsb %ymm1, %ymm0, %ymm0 668*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 669*9880d681SAndroid Build Coastguard Workerentry: 670*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <32 x i8> %a, %b 671*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b 672*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 673*9880d681SAndroid Build Coastguard Worker} 674*9880d681SAndroid Build Coastguard Worker 675*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test27(<32 x i8> %a, <32 x i8> %b) { 676*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test27: 677*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 678*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 679*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm3, %xmm4 680*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 681*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm2, %xmm5 682*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm0 683*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 684*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm5 685*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm1 686*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm4 687*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm4 688*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 689*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 690*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 691*9880d681SAndroid Build Coastguard Worker; 692*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test27: 693*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 694*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm2, %xmm0 695*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm3, %xmm1 696*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 697*9880d681SAndroid Build Coastguard Worker; 698*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test27: 699*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 700*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 701*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 702*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm2, %xmm3, %xmm2 703*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 704*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 705*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 706*9880d681SAndroid Build Coastguard Worker; 707*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test27: 708*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 709*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsb %ymm1, %ymm0, %ymm0 710*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 711*9880d681SAndroid Build Coastguard Worker; 712*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test27: 713*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 714*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsb %ymm1, %ymm0, %ymm0 715*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 716*9880d681SAndroid Build Coastguard Workerentry: 717*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <32 x i8> %a, %b 718*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b 719*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 720*9880d681SAndroid Build Coastguard Worker} 721*9880d681SAndroid Build Coastguard Worker 722*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test28(<32 x i8> %a, <32 x i8> %b) { 723*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test28: 724*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 725*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 726*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm1, %xmm6 727*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 728*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm5 729*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 730*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm7 731*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm0, %xmm7 732*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 733*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm7 734*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm4 735*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm4 736*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm6 737*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm5 738*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 739*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 740*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 741*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 742*9880d681SAndroid Build Coastguard Worker; 743*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test28: 744*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 745*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm2, %xmm0 746*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm3, %xmm1 747*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 748*9880d681SAndroid Build Coastguard Worker; 749*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test28: 750*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 751*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 752*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 753*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm2, %xmm3, %xmm2 754*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 755*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 756*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 757*9880d681SAndroid Build Coastguard Worker; 758*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test28: 759*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 760*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsb %ymm1, %ymm0, %ymm0 761*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 762*9880d681SAndroid Build Coastguard Worker; 763*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test28: 764*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 765*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsb %ymm1, %ymm0, %ymm0 766*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 767*9880d681SAndroid Build Coastguard Workerentry: 768*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <32 x i8> %a, %b 769*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b 770*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 771*9880d681SAndroid Build Coastguard Worker} 772*9880d681SAndroid Build Coastguard Worker 773*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test29(<32 x i8> %a, <32 x i8> %b) { 774*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test29: 775*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 776*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm2, %xmm0 777*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm3, %xmm1 778*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 779*9880d681SAndroid Build Coastguard Worker; 780*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test29: 781*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 782*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 783*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 784*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm2, %xmm3, %xmm2 785*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm1, %xmm0, %xmm0 786*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 787*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 788*9880d681SAndroid Build Coastguard Worker; 789*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test29: 790*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 791*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminub %ymm1, %ymm0, %ymm0 792*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 793*9880d681SAndroid Build Coastguard Worker; 794*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test29: 795*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 796*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminub %ymm1, %ymm0, %ymm0 797*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 798*9880d681SAndroid Build Coastguard Workerentry: 799*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <32 x i8> %a, %b 800*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b 801*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 802*9880d681SAndroid Build Coastguard Worker} 803*9880d681SAndroid Build Coastguard Worker 804*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test30(<32 x i8> %a, <32 x i8> %b) { 805*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test30: 806*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 807*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm2, %xmm0 808*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm3, %xmm1 809*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 810*9880d681SAndroid Build Coastguard Worker; 811*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test30: 812*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 813*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 814*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 815*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm2, %xmm3, %xmm2 816*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm1, %xmm0, %xmm0 817*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 818*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 819*9880d681SAndroid Build Coastguard Worker; 820*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test30: 821*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 822*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminub %ymm1, %ymm0, %ymm0 823*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 824*9880d681SAndroid Build Coastguard Worker; 825*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test30: 826*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 827*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminub %ymm1, %ymm0, %ymm0 828*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 829*9880d681SAndroid Build Coastguard Workerentry: 830*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <32 x i8> %a, %b 831*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b 832*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 833*9880d681SAndroid Build Coastguard Worker} 834*9880d681SAndroid Build Coastguard Worker 835*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test31(<32 x i8> %a, <32 x i8> %b) { 836*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test31: 837*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 838*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm2, %xmm0 839*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm3, %xmm1 840*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 841*9880d681SAndroid Build Coastguard Worker; 842*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test31: 843*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 844*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 845*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 846*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm2, %xmm3, %xmm2 847*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 848*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 849*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 850*9880d681SAndroid Build Coastguard Worker; 851*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test31: 852*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 853*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxub %ymm1, %ymm0, %ymm0 854*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 855*9880d681SAndroid Build Coastguard Worker; 856*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test31: 857*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 858*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxub %ymm1, %ymm0, %ymm0 859*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 860*9880d681SAndroid Build Coastguard Workerentry: 861*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <32 x i8> %a, %b 862*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b 863*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 864*9880d681SAndroid Build Coastguard Worker} 865*9880d681SAndroid Build Coastguard Worker 866*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test32(<32 x i8> %a, <32 x i8> %b) { 867*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test32: 868*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 869*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm2, %xmm0 870*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm3, %xmm1 871*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 872*9880d681SAndroid Build Coastguard Worker; 873*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test32: 874*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 875*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 876*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 877*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm2, %xmm3, %xmm2 878*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 879*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 880*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 881*9880d681SAndroid Build Coastguard Worker; 882*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test32: 883*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 884*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxub %ymm1, %ymm0, %ymm0 885*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 886*9880d681SAndroid Build Coastguard Worker; 887*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test32: 888*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 889*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxub %ymm1, %ymm0, %ymm0 890*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 891*9880d681SAndroid Build Coastguard Workerentry: 892*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <32 x i8> %a, %b 893*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b 894*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 895*9880d681SAndroid Build Coastguard Worker} 896*9880d681SAndroid Build Coastguard Worker 897*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test33(<16 x i16> %a, <16 x i16> %b) { 898*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test33: 899*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 900*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm2, %xmm0 901*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm3, %xmm1 902*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 903*9880d681SAndroid Build Coastguard Worker; 904*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test33: 905*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 906*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 907*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 908*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm2, %xmm3, %xmm2 909*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm1, %xmm0, %xmm0 910*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 911*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 912*9880d681SAndroid Build Coastguard Worker; 913*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test33: 914*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 915*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsw %ymm1, %ymm0, %ymm0 916*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 917*9880d681SAndroid Build Coastguard Worker; 918*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test33: 919*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 920*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsw %ymm1, %ymm0, %ymm0 921*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 922*9880d681SAndroid Build Coastguard Workerentry: 923*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <16 x i16> %a, %b 924*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b 925*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 926*9880d681SAndroid Build Coastguard Worker} 927*9880d681SAndroid Build Coastguard Worker 928*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test34(<16 x i16> %a, <16 x i16> %b) { 929*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test34: 930*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 931*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm2, %xmm0 932*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm3, %xmm1 933*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 934*9880d681SAndroid Build Coastguard Worker; 935*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test34: 936*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 937*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 938*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 939*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm2, %xmm3, %xmm2 940*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm1, %xmm0, %xmm0 941*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 942*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 943*9880d681SAndroid Build Coastguard Worker; 944*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test34: 945*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 946*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsw %ymm1, %ymm0, %ymm0 947*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 948*9880d681SAndroid Build Coastguard Worker; 949*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test34: 950*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 951*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsw %ymm1, %ymm0, %ymm0 952*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 953*9880d681SAndroid Build Coastguard Workerentry: 954*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <16 x i16> %a, %b 955*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b 956*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 957*9880d681SAndroid Build Coastguard Worker} 958*9880d681SAndroid Build Coastguard Worker 959*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test35(<16 x i16> %a, <16 x i16> %b) { 960*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test35: 961*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 962*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm2, %xmm0 963*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm3, %xmm1 964*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 965*9880d681SAndroid Build Coastguard Worker; 966*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test35: 967*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 968*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 969*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 970*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm2, %xmm3, %xmm2 971*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 972*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 973*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 974*9880d681SAndroid Build Coastguard Worker; 975*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test35: 976*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 977*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsw %ymm1, %ymm0, %ymm0 978*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 979*9880d681SAndroid Build Coastguard Worker; 980*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test35: 981*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 982*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsw %ymm1, %ymm0, %ymm0 983*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 984*9880d681SAndroid Build Coastguard Workerentry: 985*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <16 x i16> %a, %b 986*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b 987*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 988*9880d681SAndroid Build Coastguard Worker} 989*9880d681SAndroid Build Coastguard Worker 990*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test36(<16 x i16> %a, <16 x i16> %b) { 991*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test36: 992*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 993*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm2, %xmm0 994*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm3, %xmm1 995*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 996*9880d681SAndroid Build Coastguard Worker; 997*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test36: 998*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 999*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1000*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1001*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm2, %xmm3, %xmm2 1002*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 1003*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1004*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1005*9880d681SAndroid Build Coastguard Worker; 1006*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test36: 1007*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1008*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsw %ymm1, %ymm0, %ymm0 1009*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1010*9880d681SAndroid Build Coastguard Worker; 1011*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test36: 1012*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1013*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsw %ymm1, %ymm0, %ymm0 1014*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1015*9880d681SAndroid Build Coastguard Workerentry: 1016*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <16 x i16> %a, %b 1017*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b 1018*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 1019*9880d681SAndroid Build Coastguard Worker} 1020*9880d681SAndroid Build Coastguard Worker 1021*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test37(<16 x i16> %a, <16 x i16> %b) { 1022*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test37: 1023*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1024*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [32768,32768,32768,32768,32768,32768,32768,32768] 1025*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm5 1026*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 1027*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 1028*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 1029*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm5, %xmm6 1030*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 1031*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 1032*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm4 1033*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm5, %xmm4 1034*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm0 1035*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm4 1036*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm0 1037*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm6, %xmm1 1038*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm6 1039*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm1 1040*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1041*9880d681SAndroid Build Coastguard Worker; 1042*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test37: 1043*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1044*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm2, %xmm0 1045*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm3, %xmm1 1046*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1047*9880d681SAndroid Build Coastguard Worker; 1048*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test37: 1049*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 1050*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1051*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1052*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm2, %xmm3, %xmm2 1053*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm1, %xmm0, %xmm0 1054*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1055*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1056*9880d681SAndroid Build Coastguard Worker; 1057*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test37: 1058*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1059*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminuw %ymm1, %ymm0, %ymm0 1060*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1061*9880d681SAndroid Build Coastguard Worker; 1062*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test37: 1063*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1064*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminuw %ymm1, %ymm0, %ymm0 1065*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1066*9880d681SAndroid Build Coastguard Workerentry: 1067*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <16 x i16> %a, %b 1068*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b 1069*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 1070*9880d681SAndroid Build Coastguard Worker} 1071*9880d681SAndroid Build Coastguard Worker 1072*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test38(<16 x i16> %a, <16 x i16> %b) { 1073*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test38: 1074*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1075*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 1076*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm3, %xmm4 1077*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm6 1078*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm6, %xmm4 1079*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 1080*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm2, %xmm5 1081*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm6, %xmm5 1082*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm0 1083*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 1084*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm5 1085*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm1 1086*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm4 1087*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm4 1088*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 1089*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 1090*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1091*9880d681SAndroid Build Coastguard Worker; 1092*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test38: 1093*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1094*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm2, %xmm0 1095*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm3, %xmm1 1096*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1097*9880d681SAndroid Build Coastguard Worker; 1098*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test38: 1099*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 1100*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1101*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1102*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm2, %xmm3, %xmm2 1103*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm1, %xmm0, %xmm0 1104*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1105*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1106*9880d681SAndroid Build Coastguard Worker; 1107*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test38: 1108*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1109*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminuw %ymm1, %ymm0, %ymm0 1110*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1111*9880d681SAndroid Build Coastguard Worker; 1112*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test38: 1113*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1114*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminuw %ymm1, %ymm0, %ymm0 1115*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1116*9880d681SAndroid Build Coastguard Workerentry: 1117*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <16 x i16> %a, %b 1118*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b 1119*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 1120*9880d681SAndroid Build Coastguard Worker} 1121*9880d681SAndroid Build Coastguard Worker 1122*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test39(<16 x i16> %a, <16 x i16> %b) { 1123*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test39: 1124*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1125*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [32768,32768,32768,32768,32768,32768,32768,32768] 1126*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 1127*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm6 1128*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 1129*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 1130*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm6, %xmm4 1131*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm6 1132*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm6 1133*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm5 1134*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm6, %xmm5 1135*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm0 1136*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 1137*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm0 1138*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm1 1139*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm4 1140*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm4 1141*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 1142*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1143*9880d681SAndroid Build Coastguard Worker; 1144*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test39: 1145*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1146*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm2, %xmm0 1147*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm3, %xmm1 1148*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1149*9880d681SAndroid Build Coastguard Worker; 1150*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test39: 1151*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 1152*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1153*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1154*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm2, %xmm3, %xmm2 1155*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 1156*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1157*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1158*9880d681SAndroid Build Coastguard Worker; 1159*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test39: 1160*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1161*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0 1162*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1163*9880d681SAndroid Build Coastguard Worker; 1164*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test39: 1165*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1166*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0 1167*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1168*9880d681SAndroid Build Coastguard Workerentry: 1169*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <16 x i16> %a, %b 1170*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b 1171*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 1172*9880d681SAndroid Build Coastguard Worker} 1173*9880d681SAndroid Build Coastguard Worker 1174*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test40(<16 x i16> %a, <16 x i16> %b) { 1175*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test40: 1176*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1177*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 1178*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm1, %xmm4 1179*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm5 1180*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm5, %xmm4 1181*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm6 1182*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm0, %xmm6 1183*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm5, %xmm6 1184*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm6, %xmm0 1185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm6 1186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm0 1187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm1 1188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm4 1189*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm1 1190*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1191*9880d681SAndroid Build Coastguard Worker; 1192*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test40: 1193*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1194*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm2, %xmm0 1195*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm3, %xmm1 1196*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1197*9880d681SAndroid Build Coastguard Worker; 1198*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test40: 1199*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 1200*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1201*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1202*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm2, %xmm3, %xmm2 1203*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 1204*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1205*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1206*9880d681SAndroid Build Coastguard Worker; 1207*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test40: 1208*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1209*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0 1210*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1211*9880d681SAndroid Build Coastguard Worker; 1212*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test40: 1213*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1214*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0 1215*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1216*9880d681SAndroid Build Coastguard Workerentry: 1217*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <16 x i16> %a, %b 1218*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b 1219*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 1220*9880d681SAndroid Build Coastguard Worker} 1221*9880d681SAndroid Build Coastguard Worker 1222*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test41(<8 x i32> %a, <8 x i32> %b) { 1223*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test41: 1224*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 1226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm1, %xmm4 1227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm5 1228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm5 1229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm0 1230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 1231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm0 1232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm1 1233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm4 1234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm1 1235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1236*9880d681SAndroid Build Coastguard Worker; 1237*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test41: 1238*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1239*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm2, %xmm0 1240*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm3, %xmm1 1241*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1242*9880d681SAndroid Build Coastguard Worker; 1243*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test41: 1244*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 1245*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1246*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1247*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm2, %xmm3, %xmm2 1248*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm1, %xmm0, %xmm0 1249*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1250*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1251*9880d681SAndroid Build Coastguard Worker; 1252*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test41: 1253*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1254*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsd %ymm1, %ymm0, %ymm0 1255*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1256*9880d681SAndroid Build Coastguard Worker; 1257*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test41: 1258*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1259*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsd %ymm1, %ymm0, %ymm0 1260*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1261*9880d681SAndroid Build Coastguard Workerentry: 1262*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <8 x i32> %a, %b 1263*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b 1264*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 1265*9880d681SAndroid Build Coastguard Worker} 1266*9880d681SAndroid Build Coastguard Worker 1267*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test42(<8 x i32> %a, <8 x i32> %b) { 1268*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test42: 1269*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1270*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm6 1271*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm6 1272*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm7, %xmm7 1273*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm4 1274*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 1275*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 1276*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm2, %xmm5 1277*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm7 1278*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 1279*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm7 1280*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm5 1281*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm6 1282*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm4 1283*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm4 1284*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 1285*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 1286*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1287*9880d681SAndroid Build Coastguard Worker; 1288*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test42: 1289*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1290*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm2, %xmm0 1291*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm3, %xmm1 1292*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1293*9880d681SAndroid Build Coastguard Worker; 1294*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test42: 1295*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 1296*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1297*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1298*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm2, %xmm3, %xmm2 1299*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm1, %xmm0, %xmm0 1300*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1301*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1302*9880d681SAndroid Build Coastguard Worker; 1303*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test42: 1304*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1305*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsd %ymm1, %ymm0, %ymm0 1306*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1307*9880d681SAndroid Build Coastguard Worker; 1308*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test42: 1309*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1310*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsd %ymm1, %ymm0, %ymm0 1311*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1312*9880d681SAndroid Build Coastguard Workerentry: 1313*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <8 x i32> %a, %b 1314*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b 1315*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 1316*9880d681SAndroid Build Coastguard Worker} 1317*9880d681SAndroid Build Coastguard Worker 1318*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test43(<8 x i32> %a, <8 x i32> %b) { 1319*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test43: 1320*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1321*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 1322*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 1323*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 1324*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm2, %xmm5 1325*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm0 1326*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 1327*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm5 1328*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm1 1329*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm4 1330*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm4 1331*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 1332*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 1333*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1334*9880d681SAndroid Build Coastguard Worker; 1335*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test43: 1336*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1337*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm2, %xmm0 1338*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm3, %xmm1 1339*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1340*9880d681SAndroid Build Coastguard Worker; 1341*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test43: 1342*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 1343*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1344*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1345*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm2, %xmm3, %xmm2 1346*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 1347*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1348*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1349*9880d681SAndroid Build Coastguard Worker; 1350*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test43: 1351*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1352*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsd %ymm1, %ymm0, %ymm0 1353*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1354*9880d681SAndroid Build Coastguard Worker; 1355*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test43: 1356*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1357*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsd %ymm1, %ymm0, %ymm0 1358*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1359*9880d681SAndroid Build Coastguard Workerentry: 1360*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <8 x i32> %a, %b 1361*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b 1362*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 1363*9880d681SAndroid Build Coastguard Worker} 1364*9880d681SAndroid Build Coastguard Worker 1365*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test44(<8 x i32> %a, <8 x i32> %b) { 1366*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test44: 1367*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1368*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 1369*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm1, %xmm6 1370*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 1371*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm5 1372*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 1373*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm7 1374*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm7 1375*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 1376*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm7 1377*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm4 1378*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm4 1379*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm6 1380*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm5 1381*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 1382*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 1383*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 1384*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1385*9880d681SAndroid Build Coastguard Worker; 1386*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test44: 1387*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1388*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm2, %xmm0 1389*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm3, %xmm1 1390*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1391*9880d681SAndroid Build Coastguard Worker; 1392*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test44: 1393*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 1394*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1395*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1396*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm2, %xmm3, %xmm2 1397*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 1398*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1399*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1400*9880d681SAndroid Build Coastguard Worker; 1401*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test44: 1402*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1403*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsd %ymm1, %ymm0, %ymm0 1404*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1405*9880d681SAndroid Build Coastguard Worker; 1406*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test44: 1407*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1408*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsd %ymm1, %ymm0, %ymm0 1409*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1410*9880d681SAndroid Build Coastguard Workerentry: 1411*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <8 x i32> %a, %b 1412*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b 1413*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 1414*9880d681SAndroid Build Coastguard Worker} 1415*9880d681SAndroid Build Coastguard Worker 1416*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test45(<8 x i32> %a, <8 x i32> %b) { 1417*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test45: 1418*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1419*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648] 1420*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm5 1421*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 1422*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 1423*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 1424*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm6 1425*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 1426*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 1427*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm4 1428*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm4 1429*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm0 1430*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm4 1431*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm0 1432*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm6, %xmm1 1433*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm6 1434*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm1 1435*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1436*9880d681SAndroid Build Coastguard Worker; 1437*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test45: 1438*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1439*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm2, %xmm0 1440*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm3, %xmm1 1441*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1442*9880d681SAndroid Build Coastguard Worker; 1443*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test45: 1444*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 1445*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1446*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1447*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm2, %xmm3, %xmm2 1448*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm1, %xmm0, %xmm0 1449*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1450*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1451*9880d681SAndroid Build Coastguard Worker; 1452*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test45: 1453*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1454*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminud %ymm1, %ymm0, %ymm0 1455*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1456*9880d681SAndroid Build Coastguard Worker; 1457*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test45: 1458*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1459*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminud %ymm1, %ymm0, %ymm0 1460*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1461*9880d681SAndroid Build Coastguard Workerentry: 1462*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <8 x i32> %a, %b 1463*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b 1464*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 1465*9880d681SAndroid Build Coastguard Worker} 1466*9880d681SAndroid Build Coastguard Worker 1467*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test46(<8 x i32> %a, <8 x i32> %b) { 1468*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test46: 1469*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1470*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm6 = [2147483648,2147483648,2147483648,2147483648] 1471*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 1472*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm4 1473*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm7 1474*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm7 1475*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm7 1476*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 1477*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm5 1478*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 1479*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm8 1480*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm8 1481*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm6 1482*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm6 1483*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm4 1484*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm6 1485*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm4 1486*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm4 1487*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm7 1488*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm5 1489*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm5 1490*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 1491*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 1492*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1493*9880d681SAndroid Build Coastguard Worker; 1494*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test46: 1495*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1496*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm2, %xmm0 1497*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm3, %xmm1 1498*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1499*9880d681SAndroid Build Coastguard Worker; 1500*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test46: 1501*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 1502*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1503*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1504*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm2, %xmm3, %xmm2 1505*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm1, %xmm0, %xmm0 1506*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1507*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1508*9880d681SAndroid Build Coastguard Worker; 1509*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test46: 1510*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1511*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminud %ymm1, %ymm0, %ymm0 1512*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1513*9880d681SAndroid Build Coastguard Worker; 1514*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test46: 1515*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1516*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminud %ymm1, %ymm0, %ymm0 1517*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1518*9880d681SAndroid Build Coastguard Workerentry: 1519*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <8 x i32> %a, %b 1520*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b 1521*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 1522*9880d681SAndroid Build Coastguard Worker} 1523*9880d681SAndroid Build Coastguard Worker 1524*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test47(<8 x i32> %a, <8 x i32> %b) { 1525*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test47: 1526*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [2147483648,2147483648,2147483648,2147483648] 1528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 1529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm6 1530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 1531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 1532*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm4 1533*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm6 1534*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm6 1535*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm5 1536*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm5 1537*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm0 1538*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 1539*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm0 1540*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm1 1541*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm4 1542*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm4 1543*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 1544*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1545*9880d681SAndroid Build Coastguard Worker; 1546*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test47: 1547*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1548*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm2, %xmm0 1549*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm3, %xmm1 1550*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1551*9880d681SAndroid Build Coastguard Worker; 1552*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test47: 1553*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 1554*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1555*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1556*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm2, %xmm3, %xmm2 1557*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 1558*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1559*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1560*9880d681SAndroid Build Coastguard Worker; 1561*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test47: 1562*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1563*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxud %ymm1, %ymm0, %ymm0 1564*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1565*9880d681SAndroid Build Coastguard Worker; 1566*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test47: 1567*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1568*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxud %ymm1, %ymm0, %ymm0 1569*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1570*9880d681SAndroid Build Coastguard Workerentry: 1571*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <8 x i32> %a, %b 1572*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b 1573*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 1574*9880d681SAndroid Build Coastguard Worker} 1575*9880d681SAndroid Build Coastguard Worker 1576*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test48(<8 x i32> %a, <8 x i32> %b) { 1577*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test48: 1578*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1579*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm6 = [2147483648,2147483648,2147483648,2147483648] 1580*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 1581*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm4 1582*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm7 1583*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm7 1584*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm7 1585*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 1586*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm5 1587*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 1588*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm8 1589*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm8 1590*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm6 1591*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm6 1592*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm4 1593*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm6 1594*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm4 1595*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm4 1596*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm7 1597*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm5 1598*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm5 1599*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 1600*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 1601*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1602*9880d681SAndroid Build Coastguard Worker; 1603*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test48: 1604*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1605*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm2, %xmm0 1606*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm3, %xmm1 1607*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1608*9880d681SAndroid Build Coastguard Worker; 1609*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test48: 1610*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 1611*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 1612*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 1613*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm2, %xmm3, %xmm2 1614*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 1615*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 1616*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 1617*9880d681SAndroid Build Coastguard Worker; 1618*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test48: 1619*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 1620*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxud %ymm1, %ymm0, %ymm0 1621*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 1622*9880d681SAndroid Build Coastguard Worker; 1623*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test48: 1624*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 1625*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxud %ymm1, %ymm0, %ymm0 1626*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 1627*9880d681SAndroid Build Coastguard Workerentry: 1628*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <8 x i32> %a, %b 1629*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b 1630*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 1631*9880d681SAndroid Build Coastguard Worker} 1632*9880d681SAndroid Build Coastguard Worker 1633*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test49(<16 x i8> %a, <16 x i8> %b) { 1634*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test49: 1635*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1636*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 1637*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm0, %xmm2 1638*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 1639*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 1640*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 1641*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 1642*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1643*9880d681SAndroid Build Coastguard Worker; 1644*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test49: 1645*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1646*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm1, %xmm0 1647*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1648*9880d681SAndroid Build Coastguard Worker; 1649*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test49: 1650*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1651*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 1652*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1653*9880d681SAndroid Build Coastguard Workerentry: 1654*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <16 x i8> %a, %b 1655*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a 1656*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 1657*9880d681SAndroid Build Coastguard Worker} 1658*9880d681SAndroid Build Coastguard Worker 1659*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test50(<16 x i8> %a, <16 x i8> %b) { 1660*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test50: 1661*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1662*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm2 1663*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm1, %xmm2 1664*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm3 1665*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 1666*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 1667*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm3 1668*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 1669*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 1670*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1671*9880d681SAndroid Build Coastguard Worker; 1672*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test50: 1673*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1674*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm1, %xmm0 1675*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1676*9880d681SAndroid Build Coastguard Worker; 1677*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test50: 1678*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1679*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 1680*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1681*9880d681SAndroid Build Coastguard Workerentry: 1682*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <16 x i8> %a, %b 1683*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a 1684*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 1685*9880d681SAndroid Build Coastguard Worker} 1686*9880d681SAndroid Build Coastguard Worker 1687*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test51(<16 x i8> %a, <16 x i8> %b) { 1688*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test51: 1689*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1690*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm2 1691*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm1, %xmm2 1692*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 1693*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 1694*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 1695*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 1696*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1697*9880d681SAndroid Build Coastguard Worker; 1698*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test51: 1699*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1700*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm1, %xmm0 1701*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1702*9880d681SAndroid Build Coastguard Worker; 1703*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test51: 1704*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1705*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminsb %xmm1, %xmm0, %xmm0 1706*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1707*9880d681SAndroid Build Coastguard Workerentry: 1708*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <16 x i8> %a, %b 1709*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a 1710*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 1711*9880d681SAndroid Build Coastguard Worker} 1712*9880d681SAndroid Build Coastguard Worker 1713*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test52(<16 x i8> %a, <16 x i8> %b) { 1714*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test52: 1715*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1716*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 1717*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm0, %xmm3 1718*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 1719*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 1720*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 1721*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 1722*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 1723*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 1724*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1725*9880d681SAndroid Build Coastguard Worker; 1726*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test52: 1727*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1728*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm1, %xmm0 1729*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1730*9880d681SAndroid Build Coastguard Worker; 1731*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test52: 1732*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1733*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminsb %xmm1, %xmm0, %xmm0 1734*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1735*9880d681SAndroid Build Coastguard Workerentry: 1736*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <16 x i8> %a, %b 1737*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a 1738*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 1739*9880d681SAndroid Build Coastguard Worker} 1740*9880d681SAndroid Build Coastguard Worker 1741*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test53(<16 x i8> %a, <16 x i8> %b) { 1742*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test53: 1743*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 1744*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm1, %xmm0 1745*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 1746*9880d681SAndroid Build Coastguard Worker; 1747*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test53: 1748*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1749*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 1750*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1751*9880d681SAndroid Build Coastguard Workerentry: 1752*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <16 x i8> %a, %b 1753*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a 1754*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 1755*9880d681SAndroid Build Coastguard Worker} 1756*9880d681SAndroid Build Coastguard Worker 1757*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test54(<16 x i8> %a, <16 x i8> %b) { 1758*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test54: 1759*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 1760*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm1, %xmm0 1761*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 1762*9880d681SAndroid Build Coastguard Worker; 1763*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test54: 1764*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1765*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 1766*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1767*9880d681SAndroid Build Coastguard Workerentry: 1768*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <16 x i8> %a, %b 1769*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a 1770*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 1771*9880d681SAndroid Build Coastguard Worker} 1772*9880d681SAndroid Build Coastguard Worker 1773*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test55(<16 x i8> %a, <16 x i8> %b) { 1774*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test55: 1775*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 1776*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm1, %xmm0 1777*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 1778*9880d681SAndroid Build Coastguard Worker; 1779*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test55: 1780*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1781*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminub %xmm1, %xmm0, %xmm0 1782*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1783*9880d681SAndroid Build Coastguard Workerentry: 1784*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <16 x i8> %a, %b 1785*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a 1786*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 1787*9880d681SAndroid Build Coastguard Worker} 1788*9880d681SAndroid Build Coastguard Worker 1789*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test56(<16 x i8> %a, <16 x i8> %b) { 1790*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test56: 1791*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 1792*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm1, %xmm0 1793*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 1794*9880d681SAndroid Build Coastguard Worker; 1795*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test56: 1796*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1797*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminub %xmm1, %xmm0, %xmm0 1798*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1799*9880d681SAndroid Build Coastguard Workerentry: 1800*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <16 x i8> %a, %b 1801*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a 1802*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %sel 1803*9880d681SAndroid Build Coastguard Worker} 1804*9880d681SAndroid Build Coastguard Worker 1805*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test57(<8 x i16> %a, <8 x i16> %b) { 1806*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test57: 1807*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 1808*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm1, %xmm0 1809*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 1810*9880d681SAndroid Build Coastguard Worker; 1811*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test57: 1812*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1813*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 1814*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1815*9880d681SAndroid Build Coastguard Workerentry: 1816*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <8 x i16> %a, %b 1817*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a 1818*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 1819*9880d681SAndroid Build Coastguard Worker} 1820*9880d681SAndroid Build Coastguard Worker 1821*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test58(<8 x i16> %a, <8 x i16> %b) { 1822*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test58: 1823*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 1824*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm1, %xmm0 1825*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 1826*9880d681SAndroid Build Coastguard Worker; 1827*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test58: 1828*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1829*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 1830*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1831*9880d681SAndroid Build Coastguard Workerentry: 1832*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <8 x i16> %a, %b 1833*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a 1834*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 1835*9880d681SAndroid Build Coastguard Worker} 1836*9880d681SAndroid Build Coastguard Worker 1837*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test59(<8 x i16> %a, <8 x i16> %b) { 1838*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test59: 1839*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 1840*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm1, %xmm0 1841*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 1842*9880d681SAndroid Build Coastguard Worker; 1843*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test59: 1844*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1845*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminsw %xmm1, %xmm0, %xmm0 1846*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1847*9880d681SAndroid Build Coastguard Workerentry: 1848*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <8 x i16> %a, %b 1849*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a 1850*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 1851*9880d681SAndroid Build Coastguard Worker} 1852*9880d681SAndroid Build Coastguard Worker 1853*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test60(<8 x i16> %a, <8 x i16> %b) { 1854*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test60: 1855*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 1856*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm1, %xmm0 1857*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 1858*9880d681SAndroid Build Coastguard Worker; 1859*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test60: 1860*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1861*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminsw %xmm1, %xmm0, %xmm0 1862*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1863*9880d681SAndroid Build Coastguard Workerentry: 1864*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <8 x i16> %a, %b 1865*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a 1866*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 1867*9880d681SAndroid Build Coastguard Worker} 1868*9880d681SAndroid Build Coastguard Worker 1869*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test61(<8 x i16> %a, <8 x i16> %b) { 1870*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test61: 1871*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1872*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [32768,32768,32768,32768,32768,32768,32768,32768] 1873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 1874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 1875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm2 1876*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm3, %xmm2 1877*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 1878*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 1879*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 1880*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 1881*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1882*9880d681SAndroid Build Coastguard Worker; 1883*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test61: 1884*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1885*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm1, %xmm0 1886*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1887*9880d681SAndroid Build Coastguard Worker; 1888*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test61: 1889*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1890*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 1891*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1892*9880d681SAndroid Build Coastguard Workerentry: 1893*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <8 x i16> %a, %b 1894*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a 1895*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 1896*9880d681SAndroid Build Coastguard Worker} 1897*9880d681SAndroid Build Coastguard Worker 1898*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test62(<8 x i16> %a, <8 x i16> %b) { 1899*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test62: 1900*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1901*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 1902*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm1, %xmm3 1903*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm2 1904*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm3, %xmm2 1905*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 1906*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 1907*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 1908*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 1909*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1910*9880d681SAndroid Build Coastguard Worker; 1911*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test62: 1912*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1913*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm1, %xmm0 1914*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1915*9880d681SAndroid Build Coastguard Worker; 1916*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test62: 1917*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1918*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 1919*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1920*9880d681SAndroid Build Coastguard Workerentry: 1921*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <8 x i16> %a, %b 1922*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a 1923*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 1924*9880d681SAndroid Build Coastguard Worker} 1925*9880d681SAndroid Build Coastguard Worker 1926*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test63(<8 x i16> %a, <8 x i16> %b) { 1927*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test63: 1928*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1929*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [32768,32768,32768,32768,32768,32768,32768,32768] 1930*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 1931*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 1932*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 1933*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm3, %xmm2 1934*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 1935*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 1936*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 1937*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 1938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1939*9880d681SAndroid Build Coastguard Worker; 1940*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test63: 1941*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1942*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm1, %xmm0 1943*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1944*9880d681SAndroid Build Coastguard Worker; 1945*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test63: 1946*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1947*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminuw %xmm1, %xmm0, %xmm0 1948*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1949*9880d681SAndroid Build Coastguard Workerentry: 1950*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <8 x i16> %a, %b 1951*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a 1952*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 1953*9880d681SAndroid Build Coastguard Worker} 1954*9880d681SAndroid Build Coastguard Worker 1955*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test64(<8 x i16> %a, <8 x i16> %b) { 1956*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test64: 1957*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1958*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 1959*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm0, %xmm3 1960*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm2 1961*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm3, %xmm2 1962*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 1963*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 1964*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 1965*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 1966*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1967*9880d681SAndroid Build Coastguard Worker; 1968*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test64: 1969*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1970*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm1, %xmm0 1971*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1972*9880d681SAndroid Build Coastguard Worker; 1973*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test64: 1974*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 1975*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminuw %xmm1, %xmm0, %xmm0 1976*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 1977*9880d681SAndroid Build Coastguard Workerentry: 1978*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <8 x i16> %a, %b 1979*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a 1980*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %sel 1981*9880d681SAndroid Build Coastguard Worker} 1982*9880d681SAndroid Build Coastguard Worker 1983*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test65(<4 x i32> %a, <4 x i32> %b) { 1984*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test65: 1985*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 1986*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 1987*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm2 1988*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 1989*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 1990*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 1991*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 1992*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 1993*9880d681SAndroid Build Coastguard Worker; 1994*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test65: 1995*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 1996*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm1, %xmm0 1997*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 1998*9880d681SAndroid Build Coastguard Worker; 1999*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test65: 2000*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 2001*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 2002*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 2003*9880d681SAndroid Build Coastguard Workerentry: 2004*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <4 x i32> %a, %b 2005*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a 2006*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 2007*9880d681SAndroid Build Coastguard Worker} 2008*9880d681SAndroid Build Coastguard Worker 2009*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test66(<4 x i32> %a, <4 x i32> %b) { 2010*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test66: 2011*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2012*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm2 2013*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm1, %xmm2 2014*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm3 2015*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 2016*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 2017*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm3 2018*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 2019*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 2020*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2021*9880d681SAndroid Build Coastguard Worker; 2022*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test66: 2023*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2024*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm1, %xmm0 2025*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2026*9880d681SAndroid Build Coastguard Worker; 2027*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test66: 2028*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 2029*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 2030*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 2031*9880d681SAndroid Build Coastguard Workerentry: 2032*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <4 x i32> %a, %b 2033*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a 2034*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 2035*9880d681SAndroid Build Coastguard Worker} 2036*9880d681SAndroid Build Coastguard Worker 2037*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test67(<4 x i32> %a, <4 x i32> %b) { 2038*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test67: 2039*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2040*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm2 2041*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm1, %xmm2 2042*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 2043*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 2044*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 2045*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 2046*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2047*9880d681SAndroid Build Coastguard Worker; 2048*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test67: 2049*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2050*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm1, %xmm0 2051*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2052*9880d681SAndroid Build Coastguard Worker; 2053*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test67: 2054*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 2055*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminsd %xmm1, %xmm0, %xmm0 2056*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 2057*9880d681SAndroid Build Coastguard Workerentry: 2058*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <4 x i32> %a, %b 2059*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a 2060*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 2061*9880d681SAndroid Build Coastguard Worker} 2062*9880d681SAndroid Build Coastguard Worker 2063*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test68(<4 x i32> %a, <4 x i32> %b) { 2064*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test68: 2065*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2066*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 2067*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm3 2068*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 2069*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 2070*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 2071*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 2072*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 2073*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 2074*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2075*9880d681SAndroid Build Coastguard Worker; 2076*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test68: 2077*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2078*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm1, %xmm0 2079*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2080*9880d681SAndroid Build Coastguard Worker; 2081*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test68: 2082*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 2083*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminsd %xmm1, %xmm0, %xmm0 2084*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 2085*9880d681SAndroid Build Coastguard Workerentry: 2086*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <4 x i32> %a, %b 2087*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a 2088*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 2089*9880d681SAndroid Build Coastguard Worker} 2090*9880d681SAndroid Build Coastguard Worker 2091*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test69(<4 x i32> %a, <4 x i32> %b) { 2092*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test69: 2093*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2094*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648] 2095*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 2096*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 2097*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm2 2098*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm2 2099*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 2100*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 2101*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 2102*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 2103*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2104*9880d681SAndroid Build Coastguard Worker; 2105*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test69: 2106*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2107*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm1, %xmm0 2108*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2109*9880d681SAndroid Build Coastguard Worker; 2110*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test69: 2111*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 2112*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 2113*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 2114*9880d681SAndroid Build Coastguard Workerentry: 2115*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <4 x i32> %a, %b 2116*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a 2117*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 2118*9880d681SAndroid Build Coastguard Worker} 2119*9880d681SAndroid Build Coastguard Worker 2120*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test70(<4 x i32> %a, <4 x i32> %b) { 2121*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test70: 2122*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2123*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [2147483648,2147483648,2147483648,2147483648] 2124*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 2125*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 2126*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm3 2127*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm2, %xmm3 2128*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 2129*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 2130*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 2131*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 2132*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 2133*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 2134*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2135*9880d681SAndroid Build Coastguard Worker; 2136*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test70: 2137*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2138*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm1, %xmm0 2139*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2140*9880d681SAndroid Build Coastguard Worker; 2141*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test70: 2142*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 2143*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 2144*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 2145*9880d681SAndroid Build Coastguard Workerentry: 2146*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <4 x i32> %a, %b 2147*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a 2148*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 2149*9880d681SAndroid Build Coastguard Worker} 2150*9880d681SAndroid Build Coastguard Worker 2151*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test71(<4 x i32> %a, <4 x i32> %b) { 2152*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test71: 2153*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2154*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648] 2155*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 2156*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 2157*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 2158*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm2 2159*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 2160*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 2161*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 2162*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 2163*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2164*9880d681SAndroid Build Coastguard Worker; 2165*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test71: 2166*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2167*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm1, %xmm0 2168*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2169*9880d681SAndroid Build Coastguard Worker; 2170*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test71: 2171*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 2172*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminud %xmm1, %xmm0, %xmm0 2173*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 2174*9880d681SAndroid Build Coastguard Workerentry: 2175*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <4 x i32> %a, %b 2176*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a 2177*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 2178*9880d681SAndroid Build Coastguard Worker} 2179*9880d681SAndroid Build Coastguard Worker 2180*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test72(<4 x i32> %a, <4 x i32> %b) { 2181*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test72: 2182*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2183*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [2147483648,2147483648,2147483648,2147483648] 2184*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm2 2185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 2186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm3 2187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm2, %xmm3 2188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 2189*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 2190*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 2191*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 2192*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 2193*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 2194*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2195*9880d681SAndroid Build Coastguard Worker; 2196*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test72: 2197*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2198*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm1, %xmm0 2199*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2200*9880d681SAndroid Build Coastguard Worker; 2201*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test72: 2202*9880d681SAndroid Build Coastguard Worker; AVX: # BB#0: # %entry 2203*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: vpminud %xmm1, %xmm0, %xmm0 2204*9880d681SAndroid Build Coastguard Worker; AVX-NEXT: retq 2205*9880d681SAndroid Build Coastguard Workerentry: 2206*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <4 x i32> %a, %b 2207*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a 2208*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %sel 2209*9880d681SAndroid Build Coastguard Worker} 2210*9880d681SAndroid Build Coastguard Worker 2211*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test73(<32 x i8> %a, <32 x i8> %b) { 2212*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test73: 2213*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2214*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 2215*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm1, %xmm4 2216*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm5 2217*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm0, %xmm5 2218*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 2219*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 2220*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm5 2221*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm3 2222*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm4 2223*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm4 2224*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 2225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 2226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2227*9880d681SAndroid Build Coastguard Worker; 2228*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test73: 2229*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2230*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm2, %xmm0 2231*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm3, %xmm1 2232*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2233*9880d681SAndroid Build Coastguard Worker; 2234*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test73: 2235*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2236*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2237*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2238*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm2, %xmm3, %xmm2 2239*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 2240*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2241*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2242*9880d681SAndroid Build Coastguard Worker; 2243*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test73: 2244*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2245*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsb %ymm1, %ymm0, %ymm0 2246*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2247*9880d681SAndroid Build Coastguard Worker; 2248*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test73: 2249*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2250*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsb %ymm1, %ymm0, %ymm0 2251*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2252*9880d681SAndroid Build Coastguard Workerentry: 2253*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <32 x i8> %a, %b 2254*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a 2255*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 2256*9880d681SAndroid Build Coastguard Worker} 2257*9880d681SAndroid Build Coastguard Worker 2258*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test74(<32 x i8> %a, <32 x i8> %b) { 2259*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test74: 2260*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2261*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm6 2262*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm3, %xmm6 2263*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm7, %xmm7 2264*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm4 2265*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 2266*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 2267*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm2, %xmm5 2268*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm7 2269*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 2270*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm7 2271*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm5 2272*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm6 2273*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm4 2274*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm4 2275*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 2276*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 2277*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2278*9880d681SAndroid Build Coastguard Worker; 2279*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test74: 2280*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2281*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm2, %xmm0 2282*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm3, %xmm1 2283*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2284*9880d681SAndroid Build Coastguard Worker; 2285*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test74: 2286*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2287*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2288*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2289*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm2, %xmm3, %xmm2 2290*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 2291*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2292*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2293*9880d681SAndroid Build Coastguard Worker; 2294*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test74: 2295*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2296*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsb %ymm1, %ymm0, %ymm0 2297*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2298*9880d681SAndroid Build Coastguard Worker; 2299*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test74: 2300*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2301*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsb %ymm1, %ymm0, %ymm0 2302*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2303*9880d681SAndroid Build Coastguard Workerentry: 2304*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <32 x i8> %a, %b 2305*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a 2306*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 2307*9880d681SAndroid Build Coastguard Worker} 2308*9880d681SAndroid Build Coastguard Worker 2309*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test75(<32 x i8> %a, <32 x i8> %b) { 2310*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test75: 2311*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2312*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 2313*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm3, %xmm4 2314*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 2315*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm2, %xmm5 2316*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 2317*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 2318*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm5 2319*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm3 2320*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm4 2321*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm4 2322*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 2323*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 2324*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2325*9880d681SAndroid Build Coastguard Worker; 2326*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test75: 2327*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2328*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm2, %xmm0 2329*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm3, %xmm1 2330*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2331*9880d681SAndroid Build Coastguard Worker; 2332*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test75: 2333*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2334*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2335*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2336*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm2, %xmm3, %xmm2 2337*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm1, %xmm0, %xmm0 2338*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2339*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2340*9880d681SAndroid Build Coastguard Worker; 2341*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test75: 2342*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2343*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsb %ymm1, %ymm0, %ymm0 2344*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2345*9880d681SAndroid Build Coastguard Worker; 2346*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test75: 2347*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2348*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsb %ymm1, %ymm0, %ymm0 2349*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2350*9880d681SAndroid Build Coastguard Workerentry: 2351*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <32 x i8> %a, %b 2352*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a 2353*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 2354*9880d681SAndroid Build Coastguard Worker} 2355*9880d681SAndroid Build Coastguard Worker 2356*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test76(<32 x i8> %a, <32 x i8> %b) { 2357*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test76: 2358*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2359*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 2360*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm1, %xmm6 2361*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 2362*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm5 2363*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 2364*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm7 2365*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm0, %xmm7 2366*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 2367*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm7 2368*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm4 2369*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm4 2370*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm6 2371*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm5 2372*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 2373*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 2374*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 2375*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2376*9880d681SAndroid Build Coastguard Worker; 2377*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test76: 2378*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2379*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm2, %xmm0 2380*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm3, %xmm1 2381*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2382*9880d681SAndroid Build Coastguard Worker; 2383*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test76: 2384*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2385*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2386*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2387*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm2, %xmm3, %xmm2 2388*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm1, %xmm0, %xmm0 2389*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2390*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2391*9880d681SAndroid Build Coastguard Worker; 2392*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test76: 2393*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2394*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsb %ymm1, %ymm0, %ymm0 2395*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2396*9880d681SAndroid Build Coastguard Worker; 2397*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test76: 2398*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2399*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsb %ymm1, %ymm0, %ymm0 2400*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2401*9880d681SAndroid Build Coastguard Workerentry: 2402*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <32 x i8> %a, %b 2403*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a 2404*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 2405*9880d681SAndroid Build Coastguard Worker} 2406*9880d681SAndroid Build Coastguard Worker 2407*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test77(<32 x i8> %a, <32 x i8> %b) { 2408*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test77: 2409*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 2410*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm2, %xmm0 2411*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm3, %xmm1 2412*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 2413*9880d681SAndroid Build Coastguard Worker; 2414*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test77: 2415*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2416*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2417*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2418*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm2, %xmm3, %xmm2 2419*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 2420*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2421*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2422*9880d681SAndroid Build Coastguard Worker; 2423*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test77: 2424*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2425*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxub %ymm1, %ymm0, %ymm0 2426*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2427*9880d681SAndroid Build Coastguard Worker; 2428*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test77: 2429*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2430*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxub %ymm1, %ymm0, %ymm0 2431*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2432*9880d681SAndroid Build Coastguard Workerentry: 2433*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <32 x i8> %a, %b 2434*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a 2435*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 2436*9880d681SAndroid Build Coastguard Worker} 2437*9880d681SAndroid Build Coastguard Worker 2438*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test78(<32 x i8> %a, <32 x i8> %b) { 2439*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test78: 2440*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 2441*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm2, %xmm0 2442*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm3, %xmm1 2443*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 2444*9880d681SAndroid Build Coastguard Worker; 2445*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test78: 2446*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2447*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2448*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2449*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm2, %xmm3, %xmm2 2450*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 2451*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2452*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2453*9880d681SAndroid Build Coastguard Worker; 2454*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test78: 2455*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2456*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxub %ymm1, %ymm0, %ymm0 2457*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2458*9880d681SAndroid Build Coastguard Worker; 2459*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test78: 2460*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2461*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxub %ymm1, %ymm0, %ymm0 2462*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2463*9880d681SAndroid Build Coastguard Workerentry: 2464*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <32 x i8> %a, %b 2465*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a 2466*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 2467*9880d681SAndroid Build Coastguard Worker} 2468*9880d681SAndroid Build Coastguard Worker 2469*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test79(<32 x i8> %a, <32 x i8> %b) { 2470*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test79: 2471*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 2472*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm2, %xmm0 2473*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm3, %xmm1 2474*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 2475*9880d681SAndroid Build Coastguard Worker; 2476*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test79: 2477*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2478*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2479*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2480*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm2, %xmm3, %xmm2 2481*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm1, %xmm0, %xmm0 2482*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2483*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2484*9880d681SAndroid Build Coastguard Worker; 2485*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test79: 2486*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2487*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminub %ymm1, %ymm0, %ymm0 2488*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2489*9880d681SAndroid Build Coastguard Worker; 2490*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test79: 2491*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2492*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminub %ymm1, %ymm0, %ymm0 2493*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2494*9880d681SAndroid Build Coastguard Workerentry: 2495*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <32 x i8> %a, %b 2496*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a 2497*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 2498*9880d681SAndroid Build Coastguard Worker} 2499*9880d681SAndroid Build Coastguard Worker 2500*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test80(<32 x i8> %a, <32 x i8> %b) { 2501*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test80: 2502*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 2503*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm2, %xmm0 2504*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm3, %xmm1 2505*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 2506*9880d681SAndroid Build Coastguard Worker; 2507*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test80: 2508*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2509*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2510*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2511*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm2, %xmm3, %xmm2 2512*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm1, %xmm0, %xmm0 2513*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2514*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2515*9880d681SAndroid Build Coastguard Worker; 2516*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test80: 2517*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2518*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminub %ymm1, %ymm0, %ymm0 2519*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2520*9880d681SAndroid Build Coastguard Worker; 2521*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test80: 2522*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2523*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminub %ymm1, %ymm0, %ymm0 2524*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2525*9880d681SAndroid Build Coastguard Workerentry: 2526*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <32 x i8> %a, %b 2527*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a 2528*9880d681SAndroid Build Coastguard Worker ret <32 x i8> %sel 2529*9880d681SAndroid Build Coastguard Worker} 2530*9880d681SAndroid Build Coastguard Worker 2531*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test81(<16 x i16> %a, <16 x i16> %b) { 2532*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test81: 2533*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 2534*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm2, %xmm0 2535*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm3, %xmm1 2536*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 2537*9880d681SAndroid Build Coastguard Worker; 2538*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test81: 2539*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2540*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2541*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2542*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm2, %xmm3, %xmm2 2543*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 2544*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2545*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2546*9880d681SAndroid Build Coastguard Worker; 2547*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test81: 2548*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2549*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsw %ymm1, %ymm0, %ymm0 2550*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2551*9880d681SAndroid Build Coastguard Worker; 2552*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test81: 2553*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2554*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsw %ymm1, %ymm0, %ymm0 2555*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2556*9880d681SAndroid Build Coastguard Workerentry: 2557*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <16 x i16> %a, %b 2558*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a 2559*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 2560*9880d681SAndroid Build Coastguard Worker} 2561*9880d681SAndroid Build Coastguard Worker 2562*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test82(<16 x i16> %a, <16 x i16> %b) { 2563*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test82: 2564*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 2565*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm2, %xmm0 2566*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm3, %xmm1 2567*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 2568*9880d681SAndroid Build Coastguard Worker; 2569*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test82: 2570*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2571*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2572*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2573*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm2, %xmm3, %xmm2 2574*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 2575*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2576*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2577*9880d681SAndroid Build Coastguard Worker; 2578*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test82: 2579*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2580*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsw %ymm1, %ymm0, %ymm0 2581*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2582*9880d681SAndroid Build Coastguard Worker; 2583*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test82: 2584*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2585*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsw %ymm1, %ymm0, %ymm0 2586*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2587*9880d681SAndroid Build Coastguard Workerentry: 2588*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <16 x i16> %a, %b 2589*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a 2590*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 2591*9880d681SAndroid Build Coastguard Worker} 2592*9880d681SAndroid Build Coastguard Worker 2593*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test83(<16 x i16> %a, <16 x i16> %b) { 2594*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test83: 2595*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 2596*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm2, %xmm0 2597*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm3, %xmm1 2598*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 2599*9880d681SAndroid Build Coastguard Worker; 2600*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test83: 2601*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2602*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2603*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2604*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm2, %xmm3, %xmm2 2605*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm1, %xmm0, %xmm0 2606*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2607*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2608*9880d681SAndroid Build Coastguard Worker; 2609*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test83: 2610*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2611*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsw %ymm1, %ymm0, %ymm0 2612*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2613*9880d681SAndroid Build Coastguard Worker; 2614*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test83: 2615*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2616*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsw %ymm1, %ymm0, %ymm0 2617*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2618*9880d681SAndroid Build Coastguard Workerentry: 2619*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <16 x i16> %a, %b 2620*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a 2621*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 2622*9880d681SAndroid Build Coastguard Worker} 2623*9880d681SAndroid Build Coastguard Worker 2624*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test84(<16 x i16> %a, <16 x i16> %b) { 2625*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test84: 2626*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 2627*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm2, %xmm0 2628*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm3, %xmm1 2629*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 2630*9880d681SAndroid Build Coastguard Worker; 2631*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test84: 2632*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2633*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2634*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2635*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm2, %xmm3, %xmm2 2636*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm1, %xmm0, %xmm0 2637*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2638*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2639*9880d681SAndroid Build Coastguard Worker; 2640*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test84: 2641*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2642*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsw %ymm1, %ymm0, %ymm0 2643*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2644*9880d681SAndroid Build Coastguard Worker; 2645*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test84: 2646*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2647*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsw %ymm1, %ymm0, %ymm0 2648*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2649*9880d681SAndroid Build Coastguard Workerentry: 2650*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <16 x i16> %a, %b 2651*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a 2652*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 2653*9880d681SAndroid Build Coastguard Worker} 2654*9880d681SAndroid Build Coastguard Worker 2655*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test85(<16 x i16> %a, <16 x i16> %b) { 2656*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test85: 2657*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2658*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [32768,32768,32768,32768,32768,32768,32768,32768] 2659*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm6 2660*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 2661*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm5 2662*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 2663*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm6, %xmm5 2664*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm6 2665*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 2666*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm4 2667*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm6, %xmm4 2668*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm2 2669*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm4 2670*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm4 2671*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm3 2672*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm5 2673*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm5 2674*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 2675*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 2676*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2677*9880d681SAndroid Build Coastguard Worker; 2678*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test85: 2679*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2680*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm2, %xmm0 2681*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm3, %xmm1 2682*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2683*9880d681SAndroid Build Coastguard Worker; 2684*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test85: 2685*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2686*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2687*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2688*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm2, %xmm3, %xmm2 2689*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 2690*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2691*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2692*9880d681SAndroid Build Coastguard Worker; 2693*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test85: 2694*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2695*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0 2696*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2697*9880d681SAndroid Build Coastguard Worker; 2698*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test85: 2699*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2700*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0 2701*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2702*9880d681SAndroid Build Coastguard Workerentry: 2703*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <16 x i16> %a, %b 2704*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a 2705*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 2706*9880d681SAndroid Build Coastguard Worker} 2707*9880d681SAndroid Build Coastguard Worker 2708*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test86(<16 x i16> %a, <16 x i16> %b) { 2709*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test86: 2710*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2711*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 2712*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm3, %xmm4 2713*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm6 2714*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm6, %xmm4 2715*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 2716*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm2, %xmm5 2717*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm6, %xmm5 2718*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 2719*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 2720*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm5 2721*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm3 2722*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm4 2723*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm4 2724*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 2725*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 2726*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2727*9880d681SAndroid Build Coastguard Worker; 2728*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test86: 2729*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2730*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm2, %xmm0 2731*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm3, %xmm1 2732*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2733*9880d681SAndroid Build Coastguard Worker; 2734*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test86: 2735*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2736*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2737*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2738*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm2, %xmm3, %xmm2 2739*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 2740*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2741*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2742*9880d681SAndroid Build Coastguard Worker; 2743*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test86: 2744*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2745*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0 2746*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2747*9880d681SAndroid Build Coastguard Worker; 2748*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test86: 2749*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2750*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0 2751*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2752*9880d681SAndroid Build Coastguard Workerentry: 2753*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <16 x i16> %a, %b 2754*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a 2755*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 2756*9880d681SAndroid Build Coastguard Worker} 2757*9880d681SAndroid Build Coastguard Worker 2758*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test87(<16 x i16> %a, <16 x i16> %b) { 2759*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test87: 2760*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2761*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [32768,32768,32768,32768,32768,32768,32768,32768] 2762*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 2763*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 2764*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm5 2765*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 2766*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm6, %xmm5 2767*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm6 2768*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 2769*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm4 2770*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm6, %xmm4 2771*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm2 2772*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm4 2773*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm4 2774*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm3 2775*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm5 2776*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm5 2777*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 2778*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 2779*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2780*9880d681SAndroid Build Coastguard Worker; 2781*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test87: 2782*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2783*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm2, %xmm0 2784*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm3, %xmm1 2785*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2786*9880d681SAndroid Build Coastguard Worker; 2787*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test87: 2788*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2789*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2790*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2791*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm2, %xmm3, %xmm2 2792*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm1, %xmm0, %xmm0 2793*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2794*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2795*9880d681SAndroid Build Coastguard Worker; 2796*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test87: 2797*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2798*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminuw %ymm1, %ymm0, %ymm0 2799*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2800*9880d681SAndroid Build Coastguard Worker; 2801*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test87: 2802*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2803*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminuw %ymm1, %ymm0, %ymm0 2804*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2805*9880d681SAndroid Build Coastguard Workerentry: 2806*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <16 x i16> %a, %b 2807*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a 2808*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 2809*9880d681SAndroid Build Coastguard Worker} 2810*9880d681SAndroid Build Coastguard Worker 2811*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test88(<16 x i16> %a, <16 x i16> %b) { 2812*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test88: 2813*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 2815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm1, %xmm4 2816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm6 2817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm6, %xmm4 2818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm5 2819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm0, %xmm5 2820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm6, %xmm5 2821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 2822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 2823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm5 2824*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm3 2825*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm4 2826*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm4 2827*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 2828*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 2829*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2830*9880d681SAndroid Build Coastguard Worker; 2831*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test88: 2832*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2833*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm2, %xmm0 2834*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm3, %xmm1 2835*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2836*9880d681SAndroid Build Coastguard Worker; 2837*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test88: 2838*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2839*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2840*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2841*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm2, %xmm3, %xmm2 2842*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm1, %xmm0, %xmm0 2843*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2844*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2845*9880d681SAndroid Build Coastguard Worker; 2846*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test88: 2847*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2848*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminuw %ymm1, %ymm0, %ymm0 2849*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2850*9880d681SAndroid Build Coastguard Worker; 2851*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test88: 2852*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2853*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminuw %ymm1, %ymm0, %ymm0 2854*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2855*9880d681SAndroid Build Coastguard Workerentry: 2856*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <16 x i16> %a, %b 2857*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a 2858*9880d681SAndroid Build Coastguard Worker ret <16 x i16> %sel 2859*9880d681SAndroid Build Coastguard Worker} 2860*9880d681SAndroid Build Coastguard Worker 2861*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test89(<8 x i32> %a, <8 x i32> %b) { 2862*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test89: 2863*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2864*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 2865*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm1, %xmm4 2866*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm5 2867*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm5 2868*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 2869*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 2870*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm5 2871*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm3 2872*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm4 2873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm4 2874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 2875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 2876*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2877*9880d681SAndroid Build Coastguard Worker; 2878*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test89: 2879*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2880*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm2, %xmm0 2881*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm3, %xmm1 2882*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2883*9880d681SAndroid Build Coastguard Worker; 2884*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test89: 2885*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2886*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2887*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2888*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm2, %xmm3, %xmm2 2889*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 2890*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2891*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2892*9880d681SAndroid Build Coastguard Worker; 2893*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test89: 2894*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2895*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsd %ymm1, %ymm0, %ymm0 2896*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2897*9880d681SAndroid Build Coastguard Worker; 2898*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test89: 2899*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2900*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsd %ymm1, %ymm0, %ymm0 2901*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2902*9880d681SAndroid Build Coastguard Workerentry: 2903*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <8 x i32> %a, %b 2904*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a 2905*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 2906*9880d681SAndroid Build Coastguard Worker} 2907*9880d681SAndroid Build Coastguard Worker 2908*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test90(<8 x i32> %a, <8 x i32> %b) { 2909*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test90: 2910*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2911*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm6 2912*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm6 2913*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm7, %xmm7 2914*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm4 2915*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 2916*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 2917*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm2, %xmm5 2918*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm7 2919*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 2920*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm7 2921*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm5 2922*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm6 2923*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm4 2924*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm4 2925*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 2926*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 2927*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2928*9880d681SAndroid Build Coastguard Worker; 2929*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test90: 2930*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2931*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm2, %xmm0 2932*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm3, %xmm1 2933*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2934*9880d681SAndroid Build Coastguard Worker; 2935*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test90: 2936*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2937*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2938*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2939*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm2, %xmm3, %xmm2 2940*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 2941*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2942*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2943*9880d681SAndroid Build Coastguard Worker; 2944*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test90: 2945*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2946*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsd %ymm1, %ymm0, %ymm0 2947*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2948*9880d681SAndroid Build Coastguard Worker; 2949*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test90: 2950*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2951*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsd %ymm1, %ymm0, %ymm0 2952*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 2953*9880d681SAndroid Build Coastguard Workerentry: 2954*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <8 x i32> %a, %b 2955*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a 2956*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 2957*9880d681SAndroid Build Coastguard Worker} 2958*9880d681SAndroid Build Coastguard Worker 2959*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test91(<8 x i32> %a, <8 x i32> %b) { 2960*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test91: 2961*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 2962*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 2963*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 2964*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 2965*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm2, %xmm5 2966*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 2967*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 2968*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm5 2969*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm3 2970*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm4 2971*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm4 2972*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 2973*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 2974*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 2975*9880d681SAndroid Build Coastguard Worker; 2976*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test91: 2977*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 2978*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm2, %xmm0 2979*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm3, %xmm1 2980*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 2981*9880d681SAndroid Build Coastguard Worker; 2982*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test91: 2983*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 2984*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 2985*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 2986*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm2, %xmm3, %xmm2 2987*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm1, %xmm0, %xmm0 2988*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 2989*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 2990*9880d681SAndroid Build Coastguard Worker; 2991*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test91: 2992*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 2993*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsd %ymm1, %ymm0, %ymm0 2994*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 2995*9880d681SAndroid Build Coastguard Worker; 2996*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test91: 2997*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 2998*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsd %ymm1, %ymm0, %ymm0 2999*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 3000*9880d681SAndroid Build Coastguard Workerentry: 3001*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <8 x i32> %a, %b 3002*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a 3003*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 3004*9880d681SAndroid Build Coastguard Worker} 3005*9880d681SAndroid Build Coastguard Worker 3006*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test92(<8 x i32> %a, <8 x i32> %b) { 3007*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test92: 3008*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 3009*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 3010*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm1, %xmm6 3011*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 3012*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm5 3013*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 3014*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm7 3015*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm7 3016*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 3017*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm7 3018*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm4 3019*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm4 3020*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm6 3021*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm5 3022*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 3023*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 3024*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 3025*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 3026*9880d681SAndroid Build Coastguard Worker; 3027*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test92: 3028*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 3029*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm2, %xmm0 3030*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm3, %xmm1 3031*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 3032*9880d681SAndroid Build Coastguard Worker; 3033*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test92: 3034*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3035*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 3036*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 3037*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm2, %xmm3, %xmm2 3038*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm1, %xmm0, %xmm0 3039*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 3040*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3041*9880d681SAndroid Build Coastguard Worker; 3042*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test92: 3043*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3044*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsd %ymm1, %ymm0, %ymm0 3045*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3046*9880d681SAndroid Build Coastguard Worker; 3047*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test92: 3048*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 3049*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsd %ymm1, %ymm0, %ymm0 3050*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 3051*9880d681SAndroid Build Coastguard Workerentry: 3052*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <8 x i32> %a, %b 3053*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a 3054*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 3055*9880d681SAndroid Build Coastguard Worker} 3056*9880d681SAndroid Build Coastguard Worker 3057*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test93(<8 x i32> %a, <8 x i32> %b) { 3058*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test93: 3059*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 3060*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648] 3061*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm6 3062*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 3063*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm5 3064*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 3065*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm5 3066*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm6 3067*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 3068*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm4 3069*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm4 3070*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm2 3071*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm4 3072*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm4 3073*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm3 3074*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm5 3075*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm5 3076*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 3077*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 3078*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 3079*9880d681SAndroid Build Coastguard Worker; 3080*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test93: 3081*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 3082*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm2, %xmm0 3083*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm3, %xmm1 3084*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 3085*9880d681SAndroid Build Coastguard Worker; 3086*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test93: 3087*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3088*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 3089*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 3090*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm2, %xmm3, %xmm2 3091*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 3092*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 3093*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3094*9880d681SAndroid Build Coastguard Worker; 3095*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test93: 3096*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3097*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxud %ymm1, %ymm0, %ymm0 3098*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3099*9880d681SAndroid Build Coastguard Worker; 3100*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test93: 3101*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 3102*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxud %ymm1, %ymm0, %ymm0 3103*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 3104*9880d681SAndroid Build Coastguard Workerentry: 3105*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <8 x i32> %a, %b 3106*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a 3107*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 3108*9880d681SAndroid Build Coastguard Worker} 3109*9880d681SAndroid Build Coastguard Worker 3110*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test94(<8 x i32> %a, <8 x i32> %b) { 3111*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test94: 3112*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 3113*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm6 = [2147483648,2147483648,2147483648,2147483648] 3114*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 3115*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm4 3116*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm7 3117*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm7 3118*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm7 3119*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 3120*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm5 3121*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 3122*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm8 3123*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm8 3124*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm6 3125*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm6 3126*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm4 3127*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm6 3128*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm4 3129*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm4 3130*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm7 3131*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm5 3132*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm5 3133*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 3134*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 3135*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 3136*9880d681SAndroid Build Coastguard Worker; 3137*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test94: 3138*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 3139*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm2, %xmm0 3140*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm3, %xmm1 3141*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 3142*9880d681SAndroid Build Coastguard Worker; 3143*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test94: 3144*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3145*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 3146*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 3147*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm2, %xmm3, %xmm2 3148*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 3149*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 3150*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3151*9880d681SAndroid Build Coastguard Worker; 3152*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test94: 3153*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3154*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxud %ymm1, %ymm0, %ymm0 3155*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3156*9880d681SAndroid Build Coastguard Worker; 3157*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test94: 3158*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 3159*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxud %ymm1, %ymm0, %ymm0 3160*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 3161*9880d681SAndroid Build Coastguard Workerentry: 3162*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <8 x i32> %a, %b 3163*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a 3164*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 3165*9880d681SAndroid Build Coastguard Worker} 3166*9880d681SAndroid Build Coastguard Worker 3167*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test95(<8 x i32> %a, <8 x i32> %b) { 3168*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test95: 3169*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 3170*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648] 3171*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 3172*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 3173*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm5 3174*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 3175*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm5 3176*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm6 3177*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 3178*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm4 3179*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm4 3180*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm2 3181*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm4 3182*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm4 3183*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm3 3184*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm5 3185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm5 3186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 3187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 3188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 3189*9880d681SAndroid Build Coastguard Worker; 3190*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test95: 3191*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 3192*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm2, %xmm0 3193*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm3, %xmm1 3194*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 3195*9880d681SAndroid Build Coastguard Worker; 3196*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test95: 3197*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3198*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 3199*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 3200*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm2, %xmm3, %xmm2 3201*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm1, %xmm0, %xmm0 3202*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 3203*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3204*9880d681SAndroid Build Coastguard Worker; 3205*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test95: 3206*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3207*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminud %ymm1, %ymm0, %ymm0 3208*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3209*9880d681SAndroid Build Coastguard Worker; 3210*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test95: 3211*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 3212*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminud %ymm1, %ymm0, %ymm0 3213*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 3214*9880d681SAndroid Build Coastguard Workerentry: 3215*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <8 x i32> %a, %b 3216*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a 3217*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 3218*9880d681SAndroid Build Coastguard Worker} 3219*9880d681SAndroid Build Coastguard Worker 3220*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test96(<8 x i32> %a, <8 x i32> %b) { 3221*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test96: 3222*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 3223*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm6 = [2147483648,2147483648,2147483648,2147483648] 3224*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 3225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm4 3226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm7 3227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm7 3228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm7 3229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 3230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm5 3231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 3232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm8 3233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm8 3234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm6 3235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm6 3236*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm6, %xmm4 3237*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm6 3238*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm4 3239*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm4 3240*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm7 3241*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm5 3242*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm5 3243*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 3244*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 3245*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 3246*9880d681SAndroid Build Coastguard Worker; 3247*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test96: 3248*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 3249*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm2, %xmm0 3250*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm3, %xmm1 3251*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 3252*9880d681SAndroid Build Coastguard Worker; 3253*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test96: 3254*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3255*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 3256*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 3257*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm2, %xmm3, %xmm2 3258*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm1, %xmm0, %xmm0 3259*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0 3260*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3261*9880d681SAndroid Build Coastguard Worker; 3262*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test96: 3263*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3264*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminud %ymm1, %ymm0, %ymm0 3265*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3266*9880d681SAndroid Build Coastguard Worker; 3267*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test96: 3268*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 3269*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminud %ymm1, %ymm0, %ymm0 3270*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 3271*9880d681SAndroid Build Coastguard Workerentry: 3272*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <8 x i32> %a, %b 3273*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a 3274*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %sel 3275*9880d681SAndroid Build Coastguard Worker} 3276*9880d681SAndroid Build Coastguard Worker 3277*9880d681SAndroid Build Coastguard Worker; ---------------------------- 3278*9880d681SAndroid Build Coastguard Worker 3279*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test97(<64 x i8> %a, <64 x i8> %b) { 3280*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test97: 3281*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 3282*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 3283*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm3, %xmm8 3284*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm9 3285*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm2, %xmm9 3286*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm10 3287*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm1, %xmm10 3288*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 3289*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm0, %xmm11 3290*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 3291*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 3292*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm0 3293*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm1 3294*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm10 3295*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm1 3296*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm2 3297*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm9 3298*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm2 3299*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm3 3300*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 3301*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm3 3302*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 3303*9880d681SAndroid Build Coastguard Worker; 3304*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test97: 3305*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 3306*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm4, %xmm0 3307*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm5, %xmm1 3308*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm6, %xmm2 3309*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm7, %xmm3 3310*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 3311*9880d681SAndroid Build Coastguard Worker; 3312*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test97: 3313*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3314*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3315*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3316*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm4, %xmm5, %xmm4 3317*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm2, %xmm0, %xmm0 3318*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3319*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3320*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3321*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm2, %xmm4, %xmm2 3322*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm3, %xmm1, %xmm1 3323*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3324*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3325*9880d681SAndroid Build Coastguard Worker; 3326*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test97: 3327*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3328*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsb %ymm2, %ymm0, %ymm0 3329*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsb %ymm3, %ymm1, %ymm1 3330*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3331*9880d681SAndroid Build Coastguard Worker; 3332*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test97: 3333*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3334*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsb %zmm1, %zmm0, %zmm0 3335*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3336*9880d681SAndroid Build Coastguard Workerentry: 3337*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <64 x i8> %a, %b 3338*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b 3339*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 3340*9880d681SAndroid Build Coastguard Worker} 3341*9880d681SAndroid Build Coastguard Worker 3342*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test98(<64 x i8> %a, <64 x i8> %b) { 3343*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test98: 3344*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 3345*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 3346*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 3347*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm12 3348*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm7, %xmm12 3349*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm13, %xmm13 3350*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm3 3351*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm13, %xmm3 3352*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm14 3353*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm6, %xmm14 3354*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm2 3355*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm13, %xmm2 3356*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm15 3357*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm5, %xmm15 3358*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm10 3359*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm13, %xmm10 3360*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 3361*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm4, %xmm11 3362*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm13 3363*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm11 3364*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm13 3365*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm11 3366*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm15 3367*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm10 3368*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm10 3369*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm14 3370*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm2 3371*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm2 3372*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm12 3373*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm3 3374*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm3 3375*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 3376*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 3377*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 3378*9880d681SAndroid Build Coastguard Worker; 3379*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test98: 3380*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 3381*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm4, %xmm0 3382*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm5, %xmm1 3383*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm6, %xmm2 3384*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm7, %xmm3 3385*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 3386*9880d681SAndroid Build Coastguard Worker; 3387*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test98: 3388*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3389*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3390*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3391*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm4, %xmm5, %xmm4 3392*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm2, %xmm0, %xmm0 3393*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3394*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3395*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3396*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm2, %xmm4, %xmm2 3397*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm3, %xmm1, %xmm1 3398*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3399*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3400*9880d681SAndroid Build Coastguard Worker; 3401*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test98: 3402*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3403*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsb %ymm2, %ymm0, %ymm0 3404*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsb %ymm3, %ymm1, %ymm1 3405*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3406*9880d681SAndroid Build Coastguard Worker; 3407*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test98: 3408*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3409*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsb %zmm1, %zmm0, %zmm0 3410*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3411*9880d681SAndroid Build Coastguard Workerentry: 3412*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <64 x i8> %a, %b 3413*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b 3414*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 3415*9880d681SAndroid Build Coastguard Worker} 3416*9880d681SAndroid Build Coastguard Worker 3417*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test99(<64 x i8> %a, <64 x i8> %b) { 3418*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test99: 3419*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 3420*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 3421*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm7, %xmm3 3422*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 3423*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm6, %xmm9 3424*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 3425*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm5, %xmm10 3426*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 3427*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm4, %xmm11 3428*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 3429*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 3430*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm11 3431*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm1 3432*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm10 3433*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm10 3434*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm2 3435*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm9 3436*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm9 3437*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm8 3438*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm3 3439*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm3 3440*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 3441*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 3442*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 3443*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 3444*9880d681SAndroid Build Coastguard Worker; 3445*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test99: 3446*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 3447*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm4, %xmm0 3448*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm5, %xmm1 3449*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm6, %xmm2 3450*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm7, %xmm3 3451*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 3452*9880d681SAndroid Build Coastguard Worker; 3453*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test99: 3454*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3455*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3456*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3457*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm4, %xmm5, %xmm4 3458*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm2, %xmm0, %xmm0 3459*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3460*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3461*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3462*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm2, %xmm4, %xmm2 3463*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm3, %xmm1, %xmm1 3464*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3465*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3466*9880d681SAndroid Build Coastguard Worker; 3467*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test99: 3468*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3469*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsb %ymm2, %ymm0, %ymm0 3470*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsb %ymm3, %ymm1, %ymm1 3471*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3472*9880d681SAndroid Build Coastguard Worker; 3473*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test99: 3474*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3475*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsb %zmm1, %zmm0, %zmm0 3476*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3477*9880d681SAndroid Build Coastguard Workerentry: 3478*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <64 x i8> %a, %b 3479*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b 3480*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 3481*9880d681SAndroid Build Coastguard Worker} 3482*9880d681SAndroid Build Coastguard Worker 3483*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test100(<64 x i8> %a, <64 x i8> %b) { 3484*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test100: 3485*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 3486*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 3487*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 3488*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm10 3489*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm12 3490*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm8, %xmm12 3491*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm0, %xmm0 3492*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm3 3493*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm3 3494*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm13 3495*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm9, %xmm13 3496*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm2 3497*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 3498*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm14 3499*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm1, %xmm14 3500*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm11 3501*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm11 3502*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm15 3503*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm10, %xmm15 3504*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm15, %xmm0 3505*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm10, %xmm15 3506*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm0 3507*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm0 3508*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm14 3509*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm11 3510*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm11 3511*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm13 3512*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm2 3513*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm2 3514*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm12 3515*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm3 3516*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm3 3517*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 3518*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 3519*9880d681SAndroid Build Coastguard Worker; 3520*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test100: 3521*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 3522*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm4, %xmm0 3523*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm5, %xmm1 3524*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm6, %xmm2 3525*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm7, %xmm3 3526*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 3527*9880d681SAndroid Build Coastguard Worker; 3528*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test100: 3529*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3530*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3531*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3532*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm4, %xmm5, %xmm4 3533*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm2, %xmm0, %xmm0 3534*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3535*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3536*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3537*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm2, %xmm4, %xmm2 3538*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm3, %xmm1, %xmm1 3539*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3540*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3541*9880d681SAndroid Build Coastguard Worker; 3542*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test100: 3543*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3544*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsb %ymm2, %ymm0, %ymm0 3545*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsb %ymm3, %ymm1, %ymm1 3546*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3547*9880d681SAndroid Build Coastguard Worker; 3548*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test100: 3549*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3550*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsb %zmm1, %zmm0, %zmm0 3551*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3552*9880d681SAndroid Build Coastguard Workerentry: 3553*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <64 x i8> %a, %b 3554*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b 3555*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 3556*9880d681SAndroid Build Coastguard Worker} 3557*9880d681SAndroid Build Coastguard Worker 3558*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test101(<64 x i8> %a, <64 x i8> %b) { 3559*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test101: 3560*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 3561*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm4, %xmm0 3562*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm5, %xmm1 3563*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm6, %xmm2 3564*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm7, %xmm3 3565*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 3566*9880d681SAndroid Build Coastguard Worker; 3567*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test101: 3568*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3569*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3570*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3571*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm4, %xmm5, %xmm4 3572*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm2, %xmm0, %xmm0 3573*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3574*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3575*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3576*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm2, %xmm4, %xmm2 3577*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm3, %xmm1, %xmm1 3578*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3579*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3580*9880d681SAndroid Build Coastguard Worker; 3581*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test101: 3582*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3583*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminub %ymm2, %ymm0, %ymm0 3584*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminub %ymm3, %ymm1, %ymm1 3585*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3586*9880d681SAndroid Build Coastguard Worker; 3587*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test101: 3588*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3589*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminub %zmm1, %zmm0, %zmm0 3590*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3591*9880d681SAndroid Build Coastguard Workerentry: 3592*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <64 x i8> %a, %b 3593*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b 3594*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 3595*9880d681SAndroid Build Coastguard Worker} 3596*9880d681SAndroid Build Coastguard Worker 3597*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test102(<64 x i8> %a, <64 x i8> %b) { 3598*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test102: 3599*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 3600*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm4, %xmm0 3601*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm5, %xmm1 3602*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm6, %xmm2 3603*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm7, %xmm3 3604*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 3605*9880d681SAndroid Build Coastguard Worker; 3606*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test102: 3607*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3608*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3609*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3610*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm4, %xmm5, %xmm4 3611*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm2, %xmm0, %xmm0 3612*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3613*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3614*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3615*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm2, %xmm4, %xmm2 3616*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm3, %xmm1, %xmm1 3617*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3618*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3619*9880d681SAndroid Build Coastguard Worker; 3620*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test102: 3621*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3622*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminub %ymm2, %ymm0, %ymm0 3623*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminub %ymm3, %ymm1, %ymm1 3624*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3625*9880d681SAndroid Build Coastguard Worker; 3626*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test102: 3627*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3628*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminub %zmm1, %zmm0, %zmm0 3629*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3630*9880d681SAndroid Build Coastguard Workerentry: 3631*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <64 x i8> %a, %b 3632*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b 3633*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 3634*9880d681SAndroid Build Coastguard Worker} 3635*9880d681SAndroid Build Coastguard Worker 3636*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test103(<64 x i8> %a, <64 x i8> %b) { 3637*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test103: 3638*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 3639*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm4, %xmm0 3640*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm5, %xmm1 3641*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm6, %xmm2 3642*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm7, %xmm3 3643*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 3644*9880d681SAndroid Build Coastguard Worker; 3645*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test103: 3646*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3647*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3648*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3649*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm4, %xmm5, %xmm4 3650*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm2, %xmm0, %xmm0 3651*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3652*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3653*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3654*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm2, %xmm4, %xmm2 3655*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm3, %xmm1, %xmm1 3656*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3657*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3658*9880d681SAndroid Build Coastguard Worker; 3659*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test103: 3660*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3661*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxub %ymm2, %ymm0, %ymm0 3662*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxub %ymm3, %ymm1, %ymm1 3663*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3664*9880d681SAndroid Build Coastguard Worker; 3665*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test103: 3666*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3667*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxub %zmm1, %zmm0, %zmm0 3668*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3669*9880d681SAndroid Build Coastguard Workerentry: 3670*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <64 x i8> %a, %b 3671*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b 3672*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 3673*9880d681SAndroid Build Coastguard Worker} 3674*9880d681SAndroid Build Coastguard Worker 3675*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test104(<64 x i8> %a, <64 x i8> %b) { 3676*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test104: 3677*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 3678*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm4, %xmm0 3679*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm5, %xmm1 3680*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm6, %xmm2 3681*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm7, %xmm3 3682*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 3683*9880d681SAndroid Build Coastguard Worker; 3684*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test104: 3685*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3686*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3687*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3688*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm4, %xmm5, %xmm4 3689*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm2, %xmm0, %xmm0 3690*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3691*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3692*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3693*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm2, %xmm4, %xmm2 3694*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm3, %xmm1, %xmm1 3695*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3696*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3697*9880d681SAndroid Build Coastguard Worker; 3698*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test104: 3699*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3700*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxub %ymm2, %ymm0, %ymm0 3701*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxub %ymm3, %ymm1, %ymm1 3702*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3703*9880d681SAndroid Build Coastguard Worker; 3704*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test104: 3705*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3706*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxub %zmm1, %zmm0, %zmm0 3707*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3708*9880d681SAndroid Build Coastguard Workerentry: 3709*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <64 x i8> %a, %b 3710*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b 3711*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 3712*9880d681SAndroid Build Coastguard Worker} 3713*9880d681SAndroid Build Coastguard Worker 3714*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test105(<32 x i16> %a, <32 x i16> %b) { 3715*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test105: 3716*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 3717*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm4, %xmm0 3718*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm5, %xmm1 3719*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm6, %xmm2 3720*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm7, %xmm3 3721*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 3722*9880d681SAndroid Build Coastguard Worker; 3723*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test105: 3724*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3725*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3726*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3727*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm4, %xmm5, %xmm4 3728*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm2, %xmm0, %xmm0 3729*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3730*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3731*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3732*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm2, %xmm4, %xmm2 3733*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm3, %xmm1, %xmm1 3734*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3735*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3736*9880d681SAndroid Build Coastguard Worker; 3737*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test105: 3738*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3739*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsw %ymm2, %ymm0, %ymm0 3740*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsw %ymm3, %ymm1, %ymm1 3741*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3742*9880d681SAndroid Build Coastguard Worker; 3743*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test105: 3744*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3745*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsw %zmm1, %zmm0, %zmm0 3746*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3747*9880d681SAndroid Build Coastguard Workerentry: 3748*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <32 x i16> %a, %b 3749*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b 3750*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 3751*9880d681SAndroid Build Coastguard Worker} 3752*9880d681SAndroid Build Coastguard Worker 3753*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test106(<32 x i16> %a, <32 x i16> %b) { 3754*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test106: 3755*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 3756*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm4, %xmm0 3757*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm5, %xmm1 3758*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm6, %xmm2 3759*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm7, %xmm3 3760*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 3761*9880d681SAndroid Build Coastguard Worker; 3762*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test106: 3763*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3764*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3765*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3766*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm4, %xmm5, %xmm4 3767*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm2, %xmm0, %xmm0 3768*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3769*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3770*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3771*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm2, %xmm4, %xmm2 3772*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm3, %xmm1, %xmm1 3773*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3774*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3775*9880d681SAndroid Build Coastguard Worker; 3776*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test106: 3777*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3778*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsw %ymm2, %ymm0, %ymm0 3779*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsw %ymm3, %ymm1, %ymm1 3780*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3781*9880d681SAndroid Build Coastguard Worker; 3782*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test106: 3783*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3784*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsw %zmm1, %zmm0, %zmm0 3785*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3786*9880d681SAndroid Build Coastguard Workerentry: 3787*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <32 x i16> %a, %b 3788*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b 3789*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 3790*9880d681SAndroid Build Coastguard Worker} 3791*9880d681SAndroid Build Coastguard Worker 3792*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test107(<32 x i16> %a, <32 x i16> %b) { 3793*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test107: 3794*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 3795*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm4, %xmm0 3796*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm5, %xmm1 3797*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm6, %xmm2 3798*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm7, %xmm3 3799*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 3800*9880d681SAndroid Build Coastguard Worker; 3801*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test107: 3802*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3803*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3804*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3805*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm4, %xmm5, %xmm4 3806*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm2, %xmm0, %xmm0 3807*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3808*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3809*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3810*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm2, %xmm4, %xmm2 3811*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm3, %xmm1, %xmm1 3812*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3813*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3814*9880d681SAndroid Build Coastguard Worker; 3815*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test107: 3816*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3817*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsw %ymm2, %ymm0, %ymm0 3818*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsw %ymm3, %ymm1, %ymm1 3819*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3820*9880d681SAndroid Build Coastguard Worker; 3821*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test107: 3822*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3823*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsw %zmm1, %zmm0, %zmm0 3824*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3825*9880d681SAndroid Build Coastguard Workerentry: 3826*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <32 x i16> %a, %b 3827*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b 3828*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 3829*9880d681SAndroid Build Coastguard Worker} 3830*9880d681SAndroid Build Coastguard Worker 3831*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test108(<32 x i16> %a, <32 x i16> %b) { 3832*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test108: 3833*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 3834*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm4, %xmm0 3835*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm5, %xmm1 3836*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm6, %xmm2 3837*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm7, %xmm3 3838*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 3839*9880d681SAndroid Build Coastguard Worker; 3840*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test108: 3841*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3842*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3843*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3844*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm4, %xmm5, %xmm4 3845*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm2, %xmm0, %xmm0 3846*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3847*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3848*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3849*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm2, %xmm4, %xmm2 3850*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm3, %xmm1, %xmm1 3851*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3852*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3853*9880d681SAndroid Build Coastguard Worker; 3854*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test108: 3855*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3856*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsw %ymm2, %ymm0, %ymm0 3857*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsw %ymm3, %ymm1, %ymm1 3858*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3859*9880d681SAndroid Build Coastguard Worker; 3860*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test108: 3861*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3862*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsw %zmm1, %zmm0, %zmm0 3863*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3864*9880d681SAndroid Build Coastguard Workerentry: 3865*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <32 x i16> %a, %b 3866*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b 3867*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 3868*9880d681SAndroid Build Coastguard Worker} 3869*9880d681SAndroid Build Coastguard Worker 3870*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test109(<32 x i16> %a, <32 x i16> %b) { 3871*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test109: 3872*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 3873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [32768,32768,32768,32768,32768,32768,32768,32768] 3874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm9 3875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm9 3876*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 3877*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm8 3878*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm9, %xmm8 3879*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm11 3880*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 3881*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm9 3882*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm9 3883*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm11, %xmm9 3884*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm11 3885*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 3886*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm12 3887*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm12 3888*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm11, %xmm12 3889*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 3890*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 3891*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm10 3892*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm11, %xmm10 3893*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm0 3894*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm10 3895*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm0 3896*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm1 3897*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm12 3898*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm1 3899*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm2 3900*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm9 3901*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm2 3902*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm3 3903*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 3904*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm3 3905*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 3906*9880d681SAndroid Build Coastguard Worker; 3907*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test109: 3908*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 3909*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm4, %xmm0 3910*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm5, %xmm1 3911*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm6, %xmm2 3912*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm7, %xmm3 3913*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 3914*9880d681SAndroid Build Coastguard Worker; 3915*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test109: 3916*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3917*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3918*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3919*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm4, %xmm5, %xmm4 3920*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm2, %xmm0, %xmm0 3921*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3922*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3923*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3924*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm2, %xmm4, %xmm2 3925*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm3, %xmm1, %xmm1 3926*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3927*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3928*9880d681SAndroid Build Coastguard Worker; 3929*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test109: 3930*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 3931*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminuw %ymm2, %ymm0, %ymm0 3932*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminuw %ymm3, %ymm1, %ymm1 3933*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 3934*9880d681SAndroid Build Coastguard Worker; 3935*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test109: 3936*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 3937*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminuw %zmm1, %zmm0, %zmm0 3938*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 3939*9880d681SAndroid Build Coastguard Workerentry: 3940*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <32 x i16> %a, %b 3941*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b 3942*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 3943*9880d681SAndroid Build Coastguard Worker} 3944*9880d681SAndroid Build Coastguard Worker 3945*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test110(<32 x i16> %a, <32 x i16> %b) { 3946*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test110: 3947*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 3948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 3949*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 3950*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 3951*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm7, %xmm3 3952*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm12, %xmm12 3953*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm12, %xmm3 3954*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm6, %xmm2 3955*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm12, %xmm2 3956*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm5, %xmm1 3957*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm12, %xmm1 3958*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 3959*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm4, %xmm11 3960*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm12, %xmm11 3961*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 3962*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 3963*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm11 3964*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm1, %xmm10 3965*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm1 3966*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm1 3967*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm9 3968*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm2 3969*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm2 3970*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm8 3971*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm3 3972*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm3 3973*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 3974*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 3975*9880d681SAndroid Build Coastguard Worker; 3976*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test110: 3977*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 3978*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm4, %xmm0 3979*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm5, %xmm1 3980*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm6, %xmm2 3981*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm7, %xmm3 3982*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 3983*9880d681SAndroid Build Coastguard Worker; 3984*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test110: 3985*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 3986*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 3987*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 3988*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm4, %xmm5, %xmm4 3989*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm2, %xmm0, %xmm0 3990*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 3991*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 3992*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 3993*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm2, %xmm4, %xmm2 3994*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm3, %xmm1, %xmm1 3995*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 3996*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 3997*9880d681SAndroid Build Coastguard Worker; 3998*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test110: 3999*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 4000*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminuw %ymm2, %ymm0, %ymm0 4001*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminuw %ymm3, %ymm1, %ymm1 4002*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 4003*9880d681SAndroid Build Coastguard Worker; 4004*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test110: 4005*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 4006*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminuw %zmm1, %zmm0, %zmm0 4007*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 4008*9880d681SAndroid Build Coastguard Workerentry: 4009*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <32 x i16> %a, %b 4010*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b 4011*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 4012*9880d681SAndroid Build Coastguard Worker} 4013*9880d681SAndroid Build Coastguard Worker 4014*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test111(<32 x i16> %a, <32 x i16> %b) { 4015*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test111: 4016*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 4017*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [32768,32768,32768,32768,32768,32768,32768,32768] 4018*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm9 4019*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm9 4020*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 4021*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm8 4022*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm9, %xmm8 4023*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm10 4024*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm10 4025*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 4026*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm9 4027*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm10, %xmm9 4028*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm12 4029*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm12 4030*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 4031*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm10 4032*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm12, %xmm10 4033*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm12 4034*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm12 4035*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm11 4036*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm12, %xmm11 4037*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 4038*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 4039*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm0 4040*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm1 4041*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm10 4042*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm10 4043*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm2 4044*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm9 4045*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm9 4046*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm3 4047*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 4048*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm8 4049*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 4050*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 4051*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 4052*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 4053*9880d681SAndroid Build Coastguard Worker; 4054*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test111: 4055*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 4056*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm4, %xmm0 4057*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm5, %xmm1 4058*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm6, %xmm2 4059*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm7, %xmm3 4060*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 4061*9880d681SAndroid Build Coastguard Worker; 4062*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test111: 4063*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 4064*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 4065*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 4066*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm4, %xmm5, %xmm4 4067*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm2, %xmm0, %xmm0 4068*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 4069*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 4070*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 4071*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm2, %xmm4, %xmm2 4072*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm3, %xmm1, %xmm1 4073*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 4074*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 4075*9880d681SAndroid Build Coastguard Worker; 4076*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test111: 4077*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 4078*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxuw %ymm2, %ymm0, %ymm0 4079*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxuw %ymm3, %ymm1, %ymm1 4080*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 4081*9880d681SAndroid Build Coastguard Worker; 4082*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test111: 4083*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 4084*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxuw %zmm1, %zmm0, %zmm0 4085*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 4086*9880d681SAndroid Build Coastguard Workerentry: 4087*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <32 x i16> %a, %b 4088*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b 4089*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 4090*9880d681SAndroid Build Coastguard Worker} 4091*9880d681SAndroid Build Coastguard Worker 4092*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test112(<32 x i16> %a, <32 x i16> %b) { 4093*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test112: 4094*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 4095*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 4096*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm3, %xmm8 4097*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm9 4098*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm9, %xmm8 4099*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm10 4100*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm2, %xmm10 4101*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm9, %xmm10 4102*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm11 4103*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm1, %xmm11 4104*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm9, %xmm11 4105*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm12 4106*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm0, %xmm12 4107*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm9, %xmm12 4108*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm0 4109*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm12 4110*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm0 4111*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm1 4112*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm11 4113*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm1 4114*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm2 4115*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm10 4116*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm2 4117*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm3 4118*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 4119*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm3 4120*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 4121*9880d681SAndroid Build Coastguard Worker; 4122*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test112: 4123*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 4124*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm4, %xmm0 4125*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm5, %xmm1 4126*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm6, %xmm2 4127*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm7, %xmm3 4128*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 4129*9880d681SAndroid Build Coastguard Worker; 4130*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test112: 4131*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 4132*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 4133*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 4134*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm4, %xmm5, %xmm4 4135*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm2, %xmm0, %xmm0 4136*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 4137*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 4138*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 4139*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm2, %xmm4, %xmm2 4140*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm3, %xmm1, %xmm1 4141*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 4142*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 4143*9880d681SAndroid Build Coastguard Worker; 4144*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test112: 4145*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 4146*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxuw %ymm2, %ymm0, %ymm0 4147*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxuw %ymm3, %ymm1, %ymm1 4148*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 4149*9880d681SAndroid Build Coastguard Worker; 4150*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test112: 4151*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 4152*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxuw %zmm1, %zmm0, %zmm0 4153*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 4154*9880d681SAndroid Build Coastguard Workerentry: 4155*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <32 x i16> %a, %b 4156*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b 4157*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 4158*9880d681SAndroid Build Coastguard Worker} 4159*9880d681SAndroid Build Coastguard Worker 4160*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test113(<16 x i32> %a, <16 x i32> %b) { 4161*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test113: 4162*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 4163*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 4164*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm8 4165*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm9 4166*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm2, %xmm9 4167*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm10 4168*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm1, %xmm10 4169*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 4170*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm11 4171*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 4172*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 4173*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm0 4174*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm1 4175*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm10 4176*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm1 4177*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm2 4178*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm9 4179*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm2 4180*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm3 4181*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 4182*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm3 4183*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 4184*9880d681SAndroid Build Coastguard Worker; 4185*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test113: 4186*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 4187*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm4, %xmm0 4188*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm5, %xmm1 4189*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm6, %xmm2 4190*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm7, %xmm3 4191*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 4192*9880d681SAndroid Build Coastguard Worker; 4193*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test113: 4194*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 4195*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 4196*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 4197*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm4, %xmm5, %xmm4 4198*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm2, %xmm0, %xmm0 4199*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 4200*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 4201*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 4202*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm2, %xmm4, %xmm2 4203*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm3, %xmm1, %xmm1 4204*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 4205*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 4206*9880d681SAndroid Build Coastguard Worker; 4207*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test113: 4208*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 4209*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsd %ymm2, %ymm0, %ymm0 4210*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsd %ymm3, %ymm1, %ymm1 4211*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 4212*9880d681SAndroid Build Coastguard Worker; 4213*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test113: 4214*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 4215*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsd %zmm1, %zmm0, %zmm0 4216*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 4217*9880d681SAndroid Build Coastguard Workerentry: 4218*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <16 x i32> %a, %b 4219*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b 4220*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 4221*9880d681SAndroid Build Coastguard Worker} 4222*9880d681SAndroid Build Coastguard Worker 4223*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test114(<16 x i32> %a, <16 x i32> %b) { 4224*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test114: 4225*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 4226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 4227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 4228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm12 4229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm7, %xmm12 4230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm13, %xmm13 4231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm3 4232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm13, %xmm3 4233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm14 4234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm14 4235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm2 4236*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm13, %xmm2 4237*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm15 4238*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm15 4239*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm10 4240*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm13, %xmm10 4241*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 4242*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm11 4243*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm13 4244*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm11 4245*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm13 4246*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm11 4247*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm15 4248*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm10 4249*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm10 4250*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm14 4251*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm2 4252*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm2 4253*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm12 4254*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm3 4255*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm3 4256*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 4257*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 4258*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 4259*9880d681SAndroid Build Coastguard Worker; 4260*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test114: 4261*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 4262*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm4, %xmm0 4263*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm5, %xmm1 4264*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm6, %xmm2 4265*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm7, %xmm3 4266*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 4267*9880d681SAndroid Build Coastguard Worker; 4268*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test114: 4269*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 4270*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 4271*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 4272*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm4, %xmm5, %xmm4 4273*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm2, %xmm0, %xmm0 4274*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 4275*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 4276*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 4277*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm2, %xmm4, %xmm2 4278*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm3, %xmm1, %xmm1 4279*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 4280*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 4281*9880d681SAndroid Build Coastguard Worker; 4282*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test114: 4283*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 4284*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsd %ymm2, %ymm0, %ymm0 4285*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsd %ymm3, %ymm1, %ymm1 4286*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 4287*9880d681SAndroid Build Coastguard Worker; 4288*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test114: 4289*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 4290*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsd %zmm1, %zmm0, %zmm0 4291*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 4292*9880d681SAndroid Build Coastguard Workerentry: 4293*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <16 x i32> %a, %b 4294*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b 4295*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 4296*9880d681SAndroid Build Coastguard Worker} 4297*9880d681SAndroid Build Coastguard Worker 4298*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test115(<16 x i32> %a, <16 x i32> %b) { 4299*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test115: 4300*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 4301*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 4302*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm7, %xmm3 4303*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 4304*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm9 4305*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 4306*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm10 4307*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 4308*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm11 4309*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 4310*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 4311*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm11 4312*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm1 4313*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm10 4314*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm10 4315*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm2 4316*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm9 4317*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm9 4318*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm8 4319*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm3 4320*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm3 4321*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 4322*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 4323*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 4324*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 4325*9880d681SAndroid Build Coastguard Worker; 4326*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test115: 4327*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 4328*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm4, %xmm0 4329*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm5, %xmm1 4330*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm6, %xmm2 4331*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm7, %xmm3 4332*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 4333*9880d681SAndroid Build Coastguard Worker; 4334*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test115: 4335*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 4336*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 4337*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 4338*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm4, %xmm5, %xmm4 4339*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm2, %xmm0, %xmm0 4340*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 4341*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 4342*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 4343*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm2, %xmm4, %xmm2 4344*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm3, %xmm1, %xmm1 4345*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 4346*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 4347*9880d681SAndroid Build Coastguard Worker; 4348*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test115: 4349*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 4350*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsd %ymm2, %ymm0, %ymm0 4351*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsd %ymm3, %ymm1, %ymm1 4352*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 4353*9880d681SAndroid Build Coastguard Worker; 4354*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test115: 4355*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 4356*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsd %zmm1, %zmm0, %zmm0 4357*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 4358*9880d681SAndroid Build Coastguard Workerentry: 4359*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <16 x i32> %a, %b 4360*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b 4361*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 4362*9880d681SAndroid Build Coastguard Worker} 4363*9880d681SAndroid Build Coastguard Worker 4364*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test116(<16 x i32> %a, <16 x i32> %b) { 4365*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test116: 4366*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 4367*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 4368*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 4369*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm10 4370*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm12 4371*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm12 4372*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm0, %xmm0 4373*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm3 4374*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm3 4375*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm13 4376*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm13 4377*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm2 4378*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 4379*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm14 4380*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm1, %xmm14 4381*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm11 4382*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm11 4383*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm15 4384*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm15 4385*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm15, %xmm0 4386*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm10, %xmm15 4387*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm0 4388*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm0 4389*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm14 4390*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm11 4391*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm11 4392*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm13 4393*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm2 4394*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm2 4395*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm12 4396*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm3 4397*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm3 4398*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 4399*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 4400*9880d681SAndroid Build Coastguard Worker; 4401*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test116: 4402*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 4403*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm4, %xmm0 4404*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm5, %xmm1 4405*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm6, %xmm2 4406*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm7, %xmm3 4407*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 4408*9880d681SAndroid Build Coastguard Worker; 4409*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test116: 4410*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 4411*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 4412*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 4413*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm4, %xmm5, %xmm4 4414*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm2, %xmm0, %xmm0 4415*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 4416*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 4417*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 4418*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm2, %xmm4, %xmm2 4419*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm3, %xmm1, %xmm1 4420*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 4421*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 4422*9880d681SAndroid Build Coastguard Worker; 4423*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test116: 4424*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 4425*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsd %ymm2, %ymm0, %ymm0 4426*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsd %ymm3, %ymm1, %ymm1 4427*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 4428*9880d681SAndroid Build Coastguard Worker; 4429*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test116: 4430*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 4431*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsd %zmm1, %zmm0, %zmm0 4432*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 4433*9880d681SAndroid Build Coastguard Workerentry: 4434*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <16 x i32> %a, %b 4435*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b 4436*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 4437*9880d681SAndroid Build Coastguard Worker} 4438*9880d681SAndroid Build Coastguard Worker 4439*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test117(<16 x i32> %a, <16 x i32> %b) { 4440*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test117: 4441*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 4442*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [2147483648,2147483648,2147483648,2147483648] 4443*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm9 4444*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm9 4445*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 4446*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm8 4447*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm8 4448*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm11 4449*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 4450*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm9 4451*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm9 4452*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm9 4453*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm11 4454*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 4455*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm12 4456*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm12 4457*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm12 4458*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 4459*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 4460*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm10 4461*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm10 4462*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm0 4463*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm10 4464*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm0 4465*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm1 4466*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm12 4467*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm1 4468*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm2 4469*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm9 4470*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm2 4471*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm3 4472*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 4473*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm3 4474*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 4475*9880d681SAndroid Build Coastguard Worker; 4476*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test117: 4477*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 4478*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm4, %xmm0 4479*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm5, %xmm1 4480*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm6, %xmm2 4481*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm7, %xmm3 4482*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 4483*9880d681SAndroid Build Coastguard Worker; 4484*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test117: 4485*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 4486*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 4487*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 4488*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm4, %xmm5, %xmm4 4489*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm2, %xmm0, %xmm0 4490*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 4491*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 4492*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 4493*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm2, %xmm4, %xmm2 4494*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm3, %xmm1, %xmm1 4495*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 4496*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 4497*9880d681SAndroid Build Coastguard Worker; 4498*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test117: 4499*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 4500*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminud %ymm2, %ymm0, %ymm0 4501*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminud %ymm3, %ymm1, %ymm1 4502*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 4503*9880d681SAndroid Build Coastguard Worker; 4504*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test117: 4505*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 4506*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminud %zmm1, %zmm0, %zmm0 4507*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 4508*9880d681SAndroid Build Coastguard Workerentry: 4509*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <16 x i32> %a, %b 4510*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b 4511*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 4512*9880d681SAndroid Build Coastguard Worker} 4513*9880d681SAndroid Build Coastguard Worker 4514*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test118(<16 x i32> %a, <16 x i32> %b) { 4515*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test118: 4516*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 4517*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm10 4518*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm14 = [2147483648,2147483648,2147483648,2147483648] 4519*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm0 4520*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm0 4521*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm12 4522*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm12 4523*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm12 4524*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm0, %xmm0 4525*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm8 4526*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm8 4527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm9 4528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm9 4529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm13 4530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm13 4531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm13 4532*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm9 4533*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 4534*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm11 4535*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm11 4536*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm15 4537*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm15 4538*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm15 4539*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 4540*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm11 4541*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm14 4542*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 4543*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm11 4544*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm11 4545*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm0 4546*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm10, %xmm14 4547*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm0 4548*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm0 4549*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm15 4550*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm11 4551*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm11 4552*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm13 4553*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm9 4554*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm9 4555*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm12 4556*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 4557*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm8 4558*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 4559*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 4560*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 4561*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 4562*9880d681SAndroid Build Coastguard Worker; 4563*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test118: 4564*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 4565*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm4, %xmm0 4566*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm5, %xmm1 4567*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm6, %xmm2 4568*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm7, %xmm3 4569*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 4570*9880d681SAndroid Build Coastguard Worker; 4571*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test118: 4572*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 4573*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 4574*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 4575*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm4, %xmm5, %xmm4 4576*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm2, %xmm0, %xmm0 4577*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 4578*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 4579*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 4580*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm2, %xmm4, %xmm2 4581*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm3, %xmm1, %xmm1 4582*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 4583*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 4584*9880d681SAndroid Build Coastguard Worker; 4585*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test118: 4586*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 4587*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminud %ymm2, %ymm0, %ymm0 4588*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminud %ymm3, %ymm1, %ymm1 4589*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 4590*9880d681SAndroid Build Coastguard Worker; 4591*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test118: 4592*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 4593*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminud %zmm1, %zmm0, %zmm0 4594*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 4595*9880d681SAndroid Build Coastguard Workerentry: 4596*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <16 x i32> %a, %b 4597*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b 4598*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 4599*9880d681SAndroid Build Coastguard Worker} 4600*9880d681SAndroid Build Coastguard Worker 4601*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test119(<16 x i32> %a, <16 x i32> %b) { 4602*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test119: 4603*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 4604*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [2147483648,2147483648,2147483648,2147483648] 4605*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm9 4606*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm9 4607*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 4608*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm8 4609*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm8 4610*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm10 4611*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm10 4612*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 4613*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm9 4614*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm9 4615*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm12 4616*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm12 4617*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 4618*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm10 4619*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm12, %xmm10 4620*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm12 4621*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm12 4622*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm11 4623*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm12, %xmm11 4624*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 4625*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 4626*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm0 4627*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm1 4628*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm10 4629*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm10 4630*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm2 4631*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm9 4632*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm9 4633*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm3 4634*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 4635*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm8 4636*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 4637*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 4638*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 4639*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 4640*9880d681SAndroid Build Coastguard Worker; 4641*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test119: 4642*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 4643*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm4, %xmm0 4644*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm5, %xmm1 4645*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm6, %xmm2 4646*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm7, %xmm3 4647*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 4648*9880d681SAndroid Build Coastguard Worker; 4649*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test119: 4650*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 4651*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 4652*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 4653*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm4, %xmm5, %xmm4 4654*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm2, %xmm0, %xmm0 4655*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 4656*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 4657*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 4658*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm2, %xmm4, %xmm2 4659*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm3, %xmm1, %xmm1 4660*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 4661*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 4662*9880d681SAndroid Build Coastguard Worker; 4663*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test119: 4664*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 4665*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxud %ymm2, %ymm0, %ymm0 4666*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxud %ymm3, %ymm1, %ymm1 4667*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 4668*9880d681SAndroid Build Coastguard Worker; 4669*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test119: 4670*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 4671*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxud %zmm1, %zmm0, %zmm0 4672*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 4673*9880d681SAndroid Build Coastguard Workerentry: 4674*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <16 x i32> %a, %b 4675*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b 4676*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 4677*9880d681SAndroid Build Coastguard Worker} 4678*9880d681SAndroid Build Coastguard Worker 4679*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test120(<16 x i32> %a, <16 x i32> %b) { 4680*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test120: 4681*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 4682*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm10 4683*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm14 = [2147483648,2147483648,2147483648,2147483648] 4684*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm0 4685*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm0 4686*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm12 4687*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm12 4688*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm12 4689*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm0, %xmm0 4690*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm8 4691*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm8 4692*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 4693*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm9 4694*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm13 4695*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm13 4696*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm13 4697*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm9 4698*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 4699*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm11 4700*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm11 4701*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm15 4702*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm15 4703*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm15 4704*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm11 4705*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm11 4706*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm14 4707*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 4708*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm11 4709*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm11 4710*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm0 4711*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm10, %xmm14 4712*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm0 4713*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm0 4714*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm15 4715*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm11 4716*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm11 4717*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm13 4718*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm9 4719*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm9 4720*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm12 4721*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 4722*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm8 4723*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 4724*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 4725*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 4726*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 4727*9880d681SAndroid Build Coastguard Worker; 4728*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test120: 4729*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 4730*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm4, %xmm0 4731*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm5, %xmm1 4732*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm6, %xmm2 4733*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm7, %xmm3 4734*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 4735*9880d681SAndroid Build Coastguard Worker; 4736*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test120: 4737*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 4738*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 4739*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 4740*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm4, %xmm5, %xmm4 4741*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm2, %xmm0, %xmm0 4742*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 4743*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 4744*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 4745*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm2, %xmm4, %xmm2 4746*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm3, %xmm1, %xmm1 4747*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 4748*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 4749*9880d681SAndroid Build Coastguard Worker; 4750*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test120: 4751*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 4752*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxud %ymm2, %ymm0, %ymm0 4753*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxud %ymm3, %ymm1, %ymm1 4754*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 4755*9880d681SAndroid Build Coastguard Worker; 4756*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test120: 4757*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 4758*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxud %zmm1, %zmm0, %zmm0 4759*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 4760*9880d681SAndroid Build Coastguard Workerentry: 4761*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <16 x i32> %a, %b 4762*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b 4763*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 4764*9880d681SAndroid Build Coastguard Worker} 4765*9880d681SAndroid Build Coastguard Worker 4766*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test121(<8 x i64> %a, <8 x i64> %b) { 4767*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test121: 4768*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 4769*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm9 = [2147483648,0,2147483648,0] 4770*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 4771*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm8 4772*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm10 4773*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm10 4774*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm11 4775*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm11 4776*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2] 4777*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm10 4778*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3] 4779*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm10 4780*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm11[1,1,3,3] 4781*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm8 4782*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm10 4783*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm10 4784*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm11 4785*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm11 4786*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm12 4787*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm12 4788*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2] 4789*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm10, %xmm11 4790*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm11[1,1,3,3] 4791*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm13, %xmm11 4792*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm12[1,1,3,3] 4793*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm10 4794*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm11 4795*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm11 4796*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm12 4797*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm12 4798*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm13 4799*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm13 4800*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 4801*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm12 4802*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm12[1,1,3,3] 4803*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm11 4804*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm13[1,1,3,3] 4805*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm12 4806*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 4807*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm11 4808*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm9 4809*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm13 4810*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm13 4811*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 4812*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm9 4813*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3] 4814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm9 4815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 4816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm11 4817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 4818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 4819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm0 4820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm1 4821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm12 4822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm1 4823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm2 4824*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm10 4825*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm2 4826*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm3 4827*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 4828*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm3 4829*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 4830*9880d681SAndroid Build Coastguard Worker; 4831*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test121: 4832*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 4833*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 4834*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm7, %xmm9 4835*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm3, %xmm9 4836*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm6, %xmm10 4837*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm2, %xmm10 4838*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm11 4839*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm1, %xmm11 4840*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm4, %xmm0 4841*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm8, %xmm0 4842*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm8, %xmm4 4843*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 4844*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm5 4845*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 4846*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm6 4847*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 4848*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm7 4849*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 4850*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm5, %xmm1 4851*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm6, %xmm2 4852*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm7, %xmm3 4853*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 4854*9880d681SAndroid Build Coastguard Worker; 4855*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test121: 4856*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 4857*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 4858*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm5 4859*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm5, %xmm4 4860*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm1, %xmm3, %xmm5 4861*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm5, %ymm4 4862*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 4863*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm6 4864*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm5, %xmm6, %xmm5 4865*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm0, %xmm2, %xmm6 4866*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm5, %ymm6, %ymm5 4867*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm0, %ymm2, %ymm0 4868*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm1, %ymm3, %ymm1 4869*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 4870*9880d681SAndroid Build Coastguard Worker; 4871*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test121: 4872*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 4873*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm1, %ymm3, %ymm4 4874*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm0, %ymm2, %ymm5 4875*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm0, %ymm2, %ymm0 4876*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm1, %ymm3, %ymm1 4877*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 4878*9880d681SAndroid Build Coastguard Worker; 4879*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test121: 4880*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 4881*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsq %zmm1, %zmm0, %zmm0 4882*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 4883*9880d681SAndroid Build Coastguard Workerentry: 4884*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <8 x i64> %a, %b 4885*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b 4886*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 4887*9880d681SAndroid Build Coastguard Worker} 4888*9880d681SAndroid Build Coastguard Worker 4889*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test122(<8 x i64> %a, <8 x i64> %b) { 4890*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test122: 4891*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 4892*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 4893*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, -{{[0-9]+}}(%rsp) # 16-byte Spill 4894*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm7 4895*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm3 4896*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 4897*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm9 4898*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [2147483648,0,2147483648,0] 4899*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm8 4900*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm0 4901*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm0 4902*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 4903*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm11 4904*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2] 4905*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm0 4906*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3] 4907*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm0 4908*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3] 4909*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm12 4910*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm1, %xmm1 4911*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm8 4912*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm8 4913*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm11 4914*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 4915*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm13 4916*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm13 4917*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm14 4918*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 4919*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2] 4920*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm13 4921*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 4922*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm15, %xmm11 4923*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3] 4924*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm13 4925*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm11 4926*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 4927*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm14 4928*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm14 4929*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm15 4930*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm15 4931*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm14 4932*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2] 4933*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 4934*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm14 4935*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3] 4936*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm15 4937*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 4938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 4939*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm10 4940*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm14 4941*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 4942*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm10 4943*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2] 4944*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3] 4945*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 4946*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm10 4947*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm10 4948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 4949*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm14 4950*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm11 4951*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm11 4952*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm1 4953*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm14 4954*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm1 4955*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm1 4956*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm15 4957*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm11 4958*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm11 4959*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm13 4960*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm10 4961*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm10 4962*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm12 4963*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn -{{[0-9]+}}(%rsp), %xmm8 # 16-byte Folded Reload 4964*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm8 4965*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm0 4966*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 4967*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm2 4968*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 4969*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 4970*9880d681SAndroid Build Coastguard Worker; 4971*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test122: 4972*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 4973*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 4974*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm9 4975*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm7, %xmm9 4976*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm12, %xmm12 4977*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm9 4978*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm10 4979*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm10 4980*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm10 4981*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm11 4982*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm5, %xmm11 4983*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm11 4984*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm4, %xmm0 4985*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm0 4986*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm8, %xmm4 4987*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 4988*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm5 4989*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 4990*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm6 4991*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 4992*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm7 4993*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 4994*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm5, %xmm1 4995*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm6, %xmm2 4996*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm7, %xmm3 4997*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 4998*9880d681SAndroid Build Coastguard Worker; 4999*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test122: 5000*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 5001*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm4 5002*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm5 5003*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm5, %xmm4 5004*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm5, %xmm5, %xmm5 5005*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm4, %xmm4 5006*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm3, %xmm1, %xmm6 5007*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm6, %xmm6 5008*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm4 5009*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm6 5010*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm7 5011*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 5012*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm6, %xmm6 5013*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm0, %xmm7 5014*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm7, %xmm5 5015*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm5 5016*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm0, %ymm2, %ymm0 5017*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm1, %ymm3, %ymm1 5018*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 5019*9880d681SAndroid Build Coastguard Worker; 5020*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test122: 5021*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 5022*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm3, %ymm1, %ymm4 5023*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm5, %ymm5, %ymm5 5024*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm5, %ymm4, %ymm4 5025*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm2, %ymm0, %ymm6 5026*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm5, %ymm6, %ymm5 5027*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm0, %ymm2, %ymm0 5028*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm1, %ymm3, %ymm1 5029*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 5030*9880d681SAndroid Build Coastguard Worker; 5031*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test122: 5032*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 5033*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsq %zmm1, %zmm0, %zmm0 5034*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 5035*9880d681SAndroid Build Coastguard Workerentry: 5036*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <8 x i64> %a, %b 5037*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b 5038*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 5039*9880d681SAndroid Build Coastguard Worker} 5040*9880d681SAndroid Build Coastguard Worker 5041*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test123(<8 x i64> %a, <8 x i64> %b) { 5042*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test123: 5043*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 5044*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm9 = [2147483648,0,2147483648,0] 5045*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 5046*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm8 5047*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm10 5048*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm10 5049*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm11 5050*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm11 5051*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2] 5052*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm10 5053*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3] 5054*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm10 5055*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm11[1,1,3,3] 5056*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm8 5057*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm10 5058*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm10 5059*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm11 5060*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm11 5061*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm12 5062*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm12 5063*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2] 5064*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm10, %xmm11 5065*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm11[1,1,3,3] 5066*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm13, %xmm11 5067*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm12[1,1,3,3] 5068*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm10 5069*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm11 5070*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm11 5071*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm12 5072*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm12 5073*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm13 5074*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm13 5075*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 5076*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm12 5077*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm12[1,1,3,3] 5078*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm11 5079*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm13[1,1,3,3] 5080*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm12 5081*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 5082*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm11 5083*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 5084*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm13 5085*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm13 5086*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 5087*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm9 5088*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3] 5089*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm9 5090*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 5091*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm11 5092*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 5093*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 5094*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm0 5095*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm1 5096*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm12 5097*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm1 5098*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm2 5099*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm10 5100*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm2 5101*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm3 5102*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 5103*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm3 5104*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 5105*9880d681SAndroid Build Coastguard Worker; 5106*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test123: 5107*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 5108*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 5109*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm9 5110*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm7, %xmm9 5111*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm10 5112*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm10 5113*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm11 5114*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm5, %xmm11 5115*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm4, %xmm0 5116*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm8, %xmm4 5117*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 5118*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm5 5119*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 5120*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm6 5121*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 5122*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm7 5123*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 5124*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm5, %xmm1 5125*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm6, %xmm2 5126*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm7, %xmm3 5127*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 5128*9880d681SAndroid Build Coastguard Worker; 5129*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test123: 5130*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 5131*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm4 5132*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm5 5133*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm5, %xmm4 5134*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm3, %xmm1, %xmm5 5135*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm5, %ymm4 5136*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm5 5137*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm6 5138*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm5, %xmm6, %xmm5 5139*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm0, %xmm6 5140*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm5, %ymm6, %ymm5 5141*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm0, %ymm2, %ymm0 5142*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm1, %ymm3, %ymm1 5143*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 5144*9880d681SAndroid Build Coastguard Worker; 5145*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test123: 5146*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 5147*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm3, %ymm1, %ymm4 5148*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm2, %ymm0, %ymm5 5149*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm0, %ymm2, %ymm0 5150*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm1, %ymm3, %ymm1 5151*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 5152*9880d681SAndroid Build Coastguard Worker; 5153*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test123: 5154*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 5155*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsq %zmm1, %zmm0, %zmm0 5156*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 5157*9880d681SAndroid Build Coastguard Workerentry: 5158*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <8 x i64> %a, %b 5159*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b 5160*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 5161*9880d681SAndroid Build Coastguard Worker} 5162*9880d681SAndroid Build Coastguard Worker 5163*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test124(<8 x i64> %a, <8 x i64> %b) { 5164*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test124: 5165*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 5166*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm11 5167*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, -{{[0-9]+}}(%rsp) # 16-byte Spill 5168*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm7 5169*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm3 5170*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 5171*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm9 5172*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [2147483648,0,2147483648,0] 5173*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 5174*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm8 5175*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 5176*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm0 5177*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 5178*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm11 5179*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2] 5180*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm0 5181*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3] 5182*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm0 5183*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3] 5184*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm12 5185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm1, %xmm1 5186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm8 5187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm8 5188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm11 5189*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 5190*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm13 5191*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm13 5192*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm14 5193*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 5194*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2] 5195*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm13 5196*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 5197*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm15, %xmm11 5198*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3] 5199*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm13 5200*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm11 5201*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 5202*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm14 5203*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm14 5204*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm15 5205*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm15 5206*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm14 5207*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2] 5208*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 5209*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm14 5210*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3] 5211*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm15 5212*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm11 5213*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 5214*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm10 5215*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm14 5216*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 5217*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm10 5218*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2] 5219*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3] 5220*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 5221*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm10 5222*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm10 5223*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 5224*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm14 5225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm11 5226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm11 5227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm1 5228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm14 5229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm1 5230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm1 5231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm15 5232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm11 5233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm11 5234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm13 5235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm10 5236*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm10 5237*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm12 5238*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn -{{[0-9]+}}(%rsp), %xmm8 # 16-byte Folded Reload 5239*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm8 5240*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm0 5241*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 5242*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm2 5243*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 5244*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 5245*9880d681SAndroid Build Coastguard Worker; 5246*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test124: 5247*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 5248*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 5249*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm7, %xmm9 5250*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm3, %xmm9 5251*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm0, %xmm0 5252*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm9 5253*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm6, %xmm10 5254*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm2, %xmm10 5255*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 5256*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm11 5257*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm1, %xmm11 5258*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 5259*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm4, %xmm12 5260*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm8, %xmm12 5261*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm0 5262*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm8, %xmm4 5263*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 5264*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm5 5265*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 5266*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm6 5267*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 5268*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm7 5269*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 5270*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm5, %xmm1 5271*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm6, %xmm2 5272*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm7, %xmm3 5273*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 5274*9880d681SAndroid Build Coastguard Worker; 5275*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test124: 5276*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 5277*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 5278*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm5 5279*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm5, %xmm4 5280*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm5, %xmm5, %xmm5 5281*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm4, %xmm4 5282*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm1, %xmm3, %xmm6 5283*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm6, %xmm6 5284*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm4 5285*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm6 5286*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm7 5287*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 5288*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm6, %xmm6 5289*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm0, %xmm2, %xmm7 5290*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm7, %xmm5 5291*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm5 5292*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm0, %ymm2, %ymm0 5293*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm1, %ymm3, %ymm1 5294*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 5295*9880d681SAndroid Build Coastguard Worker; 5296*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test124: 5297*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 5298*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm1, %ymm3, %ymm4 5299*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm5, %ymm5, %ymm5 5300*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm5, %ymm4, %ymm4 5301*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm0, %ymm2, %ymm6 5302*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm5, %ymm6, %ymm5 5303*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm0, %ymm2, %ymm0 5304*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm1, %ymm3, %ymm1 5305*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 5306*9880d681SAndroid Build Coastguard Worker; 5307*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test124: 5308*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 5309*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsq %zmm1, %zmm0, %zmm0 5310*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 5311*9880d681SAndroid Build Coastguard Workerentry: 5312*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <8 x i64> %a, %b 5313*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b 5314*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 5315*9880d681SAndroid Build Coastguard Worker} 5316*9880d681SAndroid Build Coastguard Worker 5317*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test125(<8 x i64> %a, <8 x i64> %b) { 5318*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test125: 5319*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 5320*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm9 = [2147483648,2147483648,2147483648,2147483648] 5321*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 5322*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm8 5323*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm10 5324*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm10 5325*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm11 5326*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm11 5327*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2] 5328*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm10 5329*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3] 5330*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm10 5331*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm11[1,1,3,3] 5332*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm8 5333*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm10 5334*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm10 5335*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm11 5336*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm11 5337*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm12 5338*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm12 5339*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2] 5340*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm10, %xmm11 5341*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm11[1,1,3,3] 5342*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm13, %xmm11 5343*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm12[1,1,3,3] 5344*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm10 5345*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm11 5346*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm11 5347*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm12 5348*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm12 5349*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm13 5350*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm13 5351*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 5352*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm12 5353*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm12[1,1,3,3] 5354*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm11 5355*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm13[1,1,3,3] 5356*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm12 5357*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 5358*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm11 5359*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm9 5360*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm13 5361*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm13 5362*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 5363*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm9 5364*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3] 5365*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm9 5366*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 5367*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm11 5368*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 5369*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 5370*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm0 5371*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm1 5372*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm12 5373*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm1 5374*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm2 5375*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm10 5376*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm2 5377*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm3 5378*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 5379*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm3 5380*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 5381*9880d681SAndroid Build Coastguard Worker; 5382*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test125: 5383*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 5384*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 5385*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 5386*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm10 5387*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 5388*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm7, %xmm9 5389*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm9 5390*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm10, %xmm9 5391*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm11 5392*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 5393*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm6, %xmm10 5394*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 5395*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm11, %xmm10 5396*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm12 5397*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm12 5398*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm11 5399*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 5400*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm12, %xmm11 5401*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm8, %xmm12 5402*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm12 5403*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm4, %xmm0 5404*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm12, %xmm0 5405*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm8, %xmm4 5406*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 5407*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm5 5408*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 5409*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm6 5410*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 5411*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm7 5412*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 5413*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm5, %xmm1 5414*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm6, %xmm2 5415*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm7, %xmm3 5416*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 5417*9880d681SAndroid Build Coastguard Worker; 5418*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test125: 5419*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 5420*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 5421*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808] 5422*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm4, %xmm4 5423*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm6 5424*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 5425*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm6, %xmm4 5426*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm1, %xmm6 5427*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm3, %xmm7 5428*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 5429*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm4 5430*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm6 5431*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 5432*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm7 5433*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm7, %xmm7 5434*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 5435*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm0, %xmm7 5436*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm2, %xmm5 5437*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm7, %xmm5, %xmm5 5438*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm5 5439*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm0, %ymm2, %ymm0 5440*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm1, %ymm3, %ymm1 5441*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 5442*9880d681SAndroid Build Coastguard Worker; 5443*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test125: 5444*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 5445*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm4 5446*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm1, %ymm5 5447*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm3, %ymm6 5448*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm5, %ymm6, %ymm5 5449*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm0, %ymm6 5450*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm2, %ymm4 5451*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm6, %ymm4, %ymm4 5452*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm0, %ymm2, %ymm0 5453*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm1, %ymm3, %ymm1 5454*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 5455*9880d681SAndroid Build Coastguard Worker; 5456*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test125: 5457*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 5458*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminuq %zmm1, %zmm0, %zmm0 5459*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 5460*9880d681SAndroid Build Coastguard Workerentry: 5461*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <8 x i64> %a, %b 5462*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b 5463*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 5464*9880d681SAndroid Build Coastguard Worker} 5465*9880d681SAndroid Build Coastguard Worker 5466*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test126(<8 x i64> %a, <8 x i64> %b) { 5467*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test126: 5468*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 5469*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 5470*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, -{{[0-9]+}}(%rsp) # 16-byte Spill 5471*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm7 5472*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm3 5473*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 5474*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm9 5475*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [2147483648,2147483648,2147483648,2147483648] 5476*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm8 5477*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm0 5478*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm0 5479*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 5480*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm11 5481*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2] 5482*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm0 5483*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3] 5484*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm0 5485*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3] 5486*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm12 5487*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm1, %xmm1 5488*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm8 5489*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm8 5490*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm11 5491*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 5492*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm13 5493*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm13 5494*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm14 5495*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 5496*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2] 5497*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm13 5498*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 5499*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm15, %xmm11 5500*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3] 5501*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm13 5502*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm11 5503*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 5504*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm14 5505*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm14 5506*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm15 5507*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm15 5508*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm14 5509*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2] 5510*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 5511*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm14 5512*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3] 5513*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm15 5514*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 5515*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 5516*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm10 5517*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm14 5518*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 5519*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm10 5520*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2] 5521*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3] 5522*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 5523*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm10 5524*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm10 5525*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 5526*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm14 5527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm11 5528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm11 5529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm1 5530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm14 5531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm1 5532*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm1 5533*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm15 5534*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm11 5535*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm11 5536*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm13 5537*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm10 5538*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm10 5539*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm12 5540*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn -{{[0-9]+}}(%rsp), %xmm8 # 16-byte Folded Reload 5541*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm8 5542*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm0 5543*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 5544*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm2 5545*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 5546*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 5547*9880d681SAndroid Build Coastguard Worker; 5548*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test126: 5549*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 5550*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm9 5551*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 5552*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm7, %xmm10 5553*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 5554*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm8 5555*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm8 5556*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm10, %xmm8 5557*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm12, %xmm12 5558*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm8 5559*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm6, %xmm11 5560*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 5561*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm10 5562*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 5563*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm11, %xmm10 5564*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm10 5565*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm13 5566*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm13 5567*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm11 5568*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 5569*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm13, %xmm11 5570*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm11 5571*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm4, %xmm13 5572*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm13 5573*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm9, %xmm0 5574*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm13, %xmm0 5575*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm0 5576*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm9, %xmm4 5577*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 5578*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm5 5579*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 5580*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm6 5581*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm8, %xmm0 5582*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm7 5583*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 5584*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm5, %xmm1 5585*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm6, %xmm2 5586*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm7, %xmm3 5587*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 5588*9880d681SAndroid Build Coastguard Worker; 5589*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test126: 5590*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 5591*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm4 5592*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808] 5593*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm4, %xmm4 5594*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm6 5595*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 5596*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm6, %xmm4 5597*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm8, %xmm8, %xmm8 5598*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm4, %xmm4 5599*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm3, %xmm7 5600*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm1, %xmm6 5601*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm7, %xmm6, %xmm6 5602*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm6, %xmm6 5603*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm4 5604*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm6 5605*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 5606*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm7 5607*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm7, %xmm7 5608*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 5609*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm6, %xmm6 5610*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm2, %xmm7 5611*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm0, %xmm5 5612*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm7, %xmm5, %xmm5 5613*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm5, %xmm5 5614*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm5 5615*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm0, %ymm2, %ymm0 5616*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm1, %ymm3, %ymm1 5617*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 5618*9880d681SAndroid Build Coastguard Worker; 5619*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test126: 5620*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 5621*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm4 5622*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm3, %ymm5 5623*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm1, %ymm6 5624*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm5, %ymm6, %ymm5 5625*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm6, %ymm6, %ymm6 5626*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm6, %ymm5, %ymm5 5627*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm2, %ymm7 5628*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm0, %ymm4 5629*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm7, %ymm4, %ymm4 5630*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm6, %ymm4, %ymm4 5631*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm0, %ymm2, %ymm0 5632*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm1, %ymm3, %ymm1 5633*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 5634*9880d681SAndroid Build Coastguard Worker; 5635*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test126: 5636*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 5637*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminuq %zmm1, %zmm0, %zmm0 5638*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 5639*9880d681SAndroid Build Coastguard Workerentry: 5640*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <8 x i64> %a, %b 5641*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b 5642*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 5643*9880d681SAndroid Build Coastguard Worker} 5644*9880d681SAndroid Build Coastguard Worker 5645*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test127(<8 x i64> %a, <8 x i64> %b) { 5646*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test127: 5647*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 5648*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm9 = [2147483648,2147483648,2147483648,2147483648] 5649*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 5650*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm8 5651*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm10 5652*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm10 5653*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm11 5654*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm11 5655*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2] 5656*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm10 5657*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3] 5658*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm10 5659*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm11[1,1,3,3] 5660*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm8 5661*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm10 5662*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm10 5663*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm11 5664*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm11 5665*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm12 5666*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm12 5667*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2] 5668*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm10, %xmm11 5669*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm11[1,1,3,3] 5670*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm13, %xmm11 5671*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm12[1,1,3,3] 5672*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm10 5673*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm11 5674*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm11 5675*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm12 5676*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm12 5677*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm13 5678*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm13 5679*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 5680*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm12 5681*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm12[1,1,3,3] 5682*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm11 5683*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm13[1,1,3,3] 5684*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm12 5685*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 5686*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm11 5687*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 5688*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm13 5689*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm13 5690*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 5691*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm9 5692*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3] 5693*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm9 5694*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 5695*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm11 5696*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 5697*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 5698*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm0 5699*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm1 5700*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm12 5701*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm1 5702*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm2 5703*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm10 5704*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm2 5705*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm3 5706*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 5707*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm3 5708*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 5709*9880d681SAndroid Build Coastguard Worker; 5710*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test127: 5711*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 5712*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 5713*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 5714*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm7, %xmm10 5715*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 5716*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm9 5717*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm9 5718*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm10, %xmm9 5719*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm6, %xmm11 5720*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 5721*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm10 5722*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 5723*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm11, %xmm10 5724*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm12 5725*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm12 5726*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm11 5727*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 5728*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm12, %xmm11 5729*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm4, %xmm12 5730*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm12 5731*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm8, %xmm0 5732*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm12, %xmm0 5733*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm8, %xmm4 5734*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 5735*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm5 5736*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 5737*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm6 5738*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 5739*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm7 5740*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 5741*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm5, %xmm1 5742*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm6, %xmm2 5743*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm7, %xmm3 5744*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 5745*9880d681SAndroid Build Coastguard Worker; 5746*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test127: 5747*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 5748*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm4 5749*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808] 5750*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm4, %xmm4 5751*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm6 5752*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 5753*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm6, %xmm4 5754*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm3, %xmm6 5755*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm1, %xmm7 5756*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 5757*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm4 5758*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm6 5759*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 5760*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm7 5761*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm7, %xmm7 5762*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 5763*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm2, %xmm7 5764*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm0, %xmm5 5765*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm7, %xmm5, %xmm5 5766*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm5 5767*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm0, %ymm2, %ymm0 5768*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm1, %ymm3, %ymm1 5769*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 5770*9880d681SAndroid Build Coastguard Worker; 5771*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test127: 5772*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 5773*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm4 5774*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm3, %ymm5 5775*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm1, %ymm6 5776*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm5, %ymm6, %ymm5 5777*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm2, %ymm6 5778*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm0, %ymm4 5779*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm6, %ymm4, %ymm4 5780*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm0, %ymm2, %ymm0 5781*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm1, %ymm3, %ymm1 5782*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 5783*9880d681SAndroid Build Coastguard Worker; 5784*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test127: 5785*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 5786*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxuq %zmm1, %zmm0, %zmm0 5787*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 5788*9880d681SAndroid Build Coastguard Workerentry: 5789*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <8 x i64> %a, %b 5790*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b 5791*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 5792*9880d681SAndroid Build Coastguard Worker} 5793*9880d681SAndroid Build Coastguard Worker 5794*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test128(<8 x i64> %a, <8 x i64> %b) { 5795*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test128: 5796*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 5797*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm11 5798*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, -{{[0-9]+}}(%rsp) # 16-byte Spill 5799*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm7 5800*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm3 5801*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 5802*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm9 5803*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [2147483648,2147483648,2147483648,2147483648] 5804*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 5805*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm8 5806*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 5807*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm0 5808*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 5809*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm11 5810*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2] 5811*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm0 5812*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3] 5813*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm0 5814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3] 5815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm12 5816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm1, %xmm1 5817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm8 5818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm8 5819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm11 5820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 5821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm13 5822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm13 5823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm14 5824*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 5825*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2] 5826*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm13 5827*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 5828*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm15, %xmm11 5829*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3] 5830*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm13 5831*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm11 5832*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 5833*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm14 5834*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm14 5835*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm15 5836*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm15 5837*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm14 5838*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2] 5839*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 5840*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm14 5841*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3] 5842*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm15 5843*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm11 5844*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 5845*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm10 5846*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm14 5847*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 5848*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm10 5849*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2] 5850*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3] 5851*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 5852*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm10 5853*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm10 5854*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 5855*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm14 5856*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm11 5857*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm11 5858*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm1 5859*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm14 5860*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm1 5861*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm1 5862*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm15 5863*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm11 5864*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm11 5865*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm13 5866*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm10 5867*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm10 5868*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm12 5869*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn -{{[0-9]+}}(%rsp), %xmm8 # 16-byte Folded Reload 5870*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm8 5871*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm0 5872*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 5873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm2 5874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 5875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 5876*9880d681SAndroid Build Coastguard Worker; 5877*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test128: 5878*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 5879*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm9 5880*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 5881*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm10 5882*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 5883*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm7, %xmm8 5884*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm8 5885*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm10, %xmm8 5886*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm12, %xmm12 5887*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm8 5888*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm11 5889*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 5890*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm6, %xmm10 5891*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 5892*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm11, %xmm10 5893*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm10 5894*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm13 5895*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm13 5896*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm11 5897*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 5898*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm13, %xmm11 5899*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm11 5900*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm13 5901*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm13 5902*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm4, %xmm0 5903*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm13, %xmm0 5904*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm0 5905*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm9, %xmm4 5906*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 5907*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm5 5908*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 5909*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm6 5910*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm8, %xmm0 5911*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm7 5912*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 5913*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm5, %xmm1 5914*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm6, %xmm2 5915*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm7, %xmm3 5916*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 5917*9880d681SAndroid Build Coastguard Worker; 5918*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test128: 5919*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 5920*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 5921*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808] 5922*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm4, %xmm4 5923*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm6 5924*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 5925*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm6, %xmm4 5926*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm8, %xmm8, %xmm8 5927*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm4, %xmm4 5928*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm1, %xmm7 5929*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm3, %xmm6 5930*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm7, %xmm6, %xmm6 5931*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm6, %xmm6 5932*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm4 5933*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm6 5934*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 5935*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm7 5936*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm7, %xmm7 5937*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 5938*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm6, %xmm6 5939*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm0, %xmm7 5940*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm2, %xmm5 5941*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm7, %xmm5, %xmm5 5942*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm5, %xmm5 5943*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm5 5944*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm0, %ymm2, %ymm0 5945*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm1, %ymm3, %ymm1 5946*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 5947*9880d681SAndroid Build Coastguard Worker; 5948*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test128: 5949*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 5950*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm4 5951*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm1, %ymm5 5952*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm3, %ymm6 5953*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm5, %ymm6, %ymm5 5954*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm6, %ymm6, %ymm6 5955*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm6, %ymm5, %ymm5 5956*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm0, %ymm7 5957*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm2, %ymm4 5958*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm7, %ymm4, %ymm4 5959*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm6, %ymm4, %ymm4 5960*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm0, %ymm2, %ymm0 5961*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm1, %ymm3, %ymm1 5962*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 5963*9880d681SAndroid Build Coastguard Worker; 5964*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test128: 5965*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 5966*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxuq %zmm1, %zmm0, %zmm0 5967*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 5968*9880d681SAndroid Build Coastguard Workerentry: 5969*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <8 x i64> %a, %b 5970*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b 5971*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 5972*9880d681SAndroid Build Coastguard Worker} 5973*9880d681SAndroid Build Coastguard Worker 5974*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test129(<64 x i8> %a, <64 x i8> %b) { 5975*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test129: 5976*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 5977*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 5978*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm3 5979*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm8, %xmm3 5980*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm9 5981*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm2, %xmm9 5982*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm10 5983*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm1, %xmm10 5984*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 5985*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm0, %xmm11 5986*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm4 5987*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm11 5988*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm11 5989*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm5 5990*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 5991*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm10 5992*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm6 5993*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 5994*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm9 5995*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm7 5996*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm3 5997*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm3 5998*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 5999*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 6000*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 6001*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 6002*9880d681SAndroid Build Coastguard Worker; 6003*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test129: 6004*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 6005*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm4, %xmm0 6006*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm5, %xmm1 6007*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm6, %xmm2 6008*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm7, %xmm3 6009*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 6010*9880d681SAndroid Build Coastguard Worker; 6011*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test129: 6012*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6013*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6014*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6015*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm4, %xmm5, %xmm4 6016*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm2, %xmm0, %xmm0 6017*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6018*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6019*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6020*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm2, %xmm4, %xmm2 6021*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm3, %xmm1, %xmm1 6022*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6023*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6024*9880d681SAndroid Build Coastguard Worker; 6025*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test129: 6026*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6027*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsb %ymm2, %ymm0, %ymm0 6028*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsb %ymm3, %ymm1, %ymm1 6029*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6030*9880d681SAndroid Build Coastguard Worker; 6031*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test129: 6032*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6033*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsb %zmm1, %zmm0, %zmm0 6034*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6035*9880d681SAndroid Build Coastguard Workerentry: 6036*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <64 x i8> %a, %b 6037*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a 6038*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 6039*9880d681SAndroid Build Coastguard Worker} 6040*9880d681SAndroid Build Coastguard Worker 6041*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test130(<64 x i8> %a, <64 x i8> %b) { 6042*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test130: 6043*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 6044*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm8 6045*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm12 6046*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm7, %xmm12 6047*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm13, %xmm13 6048*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm9 6049*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm13, %xmm9 6050*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm14 6051*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm6, %xmm14 6052*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm2 6053*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm13, %xmm2 6054*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm15 6055*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm5, %xmm15 6056*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm10 6057*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm13, %xmm10 6058*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 6059*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm4, %xmm11 6060*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm13 6061*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 6062*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm13 6063*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm11 6064*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm15 6065*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 6066*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm10 6067*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm14 6068*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm2 6069*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm2 6070*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm12 6071*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm9 6072*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm9 6073*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 6074*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 6075*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm3 6076*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 6077*9880d681SAndroid Build Coastguard Worker; 6078*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test130: 6079*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 6080*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm4, %xmm0 6081*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm5, %xmm1 6082*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm6, %xmm2 6083*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsb %xmm7, %xmm3 6084*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 6085*9880d681SAndroid Build Coastguard Worker; 6086*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test130: 6087*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6088*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6089*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6090*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm4, %xmm5, %xmm4 6091*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm2, %xmm0, %xmm0 6092*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6093*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6094*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6095*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm2, %xmm4, %xmm2 6096*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsb %xmm3, %xmm1, %xmm1 6097*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6098*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6099*9880d681SAndroid Build Coastguard Worker; 6100*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test130: 6101*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6102*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsb %ymm2, %ymm0, %ymm0 6103*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsb %ymm3, %ymm1, %ymm1 6104*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6105*9880d681SAndroid Build Coastguard Worker; 6106*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test130: 6107*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6108*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsb %zmm1, %zmm0, %zmm0 6109*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6110*9880d681SAndroid Build Coastguard Workerentry: 6111*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <64 x i8> %a, %b 6112*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a 6113*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 6114*9880d681SAndroid Build Coastguard Worker} 6115*9880d681SAndroid Build Coastguard Worker 6116*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test131(<64 x i8> %a, <64 x i8> %b) { 6117*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test131: 6118*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 6119*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 6120*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm7, %xmm3 6121*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 6122*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm6, %xmm9 6123*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 6124*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm5, %xmm10 6125*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 6126*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm4, %xmm11 6127*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm4 6128*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm11 6129*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm11 6130*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm5 6131*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 6132*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm10 6133*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm6 6134*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 6135*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm9 6136*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm7 6137*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm3 6138*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm3 6139*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 6140*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 6141*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 6142*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 6143*9880d681SAndroid Build Coastguard Worker; 6144*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test131: 6145*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 6146*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm4, %xmm0 6147*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm5, %xmm1 6148*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm6, %xmm2 6149*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm7, %xmm3 6150*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 6151*9880d681SAndroid Build Coastguard Worker; 6152*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test131: 6153*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6154*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6155*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6156*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm4, %xmm5, %xmm4 6157*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm2, %xmm0, %xmm0 6158*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6159*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6160*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6161*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm2, %xmm4, %xmm2 6162*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm3, %xmm1, %xmm1 6163*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6164*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6165*9880d681SAndroid Build Coastguard Worker; 6166*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test131: 6167*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6168*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsb %ymm2, %ymm0, %ymm0 6169*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsb %ymm3, %ymm1, %ymm1 6170*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6171*9880d681SAndroid Build Coastguard Worker; 6172*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test131: 6173*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6174*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsb %zmm1, %zmm0, %zmm0 6175*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6176*9880d681SAndroid Build Coastguard Workerentry: 6177*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <64 x i8> %a, %b 6178*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a 6179*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 6180*9880d681SAndroid Build Coastguard Worker} 6181*9880d681SAndroid Build Coastguard Worker 6182*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test132(<64 x i8> %a, <64 x i8> %b) { 6183*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test132: 6184*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 6185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm8 6186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm10 6187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm12 6188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm3, %xmm12 6189*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm0, %xmm0 6190*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm9 6191*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 6192*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm13 6193*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm8, %xmm13 6194*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm2 6195*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 6196*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm14 6197*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm1, %xmm14 6198*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm11 6199*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm11 6200*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm15 6201*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtb %xmm10, %xmm15 6202*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm15, %xmm0 6203*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm15 6204*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm10, %xmm0 6205*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm0 6206*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm14 6207*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm11 6208*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm11 6209*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm13 6210*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm2 6211*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm2 6212*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm12 6213*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm9 6214*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm9 6215*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 6216*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm3 6217*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 6218*9880d681SAndroid Build Coastguard Worker; 6219*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test132: 6220*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 6221*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm4, %xmm0 6222*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm5, %xmm1 6223*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm6, %xmm2 6224*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsb %xmm7, %xmm3 6225*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 6226*9880d681SAndroid Build Coastguard Worker; 6227*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test132: 6228*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6229*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6230*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6231*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm4, %xmm5, %xmm4 6232*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm2, %xmm0, %xmm0 6233*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6234*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6235*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6236*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm2, %xmm4, %xmm2 6237*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsb %xmm3, %xmm1, %xmm1 6238*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6239*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6240*9880d681SAndroid Build Coastguard Worker; 6241*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test132: 6242*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6243*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsb %ymm2, %ymm0, %ymm0 6244*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsb %ymm3, %ymm1, %ymm1 6245*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6246*9880d681SAndroid Build Coastguard Worker; 6247*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test132: 6248*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6249*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsb %zmm1, %zmm0, %zmm0 6250*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6251*9880d681SAndroid Build Coastguard Workerentry: 6252*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <64 x i8> %a, %b 6253*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a 6254*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 6255*9880d681SAndroid Build Coastguard Worker} 6256*9880d681SAndroid Build Coastguard Worker 6257*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test133(<64 x i8> %a, <64 x i8> %b) { 6258*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test133: 6259*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 6260*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm4, %xmm0 6261*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm5, %xmm1 6262*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm6, %xmm2 6263*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm7, %xmm3 6264*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 6265*9880d681SAndroid Build Coastguard Worker; 6266*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test133: 6267*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6268*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6269*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6270*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm4, %xmm5, %xmm4 6271*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm2, %xmm0, %xmm0 6272*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6273*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6274*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6275*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm2, %xmm4, %xmm2 6276*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm3, %xmm1, %xmm1 6277*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6278*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6279*9880d681SAndroid Build Coastguard Worker; 6280*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test133: 6281*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6282*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxub %ymm2, %ymm0, %ymm0 6283*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxub %ymm3, %ymm1, %ymm1 6284*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6285*9880d681SAndroid Build Coastguard Worker; 6286*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test133: 6287*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6288*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxub %zmm1, %zmm0, %zmm0 6289*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6290*9880d681SAndroid Build Coastguard Workerentry: 6291*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <64 x i8> %a, %b 6292*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a 6293*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 6294*9880d681SAndroid Build Coastguard Worker} 6295*9880d681SAndroid Build Coastguard Worker 6296*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test134(<64 x i8> %a, <64 x i8> %b) { 6297*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test134: 6298*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 6299*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm4, %xmm0 6300*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm5, %xmm1 6301*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm6, %xmm2 6302*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxub %xmm7, %xmm3 6303*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 6304*9880d681SAndroid Build Coastguard Worker; 6305*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test134: 6306*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6307*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6308*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6309*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm4, %xmm5, %xmm4 6310*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm2, %xmm0, %xmm0 6311*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6312*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6313*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6314*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm2, %xmm4, %xmm2 6315*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxub %xmm3, %xmm1, %xmm1 6316*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6317*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6318*9880d681SAndroid Build Coastguard Worker; 6319*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test134: 6320*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6321*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxub %ymm2, %ymm0, %ymm0 6322*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxub %ymm3, %ymm1, %ymm1 6323*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6324*9880d681SAndroid Build Coastguard Worker; 6325*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test134: 6326*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6327*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxub %zmm1, %zmm0, %zmm0 6328*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6329*9880d681SAndroid Build Coastguard Workerentry: 6330*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <64 x i8> %a, %b 6331*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a 6332*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 6333*9880d681SAndroid Build Coastguard Worker} 6334*9880d681SAndroid Build Coastguard Worker 6335*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test135(<64 x i8> %a, <64 x i8> %b) { 6336*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test135: 6337*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 6338*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm4, %xmm0 6339*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm5, %xmm1 6340*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm6, %xmm2 6341*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm7, %xmm3 6342*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 6343*9880d681SAndroid Build Coastguard Worker; 6344*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test135: 6345*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6346*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6347*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6348*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm4, %xmm5, %xmm4 6349*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm2, %xmm0, %xmm0 6350*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6351*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6352*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6353*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm2, %xmm4, %xmm2 6354*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm3, %xmm1, %xmm1 6355*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6356*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6357*9880d681SAndroid Build Coastguard Worker; 6358*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test135: 6359*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6360*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminub %ymm2, %ymm0, %ymm0 6361*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminub %ymm3, %ymm1, %ymm1 6362*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6363*9880d681SAndroid Build Coastguard Worker; 6364*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test135: 6365*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6366*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminub %zmm1, %zmm0, %zmm0 6367*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6368*9880d681SAndroid Build Coastguard Workerentry: 6369*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <64 x i8> %a, %b 6370*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a 6371*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 6372*9880d681SAndroid Build Coastguard Worker} 6373*9880d681SAndroid Build Coastguard Worker 6374*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test136(<64 x i8> %a, <64 x i8> %b) { 6375*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test136: 6376*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 6377*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm4, %xmm0 6378*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm5, %xmm1 6379*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm6, %xmm2 6380*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminub %xmm7, %xmm3 6381*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 6382*9880d681SAndroid Build Coastguard Worker; 6383*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test136: 6384*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6385*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6386*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6387*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm4, %xmm5, %xmm4 6388*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm2, %xmm0, %xmm0 6389*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6390*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6391*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6392*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm2, %xmm4, %xmm2 6393*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminub %xmm3, %xmm1, %xmm1 6394*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6395*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6396*9880d681SAndroid Build Coastguard Worker; 6397*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test136: 6398*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6399*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminub %ymm2, %ymm0, %ymm0 6400*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminub %ymm3, %ymm1, %ymm1 6401*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6402*9880d681SAndroid Build Coastguard Worker; 6403*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test136: 6404*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6405*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminub %zmm1, %zmm0, %zmm0 6406*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6407*9880d681SAndroid Build Coastguard Workerentry: 6408*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <64 x i8> %a, %b 6409*9880d681SAndroid Build Coastguard Worker %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a 6410*9880d681SAndroid Build Coastguard Worker ret <64 x i8> %sel 6411*9880d681SAndroid Build Coastguard Worker} 6412*9880d681SAndroid Build Coastguard Worker 6413*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test137(<32 x i16> %a, <32 x i16> %b) { 6414*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test137: 6415*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 6416*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm4, %xmm0 6417*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm5, %xmm1 6418*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm6, %xmm2 6419*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm7, %xmm3 6420*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 6421*9880d681SAndroid Build Coastguard Worker; 6422*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test137: 6423*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6424*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6425*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6426*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm4, %xmm5, %xmm4 6427*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm2, %xmm0, %xmm0 6428*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6429*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6430*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6431*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm2, %xmm4, %xmm2 6432*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm3, %xmm1, %xmm1 6433*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6434*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6435*9880d681SAndroid Build Coastguard Worker; 6436*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test137: 6437*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6438*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsw %ymm2, %ymm0, %ymm0 6439*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsw %ymm3, %ymm1, %ymm1 6440*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6441*9880d681SAndroid Build Coastguard Worker; 6442*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test137: 6443*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6444*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsw %zmm1, %zmm0, %zmm0 6445*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6446*9880d681SAndroid Build Coastguard Workerentry: 6447*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <32 x i16> %a, %b 6448*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a 6449*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 6450*9880d681SAndroid Build Coastguard Worker} 6451*9880d681SAndroid Build Coastguard Worker 6452*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test138(<32 x i16> %a, <32 x i16> %b) { 6453*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test138: 6454*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 6455*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm4, %xmm0 6456*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm5, %xmm1 6457*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm6, %xmm2 6458*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pmaxsw %xmm7, %xmm3 6459*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 6460*9880d681SAndroid Build Coastguard Worker; 6461*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test138: 6462*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6463*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6464*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6465*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm4, %xmm5, %xmm4 6466*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm2, %xmm0, %xmm0 6467*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6468*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6469*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6470*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm2, %xmm4, %xmm2 6471*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsw %xmm3, %xmm1, %xmm1 6472*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6473*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6474*9880d681SAndroid Build Coastguard Worker; 6475*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test138: 6476*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6477*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsw %ymm2, %ymm0, %ymm0 6478*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsw %ymm3, %ymm1, %ymm1 6479*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6480*9880d681SAndroid Build Coastguard Worker; 6481*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test138: 6482*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6483*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsw %zmm1, %zmm0, %zmm0 6484*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6485*9880d681SAndroid Build Coastguard Workerentry: 6486*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <32 x i16> %a, %b 6487*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a 6488*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 6489*9880d681SAndroid Build Coastguard Worker} 6490*9880d681SAndroid Build Coastguard Worker 6491*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test139(<32 x i16> %a, <32 x i16> %b) { 6492*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test139: 6493*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 6494*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm4, %xmm0 6495*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm5, %xmm1 6496*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm6, %xmm2 6497*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm7, %xmm3 6498*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 6499*9880d681SAndroid Build Coastguard Worker; 6500*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test139: 6501*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6502*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6503*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6504*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm4, %xmm5, %xmm4 6505*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm2, %xmm0, %xmm0 6506*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6507*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6508*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6509*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm2, %xmm4, %xmm2 6510*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm3, %xmm1, %xmm1 6511*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6512*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6513*9880d681SAndroid Build Coastguard Worker; 6514*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test139: 6515*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6516*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsw %ymm2, %ymm0, %ymm0 6517*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsw %ymm3, %ymm1, %ymm1 6518*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6519*9880d681SAndroid Build Coastguard Worker; 6520*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test139: 6521*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6522*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsw %zmm1, %zmm0, %zmm0 6523*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6524*9880d681SAndroid Build Coastguard Workerentry: 6525*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <32 x i16> %a, %b 6526*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a 6527*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 6528*9880d681SAndroid Build Coastguard Worker} 6529*9880d681SAndroid Build Coastguard Worker 6530*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test140(<32 x i16> %a, <32 x i16> %b) { 6531*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test140: 6532*9880d681SAndroid Build Coastguard Worker; SSE: # BB#0: # %entry 6533*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm4, %xmm0 6534*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm5, %xmm1 6535*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm6, %xmm2 6536*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: pminsw %xmm7, %xmm3 6537*9880d681SAndroid Build Coastguard Worker; SSE-NEXT: retq 6538*9880d681SAndroid Build Coastguard Worker; 6539*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test140: 6540*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6541*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6542*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6543*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm4, %xmm5, %xmm4 6544*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm2, %xmm0, %xmm0 6545*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6546*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6547*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6548*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm2, %xmm4, %xmm2 6549*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsw %xmm3, %xmm1, %xmm1 6550*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6551*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6552*9880d681SAndroid Build Coastguard Worker; 6553*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test140: 6554*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6555*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsw %ymm2, %ymm0, %ymm0 6556*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsw %ymm3, %ymm1, %ymm1 6557*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6558*9880d681SAndroid Build Coastguard Worker; 6559*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test140: 6560*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6561*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsw %zmm1, %zmm0, %zmm0 6562*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6563*9880d681SAndroid Build Coastguard Workerentry: 6564*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <32 x i16> %a, %b 6565*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a 6566*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 6567*9880d681SAndroid Build Coastguard Worker} 6568*9880d681SAndroid Build Coastguard Worker 6569*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test141(<32 x i16> %a, <32 x i16> %b) { 6570*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test141: 6571*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 6572*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 6573*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [32768,32768,32768,32768,32768,32768,32768,32768] 6574*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm9 6575*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 6576*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 6577*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm8 6578*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm9, %xmm8 6579*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm10 6580*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm10 6581*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm9 6582*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 6583*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm10, %xmm9 6584*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm12 6585*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm12 6586*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm10 6587*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm10 6588*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm12, %xmm10 6589*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm12 6590*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm12 6591*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm0 6592*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm12, %xmm0 6593*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm0, %xmm4 6594*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm11, %xmm0 6595*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm0 6596*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm5 6597*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 6598*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm10 6599*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm6 6600*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 6601*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm9 6602*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm7 6603*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 6604*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm8 6605*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 6606*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 6607*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 6608*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 6609*9880d681SAndroid Build Coastguard Worker; 6610*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test141: 6611*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 6612*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm4, %xmm0 6613*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm5, %xmm1 6614*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm6, %xmm2 6615*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm7, %xmm3 6616*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 6617*9880d681SAndroid Build Coastguard Worker; 6618*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test141: 6619*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6620*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6621*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6622*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm4, %xmm5, %xmm4 6623*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm2, %xmm0, %xmm0 6624*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6625*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6626*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6627*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm2, %xmm4, %xmm2 6628*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm3, %xmm1, %xmm1 6629*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6630*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6631*9880d681SAndroid Build Coastguard Worker; 6632*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test141: 6633*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6634*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxuw %ymm2, %ymm0, %ymm0 6635*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxuw %ymm3, %ymm1, %ymm1 6636*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6637*9880d681SAndroid Build Coastguard Worker; 6638*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test141: 6639*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6640*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxuw %zmm1, %zmm0, %zmm0 6641*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6642*9880d681SAndroid Build Coastguard Workerentry: 6643*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <32 x i16> %a, %b 6644*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a 6645*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 6646*9880d681SAndroid Build Coastguard Worker} 6647*9880d681SAndroid Build Coastguard Worker 6648*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test142(<32 x i16> %a, <32 x i16> %b) { 6649*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test142: 6650*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 6651*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 6652*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 6653*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 6654*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm7, %xmm3 6655*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm12, %xmm12 6656*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm12, %xmm3 6657*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm6, %xmm2 6658*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm12, %xmm2 6659*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm5, %xmm1 6660*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm12, %xmm1 6661*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 6662*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm4, %xmm11 6663*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm12, %xmm11 6664*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm4 6665*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm11 6666*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm11 6667*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm1, %xmm5 6668*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm10, %xmm1 6669*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm1 6670*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm6 6671*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm2 6672*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm2 6673*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm7 6674*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm3 6675*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm3 6676*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 6677*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 6678*9880d681SAndroid Build Coastguard Worker; 6679*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test142: 6680*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 6681*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm4, %xmm0 6682*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm5, %xmm1 6683*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm6, %xmm2 6684*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxuw %xmm7, %xmm3 6685*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 6686*9880d681SAndroid Build Coastguard Worker; 6687*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test142: 6688*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6689*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6690*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6691*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm4, %xmm5, %xmm4 6692*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm2, %xmm0, %xmm0 6693*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6694*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6695*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6696*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm2, %xmm4, %xmm2 6697*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxuw %xmm3, %xmm1, %xmm1 6698*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6699*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6700*9880d681SAndroid Build Coastguard Worker; 6701*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test142: 6702*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6703*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxuw %ymm2, %ymm0, %ymm0 6704*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxuw %ymm3, %ymm1, %ymm1 6705*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6706*9880d681SAndroid Build Coastguard Worker; 6707*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test142: 6708*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6709*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxuw %zmm1, %zmm0, %zmm0 6710*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6711*9880d681SAndroid Build Coastguard Workerentry: 6712*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <32 x i16> %a, %b 6713*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a 6714*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 6715*9880d681SAndroid Build Coastguard Worker} 6716*9880d681SAndroid Build Coastguard Worker 6717*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test143(<32 x i16> %a, <32 x i16> %b) { 6718*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test143: 6719*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 6720*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 6721*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [32768,32768,32768,32768,32768,32768,32768,32768] 6722*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm9 6723*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 6724*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 6725*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm8 6726*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm9, %xmm8 6727*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm10 6728*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm10 6729*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 6730*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 6731*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm10, %xmm9 6732*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm12 6733*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm12 6734*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 6735*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm10 6736*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm12, %xmm10 6737*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm12 6738*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm12 6739*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm0 6740*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtw %xmm12, %xmm0 6741*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm0, %xmm4 6742*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm11, %xmm0 6743*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm0 6744*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm5 6745*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 6746*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm10 6747*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm6 6748*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 6749*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm9 6750*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm7 6751*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 6752*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm8 6753*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 6754*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 6755*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 6756*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 6757*9880d681SAndroid Build Coastguard Worker; 6758*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test143: 6759*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 6760*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm4, %xmm0 6761*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm5, %xmm1 6762*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm6, %xmm2 6763*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm7, %xmm3 6764*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 6765*9880d681SAndroid Build Coastguard Worker; 6766*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test143: 6767*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6768*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6769*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6770*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm4, %xmm5, %xmm4 6771*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm2, %xmm0, %xmm0 6772*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6773*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6774*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6775*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm2, %xmm4, %xmm2 6776*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm3, %xmm1, %xmm1 6777*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6778*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6779*9880d681SAndroid Build Coastguard Worker; 6780*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test143: 6781*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6782*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminuw %ymm2, %ymm0, %ymm0 6783*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminuw %ymm3, %ymm1, %ymm1 6784*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6785*9880d681SAndroid Build Coastguard Worker; 6786*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test143: 6787*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6788*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminuw %zmm1, %zmm0, %zmm0 6789*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6790*9880d681SAndroid Build Coastguard Workerentry: 6791*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <32 x i16> %a, %b 6792*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a 6793*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 6794*9880d681SAndroid Build Coastguard Worker} 6795*9880d681SAndroid Build Coastguard Worker 6796*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test144(<32 x i16> %a, <32 x i16> %b) { 6797*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test144: 6798*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 6799*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 6800*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 6801*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 6802*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm3 6803*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm8, %xmm3 6804*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm12, %xmm12 6805*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm12, %xmm3 6806*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm2 6807*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm9, %xmm2 6808*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm12, %xmm2 6809*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm1 6810*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm10, %xmm1 6811*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm12, %xmm1 6812*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 6813*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: psubusw %xmm0, %xmm11 6814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqw %xmm12, %xmm11 6815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm4 6816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm11 6817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm11 6818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm1, %xmm5 6819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm10, %xmm1 6820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm1 6821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm6 6822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm2 6823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm2 6824*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm7 6825*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm3 6826*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm3 6827*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 6828*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 6829*9880d681SAndroid Build Coastguard Worker; 6830*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test144: 6831*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 6832*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm4, %xmm0 6833*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm5, %xmm1 6834*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm6, %xmm2 6835*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminuw %xmm7, %xmm3 6836*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 6837*9880d681SAndroid Build Coastguard Worker; 6838*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test144: 6839*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6840*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6841*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6842*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm4, %xmm5, %xmm4 6843*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm2, %xmm0, %xmm0 6844*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6845*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6846*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6847*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm2, %xmm4, %xmm2 6848*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminuw %xmm3, %xmm1, %xmm1 6849*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6850*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6851*9880d681SAndroid Build Coastguard Worker; 6852*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test144: 6853*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6854*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminuw %ymm2, %ymm0, %ymm0 6855*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminuw %ymm3, %ymm1, %ymm1 6856*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6857*9880d681SAndroid Build Coastguard Worker; 6858*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test144: 6859*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 6860*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminuw %zmm1, %zmm0, %zmm0 6861*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 6862*9880d681SAndroid Build Coastguard Workerentry: 6863*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <32 x i16> %a, %b 6864*9880d681SAndroid Build Coastguard Worker %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a 6865*9880d681SAndroid Build Coastguard Worker ret <32 x i16> %sel 6866*9880d681SAndroid Build Coastguard Worker} 6867*9880d681SAndroid Build Coastguard Worker 6868*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test145(<16 x i32> %a, <16 x i32> %b) { 6869*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test145: 6870*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 6871*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 6872*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm3 6873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm3 6874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm9 6875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm2, %xmm9 6876*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm10 6877*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm1, %xmm10 6878*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 6879*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm11 6880*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm4 6881*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm11 6882*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm11 6883*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm5 6884*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 6885*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm10 6886*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm6 6887*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 6888*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm9 6889*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm7 6890*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm3 6891*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm3 6892*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 6893*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 6894*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 6895*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 6896*9880d681SAndroid Build Coastguard Worker; 6897*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test145: 6898*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 6899*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm4, %xmm0 6900*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm5, %xmm1 6901*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm6, %xmm2 6902*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm7, %xmm3 6903*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 6904*9880d681SAndroid Build Coastguard Worker; 6905*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test145: 6906*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6907*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6908*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6909*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm4, %xmm5, %xmm4 6910*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm2, %xmm0, %xmm0 6911*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6912*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6913*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6914*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm2, %xmm4, %xmm2 6915*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm3, %xmm1, %xmm1 6916*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6917*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6918*9880d681SAndroid Build Coastguard Worker; 6919*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test145: 6920*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6921*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsd %ymm2, %ymm0, %ymm0 6922*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsd %ymm3, %ymm1, %ymm1 6923*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6924*9880d681SAndroid Build Coastguard Worker; 6925*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test145: 6926*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 6927*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsd %zmm1, %zmm0, %zmm0 6928*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 6929*9880d681SAndroid Build Coastguard Workerentry: 6930*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <16 x i32> %a, %b 6931*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a 6932*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 6933*9880d681SAndroid Build Coastguard Worker} 6934*9880d681SAndroid Build Coastguard Worker 6935*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test146(<16 x i32> %a, <16 x i32> %b) { 6936*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test146: 6937*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 6938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm8 6939*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm12 6940*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm7, %xmm12 6941*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm13, %xmm13 6942*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm9 6943*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm13, %xmm9 6944*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm14 6945*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm14 6946*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm2 6947*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm13, %xmm2 6948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm15 6949*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm15 6950*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm10 6951*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm13, %xmm10 6952*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 6953*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm11 6954*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm13 6955*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm11 6956*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm13 6957*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm11 6958*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm15 6959*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 6960*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm10 6961*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm14 6962*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm2 6963*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm2 6964*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm12 6965*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm9 6966*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm9 6967*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 6968*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 6969*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm3 6970*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 6971*9880d681SAndroid Build Coastguard Worker; 6972*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test146: 6973*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 6974*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm4, %xmm0 6975*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm5, %xmm1 6976*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm6, %xmm2 6977*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxsd %xmm7, %xmm3 6978*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 6979*9880d681SAndroid Build Coastguard Worker; 6980*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test146: 6981*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 6982*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 6983*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 6984*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm4, %xmm5, %xmm4 6985*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm2, %xmm0, %xmm0 6986*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 6987*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 6988*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 6989*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm2, %xmm4, %xmm2 6990*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxsd %xmm3, %xmm1, %xmm1 6991*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 6992*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 6993*9880d681SAndroid Build Coastguard Worker; 6994*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test146: 6995*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 6996*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsd %ymm2, %ymm0, %ymm0 6997*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxsd %ymm3, %ymm1, %ymm1 6998*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 6999*9880d681SAndroid Build Coastguard Worker; 7000*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test146: 7001*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 7002*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsd %zmm1, %zmm0, %zmm0 7003*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 7004*9880d681SAndroid Build Coastguard Workerentry: 7005*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <16 x i32> %a, %b 7006*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a 7007*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 7008*9880d681SAndroid Build Coastguard Worker} 7009*9880d681SAndroid Build Coastguard Worker 7010*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test147(<16 x i32> %a, <16 x i32> %b) { 7011*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test147: 7012*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 7013*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 7014*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm7, %xmm3 7015*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 7016*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm9 7017*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 7018*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm10 7019*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 7020*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm11 7021*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm4 7022*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm11 7023*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm11 7024*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm5 7025*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 7026*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm10 7027*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm6 7028*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 7029*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm9 7030*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm7 7031*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm3 7032*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm3 7033*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 7034*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 7035*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 7036*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 7037*9880d681SAndroid Build Coastguard Worker; 7038*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test147: 7039*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 7040*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm4, %xmm0 7041*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm5, %xmm1 7042*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm6, %xmm2 7043*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm7, %xmm3 7044*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 7045*9880d681SAndroid Build Coastguard Worker; 7046*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test147: 7047*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 7048*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 7049*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 7050*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm4, %xmm5, %xmm4 7051*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm2, %xmm0, %xmm0 7052*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 7053*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 7054*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 7055*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm2, %xmm4, %xmm2 7056*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm3, %xmm1, %xmm1 7057*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 7058*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 7059*9880d681SAndroid Build Coastguard Worker; 7060*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test147: 7061*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 7062*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsd %ymm2, %ymm0, %ymm0 7063*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsd %ymm3, %ymm1, %ymm1 7064*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 7065*9880d681SAndroid Build Coastguard Worker; 7066*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test147: 7067*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 7068*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsd %zmm1, %zmm0, %zmm0 7069*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 7070*9880d681SAndroid Build Coastguard Workerentry: 7071*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <16 x i32> %a, %b 7072*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a 7073*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 7074*9880d681SAndroid Build Coastguard Worker} 7075*9880d681SAndroid Build Coastguard Worker 7076*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test148(<16 x i32> %a, <16 x i32> %b) { 7077*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test148: 7078*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 7079*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm8 7080*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm10 7081*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm12 7082*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm12 7083*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm0, %xmm0 7084*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm9 7085*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 7086*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm13 7087*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm13 7088*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm2 7089*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 7090*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm14 7091*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm1, %xmm14 7092*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm11 7093*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm11 7094*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm15 7095*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm15 7096*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm15, %xmm0 7097*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm15 7098*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm10, %xmm0 7099*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm0 7100*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm14 7101*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm11 7102*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm11 7103*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm13 7104*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm8, %xmm2 7105*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm2 7106*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm12 7107*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm9 7108*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm9 7109*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 7110*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm3 7111*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 7112*9880d681SAndroid Build Coastguard Worker; 7113*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test148: 7114*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 7115*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm4, %xmm0 7116*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm5, %xmm1 7117*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm6, %xmm2 7118*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminsd %xmm7, %xmm3 7119*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 7120*9880d681SAndroid Build Coastguard Worker; 7121*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test148: 7122*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 7123*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 7124*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 7125*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm4, %xmm5, %xmm4 7126*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm2, %xmm0, %xmm0 7127*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 7128*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 7129*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 7130*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm2, %xmm4, %xmm2 7131*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminsd %xmm3, %xmm1, %xmm1 7132*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 7133*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 7134*9880d681SAndroid Build Coastguard Worker; 7135*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test148: 7136*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 7137*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsd %ymm2, %ymm0, %ymm0 7138*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminsd %ymm3, %ymm1, %ymm1 7139*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 7140*9880d681SAndroid Build Coastguard Worker; 7141*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test148: 7142*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 7143*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsd %zmm1, %zmm0, %zmm0 7144*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 7145*9880d681SAndroid Build Coastguard Workerentry: 7146*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <16 x i32> %a, %b 7147*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a 7148*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 7149*9880d681SAndroid Build Coastguard Worker} 7150*9880d681SAndroid Build Coastguard Worker 7151*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test149(<16 x i32> %a, <16 x i32> %b) { 7152*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test149: 7153*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 7154*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 7155*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [2147483648,2147483648,2147483648,2147483648] 7156*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm9 7157*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 7158*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 7159*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm8 7160*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm8 7161*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm10 7162*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm10 7163*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm9 7164*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 7165*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm9 7166*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm12 7167*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm12 7168*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm10 7169*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm10 7170*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm12, %xmm10 7171*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm12 7172*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm12 7173*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm0 7174*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm12, %xmm0 7175*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm0, %xmm4 7176*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm11, %xmm0 7177*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm0 7178*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm5 7179*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 7180*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm10 7181*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm6 7182*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 7183*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm9 7184*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm7 7185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 7186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm8 7187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 7188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 7189*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 7190*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 7191*9880d681SAndroid Build Coastguard Worker; 7192*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test149: 7193*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 7194*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm4, %xmm0 7195*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm5, %xmm1 7196*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm6, %xmm2 7197*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm7, %xmm3 7198*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 7199*9880d681SAndroid Build Coastguard Worker; 7200*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test149: 7201*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 7202*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 7203*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 7204*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm4, %xmm5, %xmm4 7205*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm2, %xmm0, %xmm0 7206*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 7207*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 7208*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 7209*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm2, %xmm4, %xmm2 7210*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm3, %xmm1, %xmm1 7211*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 7212*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 7213*9880d681SAndroid Build Coastguard Worker; 7214*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test149: 7215*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 7216*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxud %ymm2, %ymm0, %ymm0 7217*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxud %ymm3, %ymm1, %ymm1 7218*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 7219*9880d681SAndroid Build Coastguard Worker; 7220*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test149: 7221*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 7222*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxud %zmm1, %zmm0, %zmm0 7223*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 7224*9880d681SAndroid Build Coastguard Workerentry: 7225*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <16 x i32> %a, %b 7226*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a 7227*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 7228*9880d681SAndroid Build Coastguard Worker} 7229*9880d681SAndroid Build Coastguard Worker 7230*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test150(<16 x i32> %a, <16 x i32> %b) { 7231*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test150: 7232*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 7233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm10 7234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm14 = [2147483648,2147483648,2147483648,2147483648] 7235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm0 7236*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm0 7237*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm12 7238*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm12 7239*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm12 7240*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm0, %xmm0 7241*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm8 7242*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm8 7243*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm9 7244*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm9 7245*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm13 7246*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm13 7247*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm13 7248*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm9 7249*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 7250*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm11 7251*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm11 7252*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm15 7253*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm15 7254*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm15 7255*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 7256*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm11 7257*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm14 7258*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 7259*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm11 7260*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm11 7261*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm0 7262*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm14 7263*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm10, %xmm0 7264*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm0 7265*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm15 7266*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm11 7267*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm11 7268*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm13 7269*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 7270*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm9 7271*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm12 7272*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 7273*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm8 7274*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 7275*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 7276*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 7277*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 7278*9880d681SAndroid Build Coastguard Worker; 7279*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test150: 7280*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 7281*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm4, %xmm0 7282*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm5, %xmm1 7283*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm6, %xmm2 7284*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pmaxud %xmm7, %xmm3 7285*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 7286*9880d681SAndroid Build Coastguard Worker; 7287*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test150: 7288*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 7289*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 7290*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 7291*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm4, %xmm5, %xmm4 7292*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm2, %xmm0, %xmm0 7293*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 7294*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 7295*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 7296*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm2, %xmm4, %xmm2 7297*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpmaxud %xmm3, %xmm1, %xmm1 7298*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 7299*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 7300*9880d681SAndroid Build Coastguard Worker; 7301*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test150: 7302*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 7303*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxud %ymm2, %ymm0, %ymm0 7304*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpmaxud %ymm3, %ymm1, %ymm1 7305*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 7306*9880d681SAndroid Build Coastguard Worker; 7307*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test150: 7308*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 7309*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxud %zmm1, %zmm0, %zmm0 7310*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 7311*9880d681SAndroid Build Coastguard Workerentry: 7312*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <16 x i32> %a, %b 7313*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a 7314*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 7315*9880d681SAndroid Build Coastguard Worker} 7316*9880d681SAndroid Build Coastguard Worker 7317*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test151(<16 x i32> %a, <16 x i32> %b) { 7318*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test151: 7319*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 7320*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 7321*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [2147483648,2147483648,2147483648,2147483648] 7322*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm9 7323*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 7324*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 7325*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm8 7326*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm8 7327*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm10 7328*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm10 7329*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 7330*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 7331*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm9 7332*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm12 7333*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm12 7334*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 7335*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm10 7336*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm12, %xmm10 7337*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm12 7338*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm12 7339*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm0 7340*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm12, %xmm0 7341*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm0, %xmm4 7342*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm11, %xmm0 7343*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm0 7344*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm5 7345*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 7346*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm10 7347*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm6 7348*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 7349*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm9 7350*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm7 7351*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 7352*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm8 7353*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 7354*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 7355*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 7356*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 7357*9880d681SAndroid Build Coastguard Worker; 7358*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test151: 7359*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 7360*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm4, %xmm0 7361*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm5, %xmm1 7362*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm6, %xmm2 7363*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm7, %xmm3 7364*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 7365*9880d681SAndroid Build Coastguard Worker; 7366*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test151: 7367*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 7368*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 7369*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 7370*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm4, %xmm5, %xmm4 7371*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm2, %xmm0, %xmm0 7372*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 7373*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 7374*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 7375*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm2, %xmm4, %xmm2 7376*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm3, %xmm1, %xmm1 7377*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 7378*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 7379*9880d681SAndroid Build Coastguard Worker; 7380*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test151: 7381*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 7382*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminud %ymm2, %ymm0, %ymm0 7383*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminud %ymm3, %ymm1, %ymm1 7384*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 7385*9880d681SAndroid Build Coastguard Worker; 7386*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test151: 7387*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 7388*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminud %zmm1, %zmm0, %zmm0 7389*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 7390*9880d681SAndroid Build Coastguard Workerentry: 7391*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <16 x i32> %a, %b 7392*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a 7393*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 7394*9880d681SAndroid Build Coastguard Worker} 7395*9880d681SAndroid Build Coastguard Worker 7396*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test152(<16 x i32> %a, <16 x i32> %b) { 7397*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test152: 7398*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 7399*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm10 7400*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm14 = [2147483648,2147483648,2147483648,2147483648] 7401*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm0 7402*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm0 7403*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm12 7404*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm12 7405*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm0, %xmm12 7406*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm0, %xmm0 7407*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm8 7408*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm8 7409*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 7410*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm9 7411*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm13 7412*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm13 7413*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm13 7414*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm9 7415*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm9 7416*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm11 7417*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm11 7418*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm15 7419*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm15 7420*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm15 7421*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm11 7422*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm11 7423*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm14 7424*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 7425*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm11 7426*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm11 7427*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm0 7428*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm14 7429*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm10, %xmm0 7430*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm0 7431*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm15 7432*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm11 7433*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm11 7434*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm13 7435*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 7436*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm9 7437*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm12 7438*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 7439*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm8 7440*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 7441*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 7442*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 7443*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 7444*9880d681SAndroid Build Coastguard Worker; 7445*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test152: 7446*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 7447*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm4, %xmm0 7448*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm5, %xmm1 7449*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm6, %xmm2 7450*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pminud %xmm7, %xmm3 7451*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 7452*9880d681SAndroid Build Coastguard Worker; 7453*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test152: 7454*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 7455*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 7456*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 7457*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm4, %xmm5, %xmm4 7458*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm2, %xmm0, %xmm0 7459*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0 7460*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm2 7461*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 7462*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm2, %xmm4, %xmm2 7463*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpminud %xmm3, %xmm1, %xmm1 7464*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1 7465*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 7466*9880d681SAndroid Build Coastguard Worker; 7467*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test152: 7468*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 7469*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminud %ymm2, %ymm0, %ymm0 7470*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpminud %ymm3, %ymm1, %ymm1 7471*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 7472*9880d681SAndroid Build Coastguard Worker; 7473*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test152: 7474*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 7475*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminud %zmm1, %zmm0, %zmm0 7476*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 7477*9880d681SAndroid Build Coastguard Workerentry: 7478*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <16 x i32> %a, %b 7479*9880d681SAndroid Build Coastguard Worker %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a 7480*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %sel 7481*9880d681SAndroid Build Coastguard Worker} 7482*9880d681SAndroid Build Coastguard Worker 7483*9880d681SAndroid Build Coastguard Worker; ----------------------- 7484*9880d681SAndroid Build Coastguard Worker 7485*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test153(<8 x i64> %a, <8 x i64> %b) { 7486*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test153: 7487*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 7488*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [2147483648,0,2147483648,0] 7489*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 7490*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm8 7491*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm9 7492*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm9 7493*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm10 7494*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm10 7495*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm10[0,0,2,2] 7496*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm9 7497*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3] 7498*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm9 7499*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm10[1,1,3,3] 7500*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm8 7501*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 7502*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm9 7503*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm10 7504*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm10 7505*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm12 7506*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm12 7507*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2] 7508*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm9, %xmm10 7509*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3] 7510*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm13, %xmm10 7511*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm12[1,1,3,3] 7512*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm9 7513*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 7514*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm10 7515*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm12 7516*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm12 7517*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm13 7518*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm13 7519*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 7520*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm10, %xmm12 7521*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm12[1,1,3,3] 7522*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm12 7523*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm13[1,1,3,3] 7524*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm10 7525*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm12 7526*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm12 7527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm11 7528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm13 7529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm12, %xmm13 7530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 7531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm12, %xmm11 7532*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3] 7533*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm12 7534*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 7535*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm11 7536*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm4 7537*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm11 7538*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm11 7539*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm5 7540*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 7541*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm10 7542*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm6 7543*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 7544*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm9 7545*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm7 7546*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 7547*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm8 7548*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 7549*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 7550*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 7551*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 7552*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 7553*9880d681SAndroid Build Coastguard Worker; 7554*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test153: 7555*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 7556*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 7557*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm7, %xmm9 7558*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm3, %xmm9 7559*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm6, %xmm10 7560*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm2, %xmm10 7561*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm11 7562*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm1, %xmm11 7563*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm4, %xmm0 7564*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm8, %xmm0 7565*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm8 7566*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 7567*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm5, %xmm1 7568*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 7569*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm6, %xmm2 7570*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 7571*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm7, %xmm3 7572*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm8, %xmm0 7573*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 7574*9880d681SAndroid Build Coastguard Worker; 7575*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test153: 7576*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 7577*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 7578*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm5 7579*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm5, %xmm4 7580*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm1, %xmm3, %xmm5 7581*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm5, %ymm4 7582*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5 7583*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm6 7584*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm5, %xmm6, %xmm5 7585*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm0, %xmm2, %xmm6 7586*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm5, %ymm6, %ymm5 7587*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm2, %ymm0, %ymm0 7588*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm3, %ymm1, %ymm1 7589*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 7590*9880d681SAndroid Build Coastguard Worker; 7591*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test153: 7592*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 7593*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm1, %ymm3, %ymm4 7594*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm0, %ymm2, %ymm5 7595*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm2, %ymm0, %ymm0 7596*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm3, %ymm1, %ymm1 7597*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 7598*9880d681SAndroid Build Coastguard Worker; 7599*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test153: 7600*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 7601*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsq %zmm1, %zmm0, %zmm0 7602*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 7603*9880d681SAndroid Build Coastguard Workerentry: 7604*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <8 x i64> %a, %b 7605*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a 7606*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 7607*9880d681SAndroid Build Coastguard Worker} 7608*9880d681SAndroid Build Coastguard Worker 7609*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test154(<8 x i64> %a, <8 x i64> %b) { 7610*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test154: 7611*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 7612*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 7613*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, -{{[0-9]+}}(%rsp) # 16-byte Spill 7614*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm7 7615*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm3 7616*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 7617*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm9 7618*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [2147483648,0,2147483648,0] 7619*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm8 7620*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm0 7621*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm0 7622*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 7623*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm11 7624*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2] 7625*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm0 7626*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3] 7627*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm0 7628*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3] 7629*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm12 7630*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm1, %xmm1 7631*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm8 7632*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm8 7633*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm11 7634*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 7635*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm13 7636*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm13 7637*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm14 7638*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 7639*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2] 7640*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm13 7641*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 7642*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm15, %xmm11 7643*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3] 7644*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm13 7645*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm11 7646*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 7647*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm14 7648*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm14 7649*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm15 7650*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm15 7651*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm14 7652*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2] 7653*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 7654*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm14 7655*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3] 7656*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm15 7657*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 7658*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 7659*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm10 7660*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm14 7661*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 7662*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm10 7663*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2] 7664*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3] 7665*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 7666*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm10 7667*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm10 7668*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 7669*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm14 7670*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm11 7671*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm11 7672*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm1 7673*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm14 7674*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm1 7675*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm1 7676*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm15 7677*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm11 7678*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm11 7679*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm13 7680*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm10 7681*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm10 7682*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn -{{[0-9]+}}(%rsp), %xmm12 # 16-byte Folded Reload 7683*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 7684*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm8 7685*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm0 7686*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 7687*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm2 7688*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 7689*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 7690*9880d681SAndroid Build Coastguard Worker; 7691*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test154: 7692*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 7693*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 7694*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm9 7695*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm7, %xmm9 7696*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm12, %xmm12 7697*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm9 7698*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm10 7699*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm10 7700*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm10 7701*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm11 7702*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm5, %xmm11 7703*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm11 7704*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm4, %xmm0 7705*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm0 7706*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm8 7707*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 7708*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm5, %xmm1 7709*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 7710*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm6, %xmm2 7711*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 7712*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm7, %xmm3 7713*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm8, %xmm0 7714*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 7715*9880d681SAndroid Build Coastguard Worker; 7716*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test154: 7717*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 7718*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm4 7719*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm5 7720*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm5, %xmm4 7721*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm5, %xmm5, %xmm5 7722*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm4, %xmm4 7723*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm3, %xmm1, %xmm6 7724*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm6, %xmm6 7725*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm4 7726*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm6 7727*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm7 7728*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 7729*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm6, %xmm6 7730*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm0, %xmm7 7731*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm7, %xmm5 7732*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm5 7733*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm2, %ymm0, %ymm0 7734*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm3, %ymm1, %ymm1 7735*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 7736*9880d681SAndroid Build Coastguard Worker; 7737*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test154: 7738*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 7739*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm3, %ymm1, %ymm4 7740*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm5, %ymm5, %ymm5 7741*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm5, %ymm4, %ymm4 7742*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm2, %ymm0, %ymm6 7743*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm5, %ymm6, %ymm5 7744*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm2, %ymm0, %ymm0 7745*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm3, %ymm1, %ymm1 7746*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 7747*9880d681SAndroid Build Coastguard Worker; 7748*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test154: 7749*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 7750*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxsq %zmm1, %zmm0, %zmm0 7751*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 7752*9880d681SAndroid Build Coastguard Workerentry: 7753*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <8 x i64> %a, %b 7754*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a 7755*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 7756*9880d681SAndroid Build Coastguard Worker} 7757*9880d681SAndroid Build Coastguard Worker 7758*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test155(<8 x i64> %a, <8 x i64> %b) { 7759*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test155: 7760*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 7761*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [2147483648,0,2147483648,0] 7762*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 7763*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm8 7764*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm9 7765*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm9 7766*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm10 7767*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm10 7768*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm10[0,0,2,2] 7769*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm9 7770*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3] 7771*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm9 7772*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm10[1,1,3,3] 7773*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm8 7774*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm9 7775*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm9 7776*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm10 7777*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm10 7778*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm12 7779*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm12 7780*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2] 7781*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm9, %xmm10 7782*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3] 7783*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm13, %xmm10 7784*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm12[1,1,3,3] 7785*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm9 7786*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm10 7787*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm10 7788*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm12 7789*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm12 7790*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm13 7791*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm13 7792*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 7793*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm10, %xmm12 7794*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm12[1,1,3,3] 7795*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm12 7796*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm13[1,1,3,3] 7797*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm10 7798*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm12 7799*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm12 7800*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm11 7801*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm13 7802*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm12, %xmm13 7803*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 7804*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm12, %xmm11 7805*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3] 7806*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm12 7807*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 7808*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm11 7809*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm4 7810*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm11 7811*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm11 7812*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm5 7813*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 7814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm10 7815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm6 7816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 7817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm9 7818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm7 7819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 7820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm8 7821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 7822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 7823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 7824*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 7825*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 7826*9880d681SAndroid Build Coastguard Worker; 7827*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test155: 7828*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 7829*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 7830*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm9 7831*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm7, %xmm9 7832*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm10 7833*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm10 7834*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm11 7835*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm5, %xmm11 7836*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm4, %xmm0 7837*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm8 7838*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 7839*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm5, %xmm1 7840*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 7841*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm6, %xmm2 7842*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 7843*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm7, %xmm3 7844*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm8, %xmm0 7845*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 7846*9880d681SAndroid Build Coastguard Worker; 7847*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test155: 7848*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 7849*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm4 7850*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm5 7851*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm5, %xmm4 7852*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm3, %xmm1, %xmm5 7853*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm5, %ymm4 7854*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm5 7855*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm6 7856*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm5, %xmm6, %xmm5 7857*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm0, %xmm6 7858*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm5, %ymm6, %ymm5 7859*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm2, %ymm0, %ymm0 7860*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm3, %ymm1, %ymm1 7861*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 7862*9880d681SAndroid Build Coastguard Worker; 7863*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test155: 7864*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 7865*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm3, %ymm1, %ymm4 7866*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm2, %ymm0, %ymm5 7867*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm2, %ymm0, %ymm0 7868*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm3, %ymm1, %ymm1 7869*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 7870*9880d681SAndroid Build Coastguard Worker; 7871*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test155: 7872*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 7873*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsq %zmm1, %zmm0, %zmm0 7874*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 7875*9880d681SAndroid Build Coastguard Workerentry: 7876*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <8 x i64> %a, %b 7877*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a 7878*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 7879*9880d681SAndroid Build Coastguard Worker} 7880*9880d681SAndroid Build Coastguard Worker 7881*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test156(<8 x i64> %a, <8 x i64> %b) { 7882*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test156: 7883*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 7884*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm11 7885*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, -{{[0-9]+}}(%rsp) # 16-byte Spill 7886*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm7 7887*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm3 7888*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 7889*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm9 7890*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [2147483648,0,2147483648,0] 7891*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 7892*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm8 7893*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 7894*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm0 7895*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 7896*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm11 7897*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2] 7898*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm0 7899*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3] 7900*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm0 7901*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3] 7902*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm12 7903*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm1, %xmm1 7904*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm8 7905*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm8 7906*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm11 7907*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 7908*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm13 7909*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm13 7910*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm14 7911*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 7912*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2] 7913*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm13 7914*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 7915*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm15, %xmm11 7916*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3] 7917*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm13 7918*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm11 7919*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 7920*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm14 7921*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm14 7922*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm15 7923*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm15 7924*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm14 7925*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2] 7926*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 7927*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm14 7928*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3] 7929*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm15 7930*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm11 7931*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 7932*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm10 7933*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm14 7934*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 7935*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm10 7936*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2] 7937*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3] 7938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 7939*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm10 7940*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm10 7941*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 7942*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm14 7943*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm11 7944*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm11 7945*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm1 7946*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm14 7947*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm1 7948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm1 7949*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm15 7950*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm11 7951*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm11 7952*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm13 7953*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm10 7954*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm10 7955*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn -{{[0-9]+}}(%rsp), %xmm12 # 16-byte Folded Reload 7956*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 7957*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm8 7958*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm0 7959*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 7960*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm2 7961*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 7962*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 7963*9880d681SAndroid Build Coastguard Worker; 7964*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test156: 7965*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 7966*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 7967*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm7, %xmm9 7968*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm3, %xmm9 7969*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm0, %xmm0 7970*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm9 7971*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm6, %xmm10 7972*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm2, %xmm10 7973*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 7974*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm11 7975*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm1, %xmm11 7976*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 7977*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm4, %xmm12 7978*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm8, %xmm12 7979*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm0 7980*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm8 7981*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 7982*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm5, %xmm1 7983*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 7984*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm6, %xmm2 7985*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 7986*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm7, %xmm3 7987*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm8, %xmm0 7988*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 7989*9880d681SAndroid Build Coastguard Worker; 7990*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test156: 7991*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 7992*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 7993*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm5 7994*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm5, %xmm4 7995*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm5, %xmm5, %xmm5 7996*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm4, %xmm4 7997*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm1, %xmm3, %xmm6 7998*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm6, %xmm6 7999*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm4 8000*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm6 8001*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm7 8002*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 8003*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm6, %xmm6 8004*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm0, %xmm2, %xmm7 8005*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm5, %xmm7, %xmm5 8006*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm5 8007*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm2, %ymm0, %ymm0 8008*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm3, %ymm1, %ymm1 8009*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 8010*9880d681SAndroid Build Coastguard Worker; 8011*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test156: 8012*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 8013*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm1, %ymm3, %ymm4 8014*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm5, %ymm5, %ymm5 8015*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm5, %ymm4, %ymm4 8016*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm0, %ymm2, %ymm6 8017*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm5, %ymm6, %ymm5 8018*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm2, %ymm0, %ymm0 8019*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm3, %ymm1, %ymm1 8020*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 8021*9880d681SAndroid Build Coastguard Worker; 8022*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test156: 8023*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 8024*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminsq %zmm1, %zmm0, %zmm0 8025*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 8026*9880d681SAndroid Build Coastguard Workerentry: 8027*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <8 x i64> %a, %b 8028*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a 8029*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 8030*9880d681SAndroid Build Coastguard Worker} 8031*9880d681SAndroid Build Coastguard Worker 8032*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test157(<8 x i64> %a, <8 x i64> %b) { 8033*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test157: 8034*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 8035*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [2147483648,2147483648,2147483648,2147483648] 8036*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm8 8037*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm8 8038*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm9 8039*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm9 8040*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm10 8041*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm10 8042*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm10[0,0,2,2] 8043*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm9 8044*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3] 8045*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm9 8046*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm10[1,1,3,3] 8047*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm8 8048*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm9 8049*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm9 8050*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm10 8051*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm10 8052*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm12 8053*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm12 8054*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2] 8055*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm9, %xmm10 8056*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3] 8057*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm13, %xmm10 8058*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm12[1,1,3,3] 8059*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm9 8060*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm10 8061*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm10 8062*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm12 8063*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm12 8064*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm13 8065*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm13 8066*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 8067*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm10, %xmm12 8068*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm12[1,1,3,3] 8069*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm12 8070*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm13[1,1,3,3] 8071*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm10 8072*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm12 8073*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm12 8074*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm11 8075*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm13 8076*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm12, %xmm13 8077*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 8078*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm12, %xmm11 8079*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3] 8080*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm12 8081*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 8082*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm11 8083*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm4 8084*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm11 8085*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm11 8086*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm5 8087*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 8088*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm10 8089*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm6 8090*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 8091*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm9 8092*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm7 8093*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 8094*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm8 8095*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 8096*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 8097*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 8098*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 8099*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 8100*9880d681SAndroid Build Coastguard Worker; 8101*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test157: 8102*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 8103*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 8104*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 8105*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm10 8106*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 8107*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm7, %xmm9 8108*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm9 8109*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm10, %xmm9 8110*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm11 8111*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 8112*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm6, %xmm10 8113*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 8114*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm11, %xmm10 8115*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm12 8116*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm12 8117*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm11 8118*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 8119*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm12, %xmm11 8120*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm8, %xmm12 8121*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm12 8122*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm4, %xmm0 8123*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm12, %xmm0 8124*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm8 8125*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 8126*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm5, %xmm1 8127*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 8128*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm6, %xmm2 8129*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 8130*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm7, %xmm3 8131*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm8, %xmm0 8132*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 8133*9880d681SAndroid Build Coastguard Worker; 8134*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test157: 8135*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 8136*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 8137*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808] 8138*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm4, %xmm4 8139*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm6 8140*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 8141*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm6, %xmm4 8142*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm1, %xmm6 8143*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm3, %xmm7 8144*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 8145*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm4 8146*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm6 8147*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 8148*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm7 8149*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm7, %xmm7 8150*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 8151*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm0, %xmm7 8152*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm2, %xmm5 8153*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm7, %xmm5, %xmm5 8154*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm5 8155*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm2, %ymm0, %ymm0 8156*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm3, %ymm1, %ymm1 8157*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 8158*9880d681SAndroid Build Coastguard Worker; 8159*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test157: 8160*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 8161*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm4 8162*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm1, %ymm5 8163*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm3, %ymm6 8164*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm5, %ymm6, %ymm5 8165*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm0, %ymm6 8166*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm2, %ymm4 8167*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm6, %ymm4, %ymm4 8168*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm2, %ymm0, %ymm0 8169*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm3, %ymm1, %ymm1 8170*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 8171*9880d681SAndroid Build Coastguard Worker; 8172*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test157: 8173*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 8174*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxuq %zmm1, %zmm0, %zmm0 8175*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 8176*9880d681SAndroid Build Coastguard Workerentry: 8177*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <8 x i64> %a, %b 8178*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a 8179*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 8180*9880d681SAndroid Build Coastguard Worker} 8181*9880d681SAndroid Build Coastguard Worker 8182*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test158(<8 x i64> %a, <8 x i64> %b) { 8183*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test158: 8184*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 8185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 8186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, -{{[0-9]+}}(%rsp) # 16-byte Spill 8187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm7 8188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm3 8189*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 8190*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm9 8191*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [2147483648,2147483648,2147483648,2147483648] 8192*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm8 8193*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm0 8194*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm0 8195*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 8196*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm11 8197*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2] 8198*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm0 8199*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3] 8200*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm0 8201*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3] 8202*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm12 8203*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm1, %xmm1 8204*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm8 8205*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm8 8206*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm11 8207*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 8208*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm13 8209*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm13 8210*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm14 8211*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 8212*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2] 8213*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm13 8214*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 8215*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm15, %xmm11 8216*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3] 8217*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm13 8218*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm11 8219*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 8220*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm14 8221*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm14 8222*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm15 8223*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm15 8224*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm14 8225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2] 8226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 8227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm14 8228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3] 8229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm15 8230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm11 8231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 8232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm9, %xmm10 8233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm14 8234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 8235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm10 8236*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2] 8237*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3] 8238*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 8239*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm10 8240*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm10 8241*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 8242*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm14 8243*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm11 8244*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm11 8245*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm1 8246*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm14 8247*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm1 8248*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm1 8249*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm15 8250*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm11 8251*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm11 8252*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm13 8253*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm10 8254*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm10 8255*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn -{{[0-9]+}}(%rsp), %xmm12 # 16-byte Folded Reload 8256*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 8257*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm8 8258*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm0 8259*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 8260*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm2 8261*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 8262*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 8263*9880d681SAndroid Build Coastguard Worker; 8264*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test158: 8265*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 8266*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 8267*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 8268*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm7, %xmm10 8269*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 8270*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm9 8271*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm9 8272*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm10, %xmm9 8273*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm12, %xmm12 8274*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm9 8275*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm6, %xmm11 8276*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 8277*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm10 8278*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 8279*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm11, %xmm10 8280*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm10 8281*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm13 8282*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm13 8283*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm11 8284*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 8285*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm13, %xmm11 8286*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm11 8287*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm4, %xmm13 8288*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm13 8289*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm8, %xmm0 8290*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm13, %xmm0 8291*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm0 8292*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm8 8293*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 8294*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm5, %xmm1 8295*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 8296*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm6, %xmm2 8297*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 8298*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm7, %xmm3 8299*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm8, %xmm0 8300*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 8301*9880d681SAndroid Build Coastguard Worker; 8302*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test158: 8303*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 8304*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm4 8305*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808] 8306*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm4, %xmm4 8307*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm6 8308*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 8309*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm6, %xmm4 8310*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm8, %xmm8, %xmm8 8311*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm4, %xmm4 8312*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm3, %xmm7 8313*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm1, %xmm6 8314*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm7, %xmm6, %xmm6 8315*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm6, %xmm6 8316*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm4 8317*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm6 8318*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 8319*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm7 8320*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm7, %xmm7 8321*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 8322*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm6, %xmm6 8323*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm2, %xmm7 8324*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm0, %xmm5 8325*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm7, %xmm5, %xmm5 8326*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm5, %xmm5 8327*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm5 8328*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm2, %ymm0, %ymm0 8329*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm3, %ymm1, %ymm1 8330*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 8331*9880d681SAndroid Build Coastguard Worker; 8332*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test158: 8333*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 8334*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm4 8335*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm3, %ymm5 8336*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm1, %ymm6 8337*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm5, %ymm6, %ymm5 8338*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm6, %ymm6, %ymm6 8339*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm6, %ymm5, %ymm5 8340*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm2, %ymm7 8341*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm0, %ymm4 8342*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm7, %ymm4, %ymm4 8343*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm6, %ymm4, %ymm4 8344*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm2, %ymm0, %ymm0 8345*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm3, %ymm1, %ymm1 8346*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 8347*9880d681SAndroid Build Coastguard Worker; 8348*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test158: 8349*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 8350*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpmaxuq %zmm1, %zmm0, %zmm0 8351*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 8352*9880d681SAndroid Build Coastguard Workerentry: 8353*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <8 x i64> %a, %b 8354*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a 8355*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 8356*9880d681SAndroid Build Coastguard Worker} 8357*9880d681SAndroid Build Coastguard Worker 8358*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test159(<8 x i64> %a, <8 x i64> %b) { 8359*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test159: 8360*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 8361*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [2147483648,2147483648,2147483648,2147483648] 8362*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 8363*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm8 8364*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm9 8365*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm9 8366*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm10 8367*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm10 8368*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm10[0,0,2,2] 8369*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm9 8370*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3] 8371*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm9 8372*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm10[1,1,3,3] 8373*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm9, %xmm8 8374*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm9 8375*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm9 8376*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm10 8377*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm10 8378*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm12 8379*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm9, %xmm12 8380*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2] 8381*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm9, %xmm10 8382*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3] 8383*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm13, %xmm10 8384*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm9 = xmm12[1,1,3,3] 8385*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm10, %xmm9 8386*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm10 8387*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm10 8388*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm12 8389*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm12 8390*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm13 8391*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm10, %xmm13 8392*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 8393*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm10, %xmm12 8394*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm12[1,1,3,3] 8395*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm12 8396*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm13[1,1,3,3] 8397*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm10 8398*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm12 8399*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm11, %xmm12 8400*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm11 8401*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm13 8402*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm12, %xmm13 8403*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2] 8404*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm12, %xmm11 8405*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3] 8406*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm14, %xmm12 8407*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 8408*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm11 8409*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm4 8410*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm11 8411*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm11 8412*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm5 8413*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm10 8414*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm10 8415*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm9, %xmm6 8416*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm9 8417*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm9 8418*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm7 8419*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 8420*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm7, %xmm8 8421*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 8422*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm1 8423*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm2 8424*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 8425*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 8426*9880d681SAndroid Build Coastguard Worker; 8427*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test159: 8428*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 8429*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 8430*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 8431*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm7, %xmm10 8432*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 8433*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm9 8434*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm9 8435*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm10, %xmm9 8436*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm6, %xmm11 8437*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 8438*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm10 8439*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 8440*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm11, %xmm10 8441*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm12 8442*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm12 8443*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm11 8444*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 8445*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm12, %xmm11 8446*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm4, %xmm12 8447*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm12 8448*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm8, %xmm0 8449*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm12, %xmm0 8450*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm8 8451*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 8452*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm5, %xmm1 8453*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 8454*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm6, %xmm2 8455*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 8456*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm7, %xmm3 8457*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm8, %xmm0 8458*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 8459*9880d681SAndroid Build Coastguard Worker; 8460*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test159: 8461*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 8462*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm4 8463*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808] 8464*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm4, %xmm4 8465*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm6 8466*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 8467*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm6, %xmm4 8468*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm3, %xmm6 8469*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm1, %xmm7 8470*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 8471*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm4 8472*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm6 8473*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 8474*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm7 8475*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm7, %xmm7 8476*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 8477*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm2, %xmm7 8478*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm0, %xmm5 8479*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm7, %xmm5, %xmm5 8480*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm5 8481*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm2, %ymm0, %ymm0 8482*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm3, %ymm1, %ymm1 8483*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 8484*9880d681SAndroid Build Coastguard Worker; 8485*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test159: 8486*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 8487*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm4 8488*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm3, %ymm5 8489*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm1, %ymm6 8490*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm5, %ymm6, %ymm5 8491*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm2, %ymm6 8492*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm0, %ymm4 8493*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm6, %ymm4, %ymm4 8494*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm2, %ymm0, %ymm0 8495*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm3, %ymm1, %ymm1 8496*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 8497*9880d681SAndroid Build Coastguard Worker; 8498*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test159: 8499*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 8500*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminuq %zmm1, %zmm0, %zmm0 8501*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 8502*9880d681SAndroid Build Coastguard Workerentry: 8503*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <8 x i64> %a, %b 8504*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a 8505*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 8506*9880d681SAndroid Build Coastguard Worker} 8507*9880d681SAndroid Build Coastguard Worker 8508*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test160(<8 x i64> %a, <8 x i64> %b) { 8509*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test160: 8510*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 8511*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm11 8512*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, -{{[0-9]+}}(%rsp) # 16-byte Spill 8513*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm7 8514*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm3 8515*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm2 8516*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm9 8517*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [2147483648,2147483648,2147483648,2147483648] 8518*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm8 8519*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm8 8520*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm0 8521*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm0 8522*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm11 8523*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm8, %xmm11 8524*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2] 8525*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm8, %xmm0 8526*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3] 8527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm12, %xmm0 8528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3] 8529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm12 8530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm1, %xmm1 8531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm12, %xmm8 8532*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm8 8533*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm11 8534*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 8535*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm13 8536*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm13 8537*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm14 8538*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 8539*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2] 8540*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm13 8541*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3] 8542*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm15, %xmm11 8543*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3] 8544*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm11, %xmm13 8545*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm11 8546*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 8547*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm14 8548*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm14 8549*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm14, %xmm15 8550*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm15 8551*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm14 8552*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2] 8553*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 8554*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm14 8555*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3] 8556*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm15 8557*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm11 8558*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm10, %xmm11 8559*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm10 8560*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm14 8561*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm11, %xmm14 8562*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm11, %xmm10 8563*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2] 8564*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3] 8565*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm11, %xmm0 8566*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm13, %xmm10 8567*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm10 8568*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3] 8569*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm0, %xmm14 8570*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm15, %xmm11 8571*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm11 8572*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm14, %xmm1 8573*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm4, %xmm14 8574*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm9, %xmm1 8575*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm14, %xmm1 8576*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm5, %xmm15 8577*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm11 8578*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm15, %xmm11 8579*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm6, %xmm13 8580*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm10 8581*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm13, %xmm10 8582*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn -{{[0-9]+}}(%rsp), %xmm12 # 16-byte Folded Reload 8583*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm7, %xmm8 8584*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm12, %xmm8 8585*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm0 8586*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm11, %xmm1 8587*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm10, %xmm2 8588*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm3 8589*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 8590*9880d681SAndroid Build Coastguard Worker; 8591*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test160: 8592*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 8593*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm8 8594*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 8595*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm10 8596*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 8597*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm7, %xmm9 8598*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm9 8599*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm10, %xmm9 8600*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm12, %xmm12 8601*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm9 8602*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm11 8603*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 8604*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm6, %xmm10 8605*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm10 8606*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm11, %xmm10 8607*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm10 8608*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm13 8609*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm13 8610*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm11 8611*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm11 8612*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm13, %xmm11 8613*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm11 8614*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm8, %xmm13 8615*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm13 8616*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm4, %xmm0 8617*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm13, %xmm0 8618*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm12, %xmm0 8619*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm8 8620*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm11, %xmm0 8621*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm5, %xmm1 8622*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm10, %xmm0 8623*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm6, %xmm2 8624*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm9, %xmm0 8625*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm7, %xmm3 8626*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm8, %xmm0 8627*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 8628*9880d681SAndroid Build Coastguard Worker; 8629*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test160: 8630*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 8631*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 8632*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808] 8633*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm4, %xmm4 8634*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm6 8635*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 8636*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm6, %xmm4 8637*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm8, %xmm8, %xmm8 8638*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm4, %xmm4 8639*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm1, %xmm7 8640*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm3, %xmm6 8641*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm7, %xmm6, %xmm6 8642*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm6, %xmm6 8643*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm6, %ymm4 8644*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm6 8645*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm6, %xmm6 8646*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm7 8647*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm7, %xmm7 8648*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm6, %xmm7, %xmm6 8649*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm6, %xmm6 8650*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm0, %xmm7 8651*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm5, %xmm2, %xmm5 8652*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm7, %xmm5, %xmm5 8653*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm8, %xmm5, %xmm5 8654*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm5, %ymm5 8655*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm5, %ymm2, %ymm0, %ymm0 8656*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm4, %ymm3, %ymm1, %ymm1 8657*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 8658*9880d681SAndroid Build Coastguard Worker; 8659*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test160: 8660*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 8661*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm4 8662*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm1, %ymm5 8663*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm3, %ymm6 8664*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm5, %ymm6, %ymm5 8665*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm6, %ymm6, %ymm6 8666*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm6, %ymm5, %ymm5 8667*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm0, %ymm7 8668*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm4, %ymm2, %ymm4 8669*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm7, %ymm4, %ymm4 8670*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm6, %ymm4, %ymm4 8671*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm4, %ymm2, %ymm0, %ymm0 8672*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm5, %ymm3, %ymm1, %ymm1 8673*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 8674*9880d681SAndroid Build Coastguard Worker; 8675*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test160: 8676*9880d681SAndroid Build Coastguard Worker; AVX512F: # BB#0: # %entry 8677*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: vpminuq %zmm1, %zmm0, %zmm0 8678*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT: retq 8679*9880d681SAndroid Build Coastguard Workerentry: 8680*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <8 x i64> %a, %b 8681*9880d681SAndroid Build Coastguard Worker %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a 8682*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %sel 8683*9880d681SAndroid Build Coastguard Worker} 8684*9880d681SAndroid Build Coastguard Worker 8685*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test161(<4 x i64> %a, <4 x i64> %b) { 8686*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test161: 8687*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 8688*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,0,2147483648,0] 8689*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm5 8690*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 8691*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 8692*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 8693*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm7 8694*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm7 8695*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 8696*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm5, %xmm6 8697*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3] 8698*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm5 8699*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3] 8700*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm6 8701*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 8702*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 8703*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm4 8704*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm7 8705*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm7 8706*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 8707*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm5, %xmm4 8708*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3] 8709*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm4 8710*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3] 8711*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm5 8712*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm0 8713*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 8714*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm0 8715*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm6, %xmm1 8716*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm6 8717*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm1 8718*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 8719*9880d681SAndroid Build Coastguard Worker; 8720*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test161: 8721*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 8722*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 8723*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm5 8724*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm1, %xmm5 8725*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm0 8726*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm4, %xmm0 8727*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm2 8728*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 8729*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm3 8730*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 8731*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm3, %xmm1 8732*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 8733*9880d681SAndroid Build Coastguard Worker; 8734*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test161: 8735*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 8736*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 8737*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm3 8738*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2 8739*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm0, %xmm1, %xmm3 8740*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 8741*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 8742*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 8743*9880d681SAndroid Build Coastguard Worker; 8744*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test161: 8745*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 8746*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm0, %ymm1, %ymm2 8747*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 8748*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 8749*9880d681SAndroid Build Coastguard Worker; 8750*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test161: 8751*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 8752*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsq %ymm1, %ymm0, %ymm0 8753*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 8754*9880d681SAndroid Build Coastguard Workerentry: 8755*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <4 x i64> %a, %b 8756*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b 8757*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 8758*9880d681SAndroid Build Coastguard Worker} 8759*9880d681SAndroid Build Coastguard Worker 8760*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test162(<4 x i64> %a, <4 x i64> %b) { 8761*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test162: 8762*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 8763*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [2147483648,0,2147483648,0] 8764*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 8765*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 8766*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm5 8767*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm5 8768*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm6 8769*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm6 8770*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2] 8771*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm5 8772*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3] 8773*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm4 8774*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3] 8775*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm8 8776*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 8777*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm9 8778*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm9 8779*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm6 8780*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm6 8781*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm7 8782*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm5 8783*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm5 8784*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2] 8785*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm6, %xmm7 8786*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3] 8787*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm6 8788*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3] 8789*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 8790*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 8791*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 8792*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm4 8793*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm4 8794*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm8 8795*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm9 8796*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm9 8797*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 8798*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm1 8799*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 8800*9880d681SAndroid Build Coastguard Worker; 8801*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test162: 8802*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 8803*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 8804*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm5 8805*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm3, %xmm5 8806*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm6, %xmm6 8807*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm5 8808*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm2, %xmm0 8809*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm0 8810*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm2 8811*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 8812*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm3 8813*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 8814*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm3, %xmm1 8815*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 8816*9880d681SAndroid Build Coastguard Worker; 8817*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test162: 8818*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 8819*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 8820*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 8821*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2 8822*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 8823*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm2, %xmm2 8824*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm4 8825*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm4, %xmm3 8826*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 8827*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 8828*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 8829*9880d681SAndroid Build Coastguard Worker; 8830*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test162: 8831*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 8832*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm1, %ymm0, %ymm2 8833*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3 8834*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm3, %ymm2, %ymm2 8835*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 8836*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 8837*9880d681SAndroid Build Coastguard Worker; 8838*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test162: 8839*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 8840*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsq %ymm1, %ymm0, %ymm0 8841*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 8842*9880d681SAndroid Build Coastguard Workerentry: 8843*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <4 x i64> %a, %b 8844*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b 8845*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 8846*9880d681SAndroid Build Coastguard Worker} 8847*9880d681SAndroid Build Coastguard Worker 8848*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test163(<4 x i64> %a, <4 x i64> %b) { 8849*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test163: 8850*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 8851*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,0,2147483648,0] 8852*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm5 8853*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 8854*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm6 8855*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 8856*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm7 8857*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm7 8858*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 8859*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm5, %xmm6 8860*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3] 8861*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm5 8862*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3] 8863*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm6 8864*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm5 8865*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 8866*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm4 8867*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm7 8868*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm7 8869*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 8870*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm5, %xmm4 8871*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3] 8872*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm4 8873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3] 8874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm5 8875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm0 8876*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 8877*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm0 8878*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm6, %xmm1 8879*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm6 8880*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm1 8881*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 8882*9880d681SAndroid Build Coastguard Worker; 8883*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test163: 8884*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 8885*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 8886*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm5 8887*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm3, %xmm5 8888*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm2, %xmm0 8889*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm2 8890*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 8891*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm3 8892*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 8893*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm3, %xmm1 8894*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 8895*9880d681SAndroid Build Coastguard Worker; 8896*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test163: 8897*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 8898*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 8899*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 8900*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2 8901*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm3 8902*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 8903*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 8904*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 8905*9880d681SAndroid Build Coastguard Worker; 8906*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test163: 8907*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 8908*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm1, %ymm0, %ymm2 8909*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 8910*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 8911*9880d681SAndroid Build Coastguard Worker; 8912*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test163: 8913*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 8914*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsq %ymm1, %ymm0, %ymm0 8915*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 8916*9880d681SAndroid Build Coastguard Workerentry: 8917*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <4 x i64> %a, %b 8918*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b 8919*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 8920*9880d681SAndroid Build Coastguard Worker} 8921*9880d681SAndroid Build Coastguard Worker 8922*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test164(<4 x i64> %a, <4 x i64> %b) { 8923*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test164: 8924*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 8925*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [2147483648,0,2147483648,0] 8926*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 8927*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 8928*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm5 8929*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm5 8930*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm6 8931*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm6 8932*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2] 8933*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm5 8934*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3] 8935*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm4 8936*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3] 8937*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm8 8938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 8939*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm9 8940*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm9 8941*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm6 8942*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm6 8943*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm7 8944*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm5 8945*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm5 8946*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2] 8947*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm6, %xmm7 8948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3] 8949*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm6 8950*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3] 8951*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 8952*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 8953*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 8954*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm4 8955*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm4 8956*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm8 8957*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm9 8958*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm9 8959*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 8960*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm1 8961*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 8962*9880d681SAndroid Build Coastguard Worker; 8963*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test164: 8964*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 8965*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 8966*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm5 8967*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm1, %xmm5 8968*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm0, %xmm0 8969*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm5 8970*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm6 8971*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm4, %xmm6 8972*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm0 8973*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm2 8974*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 8975*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm3 8976*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 8977*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm3, %xmm1 8978*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 8979*9880d681SAndroid Build Coastguard Worker; 8980*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test164: 8981*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 8982*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 8983*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm3 8984*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2 8985*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 8986*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm2, %xmm2 8987*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm0, %xmm1, %xmm4 8988*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm4, %xmm3 8989*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 8990*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 8991*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 8992*9880d681SAndroid Build Coastguard Worker; 8993*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test164: 8994*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 8995*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm0, %ymm1, %ymm2 8996*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3 8997*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm3, %ymm2, %ymm2 8998*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 8999*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 9000*9880d681SAndroid Build Coastguard Worker; 9001*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test164: 9002*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 9003*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsq %ymm1, %ymm0, %ymm0 9004*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 9005*9880d681SAndroid Build Coastguard Workerentry: 9006*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <4 x i64> %a, %b 9007*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b 9008*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 9009*9880d681SAndroid Build Coastguard Worker} 9010*9880d681SAndroid Build Coastguard Worker 9011*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test165(<4 x i64> %a, <4 x i64> %b) { 9012*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test165: 9013*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 9014*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648] 9015*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm5 9016*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 9017*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 9018*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 9019*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm7 9020*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm7 9021*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 9022*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm5, %xmm6 9023*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3] 9024*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm5 9025*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3] 9026*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm6 9027*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm5 9028*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 9029*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm4 9030*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm7 9031*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm7 9032*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 9033*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm5, %xmm4 9034*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3] 9035*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm4 9036*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3] 9037*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm5 9038*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm0 9039*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 9040*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm0 9041*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm6, %xmm1 9042*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm6 9043*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm1 9044*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 9045*9880d681SAndroid Build Coastguard Worker; 9046*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test165: 9047*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 9048*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 9049*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 9050*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm6 9051*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm6 9052*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm5 9053*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm5 9054*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm5 9055*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm4, %xmm6 9056*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm6 9057*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm2, %xmm0 9058*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm0 9059*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm2 9060*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 9061*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm3 9062*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 9063*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm3, %xmm1 9064*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 9065*9880d681SAndroid Build Coastguard Worker; 9066*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test165: 9067*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 9068*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 9069*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808] 9070*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm2, %xmm2 9071*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 9072*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm4, %xmm4 9073*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm4, %xmm2 9074*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm0, %xmm4 9075*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm1, %xmm3 9076*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm3, %xmm3 9077*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 9078*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 9079*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 9080*9880d681SAndroid Build Coastguard Worker; 9081*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test165: 9082*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 9083*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2 9084*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm3 9085*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm1, %ymm2 9086*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2 9087*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 9088*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 9089*9880d681SAndroid Build Coastguard Worker; 9090*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test165: 9091*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 9092*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminuq %ymm1, %ymm0, %ymm0 9093*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 9094*9880d681SAndroid Build Coastguard Workerentry: 9095*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <4 x i64> %a, %b 9096*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b 9097*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 9098*9880d681SAndroid Build Coastguard Worker} 9099*9880d681SAndroid Build Coastguard Worker 9100*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test166(<4 x i64> %a, <4 x i64> %b) { 9101*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test166: 9102*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 9103*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [2147483648,2147483648,2147483648,2147483648] 9104*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 9105*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 9106*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm5 9107*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm5 9108*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm6 9109*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm6 9110*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2] 9111*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm5 9112*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3] 9113*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm4 9114*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3] 9115*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm8 9116*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 9117*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm9 9118*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm9 9119*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm6 9120*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm6 9121*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm7 9122*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm5 9123*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm5 9124*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2] 9125*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm6, %xmm7 9126*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3] 9127*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm6 9128*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3] 9129*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 9130*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 9131*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 9132*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm4 9133*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm4 9134*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm8 9135*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm9 9136*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm9 9137*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 9138*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm1 9139*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 9140*9880d681SAndroid Build Coastguard Worker; 9141*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test166: 9142*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 9143*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 9144*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 9145*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm6 9146*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm6 9147*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm5 9148*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm5 9149*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm5 9150*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm6, %xmm6 9151*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm5 9152*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm7 9153*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm7 9154*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm4, %xmm0 9155*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm7, %xmm0 9156*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm0 9157*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm2 9158*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 9159*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm3 9160*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 9161*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm3, %xmm1 9162*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 9163*9880d681SAndroid Build Coastguard Worker; 9164*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test166: 9165*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 9166*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 9167*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808] 9168*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm2, %xmm2 9169*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm4 9170*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm4, %xmm4 9171*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm4, %xmm2 9172*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm4, %xmm4, %xmm4 9173*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm4, %xmm2, %xmm2 9174*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm1, %xmm5 9175*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm0, %xmm3 9176*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm5, %xmm3, %xmm3 9177*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm4, %xmm3, %xmm3 9178*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 9179*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 9180*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 9181*9880d681SAndroid Build Coastguard Worker; 9182*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test166: 9183*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 9184*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2 9185*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm1, %ymm3 9186*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm2 9187*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2 9188*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3 9189*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm3, %ymm2, %ymm2 9190*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 9191*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 9192*9880d681SAndroid Build Coastguard Worker; 9193*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test166: 9194*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 9195*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminuq %ymm1, %ymm0, %ymm0 9196*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 9197*9880d681SAndroid Build Coastguard Workerentry: 9198*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <4 x i64> %a, %b 9199*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b 9200*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 9201*9880d681SAndroid Build Coastguard Worker} 9202*9880d681SAndroid Build Coastguard Worker 9203*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test167(<4 x i64> %a, <4 x i64> %b) { 9204*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test167: 9205*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 9206*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648] 9207*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm5 9208*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 9209*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm6 9210*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm6 9211*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm7 9212*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm7 9213*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 9214*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm5, %xmm6 9215*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3] 9216*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm5 9217*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3] 9218*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm6 9219*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm5 9220*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm5 9221*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm4 9222*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm7 9223*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm5, %xmm7 9224*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 9225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm5, %xmm4 9226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3] 9227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm4 9228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3] 9229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm5 9230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm0 9231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 9232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm0 9233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm6, %xmm1 9234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm6 9235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm1 9236*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 9237*9880d681SAndroid Build Coastguard Worker; 9238*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test167: 9239*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 9240*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 9241*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 9242*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm6 9243*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm6 9244*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm5 9245*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm5 9246*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm5 9247*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm6 9248*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm6 9249*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm4, %xmm0 9250*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm0 9251*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm2 9252*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 9253*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm3 9254*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 9255*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm3, %xmm1 9256*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 9257*9880d681SAndroid Build Coastguard Worker; 9258*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test167: 9259*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 9260*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 9261*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808] 9262*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm2, %xmm2 9263*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm4 9264*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm4, %xmm4 9265*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm4, %xmm2 9266*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm1, %xmm4 9267*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm0, %xmm3 9268*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm3, %xmm3 9269*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 9270*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 9271*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 9272*9880d681SAndroid Build Coastguard Worker; 9273*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test167: 9274*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 9275*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2 9276*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm1, %ymm3 9277*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm2 9278*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2 9279*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 9280*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 9281*9880d681SAndroid Build Coastguard Worker; 9282*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test167: 9283*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 9284*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxuq %ymm1, %ymm0, %ymm0 9285*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 9286*9880d681SAndroid Build Coastguard Workerentry: 9287*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <4 x i64> %a, %b 9288*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b 9289*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 9290*9880d681SAndroid Build Coastguard Worker} 9291*9880d681SAndroid Build Coastguard Worker 9292*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test168(<4 x i64> %a, <4 x i64> %b) { 9293*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test168: 9294*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 9295*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [2147483648,2147483648,2147483648,2147483648] 9296*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 9297*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 9298*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm5 9299*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm5 9300*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm6 9301*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm6 9302*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2] 9303*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm5 9304*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3] 9305*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm4 9306*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3] 9307*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm8 9308*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 9309*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm9 9310*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm9 9311*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm6 9312*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm6 9313*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm7 9314*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm5 9315*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm5 9316*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2] 9317*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm6, %xmm7 9318*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3] 9319*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm6 9320*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3] 9321*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 9322*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 9323*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 9324*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm4 9325*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm4 9326*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm8 9327*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm9 9328*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm9 9329*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 9330*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm1 9331*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 9332*9880d681SAndroid Build Coastguard Worker; 9333*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test168: 9334*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 9335*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 9336*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 9337*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm6 9338*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm6 9339*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm5 9340*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm5 9341*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm5 9342*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm6, %xmm6 9343*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm5 9344*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm4, %xmm7 9345*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm7 9346*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm2, %xmm0 9347*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm7, %xmm0 9348*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm0 9349*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm4, %xmm2 9350*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 9351*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm3 9352*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 9353*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm3, %xmm1 9354*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 9355*9880d681SAndroid Build Coastguard Worker; 9356*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test168: 9357*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 9358*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 9359*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808] 9360*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm2, %xmm2 9361*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 9362*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm4, %xmm4 9363*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm4, %xmm2 9364*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm4, %xmm4, %xmm4 9365*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm4, %xmm2, %xmm2 9366*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm0, %xmm5 9367*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm1, %xmm3 9368*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm5, %xmm3, %xmm3 9369*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm4, %xmm3, %xmm3 9370*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 9371*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 9372*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 9373*9880d681SAndroid Build Coastguard Worker; 9374*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test168: 9375*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 9376*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2 9377*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm3 9378*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm1, %ymm2 9379*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2 9380*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3 9381*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm3, %ymm2, %ymm2 9382*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0 9383*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 9384*9880d681SAndroid Build Coastguard Worker; 9385*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test168: 9386*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 9387*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxuq %ymm1, %ymm0, %ymm0 9388*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 9389*9880d681SAndroid Build Coastguard Workerentry: 9390*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <4 x i64> %a, %b 9391*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b 9392*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 9393*9880d681SAndroid Build Coastguard Worker} 9394*9880d681SAndroid Build Coastguard Worker 9395*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test169(<4 x i64> %a, <4 x i64> %b) { 9396*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test169: 9397*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 9398*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [2147483648,0,2147483648,0] 9399*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 9400*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 9401*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 9402*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm6 9403*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm7 9404*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm7 9405*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 9406*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm6 9407*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3] 9408*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm6 9409*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm7[1,1,3,3] 9410*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm4 9411*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm6 9412*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm6 9413*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm5 9414*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm7 9415*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm7 9416*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 9417*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm6, %xmm5 9418*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[1,1,3,3] 9419*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm6 9420*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3] 9421*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 9422*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 9423*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 9424*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm5 9425*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm3 9426*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm4 9427*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm4 9428*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 9429*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 9430*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 9431*9880d681SAndroid Build Coastguard Worker; 9432*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test169: 9433*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 9434*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 9435*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm5 9436*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm1, %xmm5 9437*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm0 9438*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm4, %xmm0 9439*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm4 9440*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 9441*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm1 9442*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 9443*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 9444*9880d681SAndroid Build Coastguard Worker; 9445*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test169: 9446*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 9447*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 9448*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm3 9449*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2 9450*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm0, %xmm1, %xmm3 9451*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 9452*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9453*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 9454*9880d681SAndroid Build Coastguard Worker; 9455*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test169: 9456*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 9457*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm0, %ymm1, %ymm2 9458*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9459*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 9460*9880d681SAndroid Build Coastguard Worker; 9461*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test169: 9462*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 9463*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsq %ymm1, %ymm0, %ymm0 9464*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 9465*9880d681SAndroid Build Coastguard Workerentry: 9466*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <4 x i64> %a, %b 9467*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a 9468*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 9469*9880d681SAndroid Build Coastguard Worker} 9470*9880d681SAndroid Build Coastguard Worker 9471*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test170(<4 x i64> %a, <4 x i64> %b) { 9472*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test170: 9473*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 9474*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [2147483648,0,2147483648,0] 9475*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 9476*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 9477*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm5 9478*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm5 9479*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm6 9480*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm6 9481*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2] 9482*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm5 9483*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3] 9484*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm4 9485*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3] 9486*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm8 9487*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 9488*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm9 9489*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm9 9490*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm6 9491*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm6 9492*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm7 9493*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm5 9494*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm5 9495*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2] 9496*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm6, %xmm7 9497*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3] 9498*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm6 9499*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3] 9500*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 9501*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 9502*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 9503*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm4 9504*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm4 9505*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 9506*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm9 9507*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm9 9508*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 9509*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm1 9510*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 9511*9880d681SAndroid Build Coastguard Worker; 9512*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test170: 9513*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 9514*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 9515*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm5 9516*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm3, %xmm5 9517*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm6, %xmm6 9518*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm5 9519*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm2, %xmm0 9520*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm0 9521*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm4 9522*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 9523*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm1 9524*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 9525*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 9526*9880d681SAndroid Build Coastguard Worker; 9527*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test170: 9528*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 9529*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 9530*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 9531*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2 9532*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 9533*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm2, %xmm2 9534*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm4 9535*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm4, %xmm3 9536*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 9537*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9538*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 9539*9880d681SAndroid Build Coastguard Worker; 9540*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test170: 9541*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 9542*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm1, %ymm0, %ymm2 9543*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3 9544*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm3, %ymm2, %ymm2 9545*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9546*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 9547*9880d681SAndroid Build Coastguard Worker; 9548*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test170: 9549*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 9550*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsq %ymm1, %ymm0, %ymm0 9551*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 9552*9880d681SAndroid Build Coastguard Workerentry: 9553*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <4 x i64> %a, %b 9554*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a 9555*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 9556*9880d681SAndroid Build Coastguard Worker} 9557*9880d681SAndroid Build Coastguard Worker 9558*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test171(<4 x i64> %a, <4 x i64> %b) { 9559*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test171: 9560*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 9561*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [2147483648,0,2147483648,0] 9562*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 9563*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 9564*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm6 9565*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm6 9566*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm7 9567*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm7 9568*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 9569*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm6 9570*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3] 9571*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm6 9572*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm7[1,1,3,3] 9573*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm4 9574*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm6 9575*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm6 9576*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm5 9577*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm7 9578*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm7 9579*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 9580*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm6, %xmm5 9581*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[1,1,3,3] 9582*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm6 9583*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3] 9584*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 9585*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 9586*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 9587*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm5 9588*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm3 9589*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm4 9590*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm4 9591*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 9592*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 9593*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 9594*9880d681SAndroid Build Coastguard Worker; 9595*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test171: 9596*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 9597*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 9598*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm5 9599*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm3, %xmm5 9600*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm2, %xmm0 9601*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm4 9602*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 9603*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm1 9604*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 9605*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 9606*9880d681SAndroid Build Coastguard Worker; 9607*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test171: 9608*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 9609*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 9610*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3 9611*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2 9612*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm3 9613*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 9614*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9615*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 9616*9880d681SAndroid Build Coastguard Worker; 9617*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test171: 9618*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 9619*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm1, %ymm0, %ymm2 9620*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9621*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 9622*9880d681SAndroid Build Coastguard Worker; 9623*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test171: 9624*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 9625*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsq %ymm1, %ymm0, %ymm0 9626*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 9627*9880d681SAndroid Build Coastguard Workerentry: 9628*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <4 x i64> %a, %b 9629*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a 9630*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 9631*9880d681SAndroid Build Coastguard Worker} 9632*9880d681SAndroid Build Coastguard Worker 9633*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test172(<4 x i64> %a, <4 x i64> %b) { 9634*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test172: 9635*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 9636*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [2147483648,0,2147483648,0] 9637*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 9638*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 9639*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm5 9640*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm5 9641*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm6 9642*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm6 9643*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2] 9644*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm5 9645*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3] 9646*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm4 9647*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3] 9648*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm8 9649*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 9650*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm9 9651*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm9 9652*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm6 9653*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm6 9654*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm7 9655*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm5 9656*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm5 9657*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2] 9658*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm6, %xmm7 9659*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3] 9660*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm6 9661*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3] 9662*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 9663*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 9664*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 9665*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm4 9666*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm4 9667*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 9668*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm9 9669*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm9 9670*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 9671*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm1 9672*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 9673*9880d681SAndroid Build Coastguard Worker; 9674*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test172: 9675*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 9676*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 9677*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm5 9678*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm1, %xmm5 9679*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm0, %xmm0 9680*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm5 9681*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm6 9682*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm4, %xmm6 9683*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm0 9684*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm4 9685*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 9686*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm1 9687*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 9688*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 9689*9880d681SAndroid Build Coastguard Worker; 9690*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test172: 9691*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 9692*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 9693*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm3 9694*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm3, %xmm2 9695*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 9696*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm2, %xmm2 9697*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm0, %xmm1, %xmm4 9698*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm4, %xmm3 9699*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 9700*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9701*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 9702*9880d681SAndroid Build Coastguard Worker; 9703*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test172: 9704*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 9705*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm0, %ymm1, %ymm2 9706*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3 9707*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm3, %ymm2, %ymm2 9708*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9709*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 9710*9880d681SAndroid Build Coastguard Worker; 9711*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test172: 9712*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 9713*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsq %ymm1, %ymm0, %ymm0 9714*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 9715*9880d681SAndroid Build Coastguard Workerentry: 9716*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <4 x i64> %a, %b 9717*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a 9718*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 9719*9880d681SAndroid Build Coastguard Worker} 9720*9880d681SAndroid Build Coastguard Worker 9721*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test173(<4 x i64> %a, <4 x i64> %b) { 9722*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test173: 9723*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 9724*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [2147483648,2147483648,2147483648,2147483648] 9725*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 9726*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 9727*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm6 9728*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm6 9729*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm7 9730*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm7 9731*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 9732*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm6 9733*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3] 9734*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm6 9735*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm7[1,1,3,3] 9736*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm4 9737*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm6 9738*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm6 9739*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm5 9740*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm7 9741*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm7 9742*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 9743*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm6, %xmm5 9744*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[1,1,3,3] 9745*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm6 9746*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3] 9747*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 9748*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 9749*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 9750*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm5 9751*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm3 9752*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm4 9753*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm4 9754*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 9755*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 9756*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 9757*9880d681SAndroid Build Coastguard Worker; 9758*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test173: 9759*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 9760*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 9761*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 9762*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm6 9763*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm6 9764*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm5 9765*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm5 9766*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm5 9767*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm4, %xmm6 9768*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm6 9769*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm2, %xmm0 9770*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm0 9771*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm4 9772*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 9773*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm1 9774*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 9775*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 9776*9880d681SAndroid Build Coastguard Worker; 9777*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test173: 9778*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 9779*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 9780*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808] 9781*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm2, %xmm2 9782*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 9783*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm4, %xmm4 9784*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm4, %xmm2 9785*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm0, %xmm4 9786*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm1, %xmm3 9787*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm3, %xmm3 9788*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 9789*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9790*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 9791*9880d681SAndroid Build Coastguard Worker; 9792*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test173: 9793*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 9794*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2 9795*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm3 9796*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm1, %ymm2 9797*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2 9798*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9799*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 9800*9880d681SAndroid Build Coastguard Worker; 9801*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test173: 9802*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 9803*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxuq %ymm1, %ymm0, %ymm0 9804*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 9805*9880d681SAndroid Build Coastguard Workerentry: 9806*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <4 x i64> %a, %b 9807*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a 9808*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 9809*9880d681SAndroid Build Coastguard Worker} 9810*9880d681SAndroid Build Coastguard Worker 9811*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test174(<4 x i64> %a, <4 x i64> %b) { 9812*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test174: 9813*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 9814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [2147483648,2147483648,2147483648,2147483648] 9815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 9816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 9817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm5 9818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm5 9819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm6 9820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm6 9821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2] 9822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm5 9823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3] 9824*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm4 9825*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3] 9826*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm8 9827*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 9828*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm9 9829*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm9 9830*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm6 9831*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm6 9832*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm7 9833*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm5 9834*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm5 9835*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2] 9836*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm6, %xmm7 9837*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3] 9838*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm6 9839*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3] 9840*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 9841*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 9842*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 9843*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm4 9844*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm4 9845*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 9846*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm9 9847*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm9 9848*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 9849*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm1 9850*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 9851*9880d681SAndroid Build Coastguard Worker; 9852*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test174: 9853*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 9854*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 9855*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 9856*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm6 9857*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm6 9858*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm5 9859*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm5 9860*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm5 9861*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm6, %xmm6 9862*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm5 9863*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm7 9864*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm7 9865*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm4, %xmm0 9866*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm7, %xmm0 9867*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm0 9868*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm4 9869*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 9870*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm1 9871*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 9872*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 9873*9880d681SAndroid Build Coastguard Worker; 9874*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test174: 9875*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 9876*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 9877*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808] 9878*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm2, %xmm2 9879*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm4 9880*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm4, %xmm4 9881*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm4, %xmm2 9882*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm4, %xmm4, %xmm4 9883*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm4, %xmm2, %xmm2 9884*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm1, %xmm5 9885*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm0, %xmm3 9886*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm5, %xmm3, %xmm3 9887*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm4, %xmm3, %xmm3 9888*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 9889*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9890*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 9891*9880d681SAndroid Build Coastguard Worker; 9892*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test174: 9893*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 9894*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2 9895*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm1, %ymm3 9896*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm2 9897*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2 9898*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3 9899*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm3, %ymm2, %ymm2 9900*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9901*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 9902*9880d681SAndroid Build Coastguard Worker; 9903*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test174: 9904*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 9905*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxuq %ymm1, %ymm0, %ymm0 9906*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 9907*9880d681SAndroid Build Coastguard Workerentry: 9908*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <4 x i64> %a, %b 9909*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a 9910*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 9911*9880d681SAndroid Build Coastguard Worker} 9912*9880d681SAndroid Build Coastguard Worker 9913*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test175(<4 x i64> %a, <4 x i64> %b) { 9914*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test175: 9915*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 9916*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [2147483648,2147483648,2147483648,2147483648] 9917*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm4 9918*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 9919*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm6 9920*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm6 9921*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm6, %xmm7 9922*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm7 9923*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 9924*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm6 9925*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3] 9926*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm6 9927*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm7[1,1,3,3] 9928*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm4 9929*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm6 9930*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm6 9931*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm5 9932*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm7 9933*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm7 9934*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2] 9935*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm6, %xmm5 9936*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm5[1,1,3,3] 9937*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm6 9938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3] 9939*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 9940*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 9941*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm5 9942*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm5 9943*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm4, %xmm3 9944*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm4 9945*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm4 9946*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm0 9947*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm1 9948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 9949*9880d681SAndroid Build Coastguard Worker; 9950*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test175: 9951*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 9952*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 9953*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 9954*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm6 9955*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm6 9956*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm5 9957*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm5 9958*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm5 9959*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm6 9960*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm6 9961*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm4, %xmm0 9962*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm0 9963*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm4 9964*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 9965*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm1 9966*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 9967*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 9968*9880d681SAndroid Build Coastguard Worker; 9969*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test175: 9970*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 9971*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2 9972*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808] 9973*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm2, %xmm2 9974*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm4 9975*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm4, %xmm4 9976*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm4, %xmm2 9977*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm1, %xmm4 9978*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm0, %xmm3 9979*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm4, %xmm3, %xmm3 9980*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 9981*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9982*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 9983*9880d681SAndroid Build Coastguard Worker; 9984*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test175: 9985*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 9986*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2 9987*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm1, %ymm3 9988*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm2 9989*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2 9990*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 9991*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 9992*9880d681SAndroid Build Coastguard Worker; 9993*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test175: 9994*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 9995*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminuq %ymm1, %ymm0, %ymm0 9996*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 9997*9880d681SAndroid Build Coastguard Workerentry: 9998*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <4 x i64> %a, %b 9999*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a 10000*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 10001*9880d681SAndroid Build Coastguard Worker} 10002*9880d681SAndroid Build Coastguard Worker 10003*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test176(<4 x i64> %a, <4 x i64> %b) { 10004*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test176: 10005*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10006*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [2147483648,2147483648,2147483648,2147483648] 10007*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm4 10008*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm4 10009*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm3, %xmm5 10010*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm5 10011*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm5, %xmm6 10012*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm4, %xmm6 10013*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2] 10014*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm5 10015*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3] 10016*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm8, %xmm4 10017*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3] 10018*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm4, %xmm8 10019*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm4, %xmm4 10020*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm8, %xmm9 10021*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm4, %xmm9 10022*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm6 10023*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm7, %xmm6 10024*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm7 10025*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm7, %xmm5 10026*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm6, %xmm5 10027*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2] 10028*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm6, %xmm7 10029*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3] 10030*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm10, %xmm6 10031*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3] 10032*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm6, %xmm5 10033*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm5, %xmm4 10034*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm2, %xmm5 10035*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm4 10036*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm5, %xmm4 10037*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm3, %xmm8 10038*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm9 10039*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm8, %xmm9 10040*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm4, %xmm0 10041*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm9, %xmm1 10042*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10043*9880d681SAndroid Build Coastguard Worker; 10044*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test176: 10045*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10046*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm4 10047*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 10048*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm6 10049*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm6 10050*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm3, %xmm5 10051*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm5 10052*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm6, %xmm5 10053*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm6, %xmm6 10054*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm5 10055*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm4, %xmm7 10056*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm7 10057*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm2, %xmm0 10058*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm7, %xmm0 10059*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm6, %xmm0 10060*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm4 10061*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm5, %xmm0 10062*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm3, %xmm1 10063*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm4, %xmm0 10064*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10065*9880d681SAndroid Build Coastguard Worker; 10066*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test176: 10067*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10068*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 10069*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808] 10070*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm2, %xmm2 10071*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4 10072*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm4, %xmm4 10073*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm2, %xmm4, %xmm2 10074*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm4, %xmm4, %xmm4 10075*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm4, %xmm2, %xmm2 10076*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm0, %xmm5 10077*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vxorps %xmm3, %xmm1, %xmm3 10078*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm5, %xmm3, %xmm3 10079*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm4, %xmm3, %xmm3 10080*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2 10081*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 10082*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10083*9880d681SAndroid Build Coastguard Worker; 10084*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test176: 10085*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10086*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2 10087*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm3 10088*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm2, %ymm1, %ymm2 10089*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2 10090*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3 10091*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %ymm3, %ymm2, %ymm2 10092*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 10093*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10094*9880d681SAndroid Build Coastguard Worker; 10095*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test176: 10096*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10097*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminuq %ymm1, %ymm0, %ymm0 10098*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10099*9880d681SAndroid Build Coastguard Workerentry: 10100*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <4 x i64> %a, %b 10101*9880d681SAndroid Build Coastguard Worker %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a 10102*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %sel 10103*9880d681SAndroid Build Coastguard Worker} 10104*9880d681SAndroid Build Coastguard Worker 10105*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test177(<2 x i64> %a, <2 x i64> %b) { 10106*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test177: 10107*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10108*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0] 10109*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 10110*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10111*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm2 10112*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10113*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10114*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10115*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10116*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3] 10117*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 10118*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3] 10119*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm3 10120*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm0 10121*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 10122*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm0 10123*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10124*9880d681SAndroid Build Coastguard Worker; 10125*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test177: 10126*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10127*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10128*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm0 10129*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm2, %xmm0 10130*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm1 10131*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm1, %xmm0 10132*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10133*9880d681SAndroid Build Coastguard Worker; 10134*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test177: 10135*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10136*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm0, %xmm1, %xmm2 10137*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10138*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10139*9880d681SAndroid Build Coastguard Worker; 10140*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test177: 10141*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10142*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm0, %xmm1, %xmm2 10143*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10144*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10145*9880d681SAndroid Build Coastguard Worker; 10146*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test177: 10147*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10148*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsq %xmm1, %xmm0, %xmm0 10149*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10150*9880d681SAndroid Build Coastguard Workerentry: 10151*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <2 x i64> %a, %b 10152*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b 10153*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10154*9880d681SAndroid Build Coastguard Worker} 10155*9880d681SAndroid Build Coastguard Worker 10156*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test178(<2 x i64> %a, <2 x i64> %b) { 10157*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test178: 10158*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10159*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0] 10160*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 10161*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10162*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 10163*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10164*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10165*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10166*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10167*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3] 10168*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 10169*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3] 10170*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm3 10171*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 10172*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 10173*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm3 10174*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 10175*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 10176*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 10177*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10178*9880d681SAndroid Build Coastguard Worker; 10179*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test178: 10180*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10181*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10182*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm1, %xmm0 10183*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm3, %xmm3 10184*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm3, %xmm0 10185*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm1 10186*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm1, %xmm0 10187*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10188*9880d681SAndroid Build Coastguard Worker; 10189*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test178: 10190*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10191*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm2 10192*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10193*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm2, %xmm2 10194*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10195*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10196*9880d681SAndroid Build Coastguard Worker; 10197*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test178: 10198*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10199*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm2 10200*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10201*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm3, %xmm2, %xmm2 10202*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10203*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10204*9880d681SAndroid Build Coastguard Worker; 10205*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test178: 10206*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10207*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsq %xmm1, %xmm0, %xmm0 10208*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10209*9880d681SAndroid Build Coastguard Workerentry: 10210*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <2 x i64> %a, %b 10211*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b 10212*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10213*9880d681SAndroid Build Coastguard Worker} 10214*9880d681SAndroid Build Coastguard Worker 10215*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test179(<2 x i64> %a, <2 x i64> %b) { 10216*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test179: 10217*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10218*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0] 10219*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 10220*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10221*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 10222*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10223*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10224*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3] 10227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 10228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3] 10229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm3 10230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm0 10231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 10232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm0 10233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10234*9880d681SAndroid Build Coastguard Worker; 10235*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test179: 10236*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10237*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10238*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm1, %xmm0 10239*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm1 10240*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm1, %xmm0 10241*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10242*9880d681SAndroid Build Coastguard Worker; 10243*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test179: 10244*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10245*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm2 10246*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10247*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10248*9880d681SAndroid Build Coastguard Worker; 10249*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test179: 10250*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10251*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm2 10252*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10253*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10254*9880d681SAndroid Build Coastguard Worker; 10255*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test179: 10256*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10257*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsq %xmm1, %xmm0, %xmm0 10258*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10259*9880d681SAndroid Build Coastguard Workerentry: 10260*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <2 x i64> %a, %b 10261*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b 10262*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10263*9880d681SAndroid Build Coastguard Worker} 10264*9880d681SAndroid Build Coastguard Worker 10265*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test180(<2 x i64> %a, <2 x i64> %b) { 10266*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test180: 10267*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10268*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0] 10269*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 10270*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10271*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm2 10272*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10273*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10274*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10275*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10276*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3] 10277*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 10278*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3] 10279*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm3 10280*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 10281*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 10282*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm3 10283*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 10284*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 10285*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 10286*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10287*9880d681SAndroid Build Coastguard Worker; 10288*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test180: 10289*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10290*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10291*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm3 10292*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm2, %xmm3 10293*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm0, %xmm0 10294*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm3, %xmm0 10295*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm1 10296*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm1, %xmm0 10297*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10298*9880d681SAndroid Build Coastguard Worker; 10299*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test180: 10300*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10301*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm0, %xmm1, %xmm2 10302*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10303*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm2, %xmm2 10304*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10305*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10306*9880d681SAndroid Build Coastguard Worker; 10307*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test180: 10308*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10309*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm0, %xmm1, %xmm2 10310*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10311*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm3, %xmm2, %xmm2 10312*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10313*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10314*9880d681SAndroid Build Coastguard Worker; 10315*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test180: 10316*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10317*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsq %xmm1, %xmm0, %xmm0 10318*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10319*9880d681SAndroid Build Coastguard Workerentry: 10320*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <2 x i64> %a, %b 10321*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b 10322*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10323*9880d681SAndroid Build Coastguard Worker} 10324*9880d681SAndroid Build Coastguard Worker 10325*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test181(<2 x i64> %a, <2 x i64> %b) { 10326*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test181: 10327*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10328*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648] 10329*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 10330*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10331*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm2 10332*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10333*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10334*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10335*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10336*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3] 10337*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 10338*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3] 10339*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm3 10340*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm0 10341*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 10342*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm0 10343*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10344*9880d681SAndroid Build Coastguard Worker; 10345*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test181: 10346*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10347*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10348*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 10349*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm3 10350*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm3 10351*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm1, %xmm0 10352*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm3, %xmm0 10353*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm1 10354*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm1, %xmm0 10355*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10356*9880d681SAndroid Build Coastguard Worker; 10357*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test181: 10358*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10359*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10360*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm0, %xmm3 10361*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm1, %xmm2 10362*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10363*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10364*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10365*9880d681SAndroid Build Coastguard Worker; 10366*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test181: 10367*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10368*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10369*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm0, %xmm3 10370*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm1, %xmm2 10371*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10372*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10373*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10374*9880d681SAndroid Build Coastguard Worker; 10375*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test181: 10376*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10377*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminuq %xmm1, %xmm0, %xmm0 10378*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10379*9880d681SAndroid Build Coastguard Workerentry: 10380*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <2 x i64> %a, %b 10381*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b 10382*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10383*9880d681SAndroid Build Coastguard Worker} 10384*9880d681SAndroid Build Coastguard Worker 10385*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test182(<2 x i64> %a, <2 x i64> %b) { 10386*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test182: 10387*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10388*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648] 10389*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 10390*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10391*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 10392*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10393*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10394*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10395*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10396*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3] 10397*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 10398*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3] 10399*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm3 10400*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 10401*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 10402*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm3 10403*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 10404*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 10405*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 10406*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10407*9880d681SAndroid Build Coastguard Worker; 10408*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test182: 10409*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10410*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10411*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808] 10412*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm0 10413*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm3, %xmm0 10414*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm2, %xmm3 10415*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm0, %xmm3 10416*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm0, %xmm0 10417*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm3, %xmm0 10418*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm1 10419*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm1, %xmm0 10420*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10421*9880d681SAndroid Build Coastguard Worker; 10422*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test182: 10423*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10424*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10425*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm1, %xmm3 10426*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm0, %xmm2 10427*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10428*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10429*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm2, %xmm2 10430*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10431*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10432*9880d681SAndroid Build Coastguard Worker; 10433*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test182: 10434*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10435*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10436*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm1, %xmm3 10437*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm0, %xmm2 10438*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10439*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10440*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm3, %xmm2, %xmm2 10441*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10442*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10443*9880d681SAndroid Build Coastguard Worker; 10444*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test182: 10445*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10446*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminuq %xmm1, %xmm0, %xmm0 10447*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10448*9880d681SAndroid Build Coastguard Workerentry: 10449*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <2 x i64> %a, %b 10450*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b 10451*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10452*9880d681SAndroid Build Coastguard Worker} 10453*9880d681SAndroid Build Coastguard Worker 10454*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test183(<2 x i64> %a, <2 x i64> %b) { 10455*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test183: 10456*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10457*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648] 10458*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 10459*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10460*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 10461*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10462*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10463*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10464*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10465*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3] 10466*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 10467*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3] 10468*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm3 10469*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm3, %xmm0 10470*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 10471*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm0 10472*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10473*9880d681SAndroid Build Coastguard Worker; 10474*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test183: 10475*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10476*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10477*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 10478*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm3 10479*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm3 10480*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm2, %xmm0 10481*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm3, %xmm0 10482*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm1 10483*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm1, %xmm0 10484*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10485*9880d681SAndroid Build Coastguard Worker; 10486*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test183: 10487*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10488*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10489*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm1, %xmm3 10490*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm0, %xmm2 10491*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10492*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10493*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10494*9880d681SAndroid Build Coastguard Worker; 10495*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test183: 10496*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10497*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10498*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm1, %xmm3 10499*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm0, %xmm2 10500*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10501*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10502*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10503*9880d681SAndroid Build Coastguard Worker; 10504*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test183: 10505*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10506*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxuq %xmm1, %xmm0, %xmm0 10507*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10508*9880d681SAndroid Build Coastguard Workerentry: 10509*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <2 x i64> %a, %b 10510*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b 10511*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10512*9880d681SAndroid Build Coastguard Worker} 10513*9880d681SAndroid Build Coastguard Worker 10514*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test184(<2 x i64> %a, <2 x i64> %b) { 10515*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test184: 10516*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10517*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648] 10518*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 10519*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10520*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm2 10521*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10522*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10523*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10524*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10525*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3] 10526*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 10527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3] 10528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm3 10529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 10530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 10531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm3 10532*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm2 10533*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 10534*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 10535*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10536*9880d681SAndroid Build Coastguard Worker; 10537*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test184: 10538*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10539*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10540*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808] 10541*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm3, %xmm0 10542*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm1, %xmm3 10543*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm0, %xmm3 10544*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm0, %xmm0 10545*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm3, %xmm0 10546*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm2, %xmm1 10547*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm1, %xmm0 10548*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10549*9880d681SAndroid Build Coastguard Worker; 10550*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test184: 10551*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10552*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10553*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm0, %xmm3 10554*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm1, %xmm2 10555*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10556*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10557*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm2, %xmm2 10558*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10559*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10560*9880d681SAndroid Build Coastguard Worker; 10561*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test184: 10562*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10563*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10564*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm0, %xmm3 10565*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm1, %xmm2 10566*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10567*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10568*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm3, %xmm2, %xmm2 10569*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0 10570*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10571*9880d681SAndroid Build Coastguard Worker; 10572*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test184: 10573*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10574*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxuq %xmm1, %xmm0, %xmm0 10575*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10576*9880d681SAndroid Build Coastguard Workerentry: 10577*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <2 x i64> %a, %b 10578*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b 10579*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10580*9880d681SAndroid Build Coastguard Worker} 10581*9880d681SAndroid Build Coastguard Worker 10582*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test185(<2 x i64> %a, <2 x i64> %b) { 10583*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test185: 10584*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10585*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0] 10586*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 10587*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10588*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm2 10589*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10590*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10591*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10592*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10593*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm2[1,1,3,3] 10594*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm3 10595*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3] 10596*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 10597*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 10598*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 10599*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 10600*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 10601*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10602*9880d681SAndroid Build Coastguard Worker; 10603*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test185: 10604*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10605*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10606*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm0 10607*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm2, %xmm0 10608*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm2 10609*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 10610*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10611*9880d681SAndroid Build Coastguard Worker; 10612*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test185: 10613*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10614*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm0, %xmm1, %xmm2 10615*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10616*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10617*9880d681SAndroid Build Coastguard Worker; 10618*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test185: 10619*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10620*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm0, %xmm1, %xmm2 10621*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10622*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10623*9880d681SAndroid Build Coastguard Worker; 10624*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test185: 10625*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10626*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsq %xmm1, %xmm0, %xmm0 10627*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10628*9880d681SAndroid Build Coastguard Workerentry: 10629*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt <2 x i64> %a, %b 10630*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a 10631*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10632*9880d681SAndroid Build Coastguard Worker} 10633*9880d681SAndroid Build Coastguard Worker 10634*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test186(<2 x i64> %a, <2 x i64> %b) { 10635*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test186: 10636*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10637*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0] 10638*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 10639*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10640*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 10641*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10642*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10643*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10644*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10645*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3] 10646*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 10647*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3] 10648*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm3 10649*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 10650*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 10651*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 10652*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 10653*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 10654*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 10655*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10656*9880d681SAndroid Build Coastguard Worker; 10657*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test186: 10658*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10659*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10660*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm1, %xmm0 10661*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm3, %xmm3 10662*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm3, %xmm0 10663*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm2 10664*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 10665*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10666*9880d681SAndroid Build Coastguard Worker; 10667*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test186: 10668*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10669*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm2 10670*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10671*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm2, %xmm2 10672*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10673*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10674*9880d681SAndroid Build Coastguard Worker; 10675*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test186: 10676*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10677*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm2 10678*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10679*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm3, %xmm2, %xmm2 10680*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10681*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10682*9880d681SAndroid Build Coastguard Worker; 10683*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test186: 10684*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10685*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxsq %xmm1, %xmm0, %xmm0 10686*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10687*9880d681SAndroid Build Coastguard Workerentry: 10688*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle <2 x i64> %a, %b 10689*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a 10690*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10691*9880d681SAndroid Build Coastguard Worker} 10692*9880d681SAndroid Build Coastguard Worker 10693*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test187(<2 x i64> %a, <2 x i64> %b) { 10694*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test187: 10695*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10696*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0] 10697*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 10698*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10699*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 10700*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10701*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10702*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10703*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10704*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm2[1,1,3,3] 10705*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm3 10706*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3] 10707*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 10708*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 10709*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 10710*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 10711*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 10712*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10713*9880d681SAndroid Build Coastguard Worker; 10714*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test187: 10715*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10716*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10717*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm1, %xmm0 10718*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm2 10719*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 10720*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10721*9880d681SAndroid Build Coastguard Worker; 10722*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test187: 10723*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10724*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm2 10725*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10726*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10727*9880d681SAndroid Build Coastguard Worker; 10728*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test187: 10729*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10730*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm2 10731*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10732*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10733*9880d681SAndroid Build Coastguard Worker; 10734*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test187: 10735*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10736*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsq %xmm1, %xmm0, %xmm0 10737*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10738*9880d681SAndroid Build Coastguard Workerentry: 10739*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <2 x i64> %a, %b 10740*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a 10741*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10742*9880d681SAndroid Build Coastguard Worker} 10743*9880d681SAndroid Build Coastguard Worker 10744*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test188(<2 x i64> %a, <2 x i64> %b) { 10745*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test188: 10746*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10747*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0] 10748*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 10749*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10750*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm2 10751*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10752*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10753*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10754*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10755*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3] 10756*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 10757*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3] 10758*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm3 10759*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 10760*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 10761*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 10762*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 10763*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 10764*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 10765*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10766*9880d681SAndroid Build Coastguard Worker; 10767*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test188: 10768*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10769*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10770*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm3 10771*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm2, %xmm3 10772*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm0, %xmm0 10773*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm3, %xmm0 10774*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm2 10775*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 10776*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10777*9880d681SAndroid Build Coastguard Worker; 10778*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test188: 10779*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10780*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm0, %xmm1, %xmm2 10781*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10782*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm2, %xmm2 10783*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10784*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10785*9880d681SAndroid Build Coastguard Worker; 10786*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test188: 10787*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10788*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm0, %xmm1, %xmm2 10789*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10790*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm3, %xmm2, %xmm2 10791*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10792*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10793*9880d681SAndroid Build Coastguard Worker; 10794*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test188: 10795*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10796*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminsq %xmm1, %xmm0, %xmm0 10797*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10798*9880d681SAndroid Build Coastguard Workerentry: 10799*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge <2 x i64> %a, %b 10800*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a 10801*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10802*9880d681SAndroid Build Coastguard Worker} 10803*9880d681SAndroid Build Coastguard Worker 10804*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test189(<2 x i64> %a, <2 x i64> %b) { 10805*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test189: 10806*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10807*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648] 10808*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 10809*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10810*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm2 10811*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10812*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10813*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm2[1,1,3,3] 10816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm3 10817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3] 10818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 10819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 10820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 10821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 10822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 10823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10824*9880d681SAndroid Build Coastguard Worker; 10825*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test189: 10826*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10827*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10828*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 10829*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm2, %xmm3 10830*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm3 10831*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm1, %xmm0 10832*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm3, %xmm0 10833*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm2 10834*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 10835*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10836*9880d681SAndroid Build Coastguard Worker; 10837*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test189: 10838*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10839*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10840*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm0, %xmm3 10841*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm1, %xmm2 10842*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10843*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10844*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10845*9880d681SAndroid Build Coastguard Worker; 10846*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test189: 10847*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10848*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10849*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm0, %xmm3 10850*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm1, %xmm2 10851*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10852*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10853*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10854*9880d681SAndroid Build Coastguard Worker; 10855*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test189: 10856*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10857*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxuq %xmm1, %xmm0, %xmm0 10858*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10859*9880d681SAndroid Build Coastguard Workerentry: 10860*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult <2 x i64> %a, %b 10861*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a 10862*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10863*9880d681SAndroid Build Coastguard Worker} 10864*9880d681SAndroid Build Coastguard Worker 10865*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test190(<2 x i64> %a, <2 x i64> %b) { 10866*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test190: 10867*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10868*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648] 10869*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 10870*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10871*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 10872*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10876*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3] 10877*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 10878*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3] 10879*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm3 10880*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 10881*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 10882*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 10883*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 10884*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 10885*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 10886*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10887*9880d681SAndroid Build Coastguard Worker; 10888*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test190: 10889*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10890*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10891*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808] 10892*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm0 10893*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm3, %xmm0 10894*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm2, %xmm3 10895*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm0, %xmm3 10896*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm0, %xmm0 10897*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm3, %xmm0 10898*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm2 10899*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 10900*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10901*9880d681SAndroid Build Coastguard Worker; 10902*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test190: 10903*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10904*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10905*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm1, %xmm3 10906*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm0, %xmm2 10907*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10908*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10909*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm2, %xmm2 10910*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10911*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10912*9880d681SAndroid Build Coastguard Worker; 10913*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test190: 10914*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10915*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10916*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm1, %xmm3 10917*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm0, %xmm2 10918*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10919*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 10920*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm3, %xmm2, %xmm2 10921*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10922*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10923*9880d681SAndroid Build Coastguard Worker; 10924*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test190: 10925*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10926*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpmaxuq %xmm1, %xmm0, %xmm0 10927*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10928*9880d681SAndroid Build Coastguard Workerentry: 10929*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule <2 x i64> %a, %b 10930*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a 10931*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10932*9880d681SAndroid Build Coastguard Worker} 10933*9880d681SAndroid Build Coastguard Worker 10934*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test191(<2 x i64> %a, <2 x i64> %b) { 10935*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test191: 10936*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10937*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648] 10938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm1, %xmm3 10939*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 10940*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm0, %xmm2 10941*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 10942*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 10943*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 10944*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 10945*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm2[1,1,3,3] 10946*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm3 10947*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3] 10948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 10949*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm2, %xmm1 10950*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 10951*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm1, %xmm2 10952*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 10953*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 10954*9880d681SAndroid Build Coastguard Worker; 10955*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test191: 10956*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 10957*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 10958*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808] 10959*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm1, %xmm3 10960*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm0, %xmm3 10961*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm2, %xmm0 10962*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm3, %xmm0 10963*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm2 10964*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 10965*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 10966*9880d681SAndroid Build Coastguard Worker; 10967*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test191: 10968*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 10969*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10970*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm1, %xmm3 10971*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm0, %xmm2 10972*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10973*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10974*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 10975*9880d681SAndroid Build Coastguard Worker; 10976*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test191: 10977*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 10978*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 10979*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm1, %xmm3 10980*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm0, %xmm2 10981*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 10982*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 10983*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 10984*9880d681SAndroid Build Coastguard Worker; 10985*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test191: 10986*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 10987*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminuq %xmm1, %xmm0, %xmm0 10988*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 10989*9880d681SAndroid Build Coastguard Workerentry: 10990*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <2 x i64> %a, %b 10991*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a 10992*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 10993*9880d681SAndroid Build Coastguard Worker} 10994*9880d681SAndroid Build Coastguard Worker 10995*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test192(<2 x i64> %a, <2 x i64> %b) { 10996*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test192: 10997*9880d681SAndroid Build Coastguard Worker; SSE2: # BB#0: # %entry 10998*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648] 10999*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm0, %xmm3 11000*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm2, %xmm3 11001*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm1, %xmm2 11002*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm4 11003*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpgtd %xmm3, %xmm4 11004*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2] 11005*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm3, %xmm2 11006*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3] 11007*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pand %xmm5, %xmm2 11008*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3] 11009*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm2, %xmm3 11010*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 11011*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pxor %xmm3, %xmm2 11012*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm1, %xmm3 11013*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: pandn %xmm0, %xmm2 11014*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: por %xmm3, %xmm2 11015*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: movdqa %xmm2, %xmm0 11016*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT: retq 11017*9880d681SAndroid Build Coastguard Worker; 11018*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test192: 11019*9880d681SAndroid Build Coastguard Worker; SSE4: # BB#0: # %entry 11020*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa %xmm0, %xmm2 11021*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808] 11022*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm3, %xmm0 11023*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm1, %xmm3 11024*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpgtq %xmm0, %xmm3 11025*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pcmpeqd %xmm0, %xmm0 11026*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: pxor %xmm3, %xmm0 11027*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: blendvpd %xmm1, %xmm2 11028*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: movapd %xmm2, %xmm0 11029*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT: retq 11030*9880d681SAndroid Build Coastguard Worker; 11031*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test192: 11032*9880d681SAndroid Build Coastguard Worker; AVX1: # BB#0: # %entry 11033*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 11034*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm0, %xmm3 11035*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm2, %xmm1, %xmm2 11036*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 11037*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 11038*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vpxor %xmm3, %xmm2, %xmm2 11039*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 11040*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT: retq 11041*9880d681SAndroid Build Coastguard Worker; 11042*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test192: 11043*9880d681SAndroid Build Coastguard Worker; AVX2: # BB#0: # %entry 11044*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808] 11045*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm0, %xmm3 11046*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm2, %xmm1, %xmm2 11047*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2 11048*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3 11049*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vpxor %xmm3, %xmm2, %xmm2 11050*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 11051*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT: retq 11052*9880d681SAndroid Build Coastguard Worker; 11053*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test192: 11054*9880d681SAndroid Build Coastguard Worker; AVX512BW: # BB#0: # %entry 11055*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: vpminuq %xmm1, %xmm0, %xmm0 11056*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT: retq 11057*9880d681SAndroid Build Coastguard Workerentry: 11058*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge <2 x i64> %a, %b 11059*9880d681SAndroid Build Coastguard Worker %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a 11060*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %sel 11061*9880d681SAndroid Build Coastguard Worker} 11062