brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · cec093c Raw
81 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 32; RUN: llc < %s -mtriple=x86_64-- -mcpu=x86-64    | FileCheck %s --check-prefixes=SSE23; RUN: llc < %s -mtriple=x86_64-- -mcpu=x86-64-v2 | FileCheck %s --check-prefixes=SSE424; RUN: llc < %s -mtriple=x86_64-- -mcpu=x86-64-v3 | FileCheck %s --check-prefixes=AVX25; RUN: llc < %s -mtriple=x86_64-- -mcpu=x86-64-v4 | FileCheck %s --check-prefixes=AVX5126 7define <32 x i8> @PR162812(<32 x i8> %a, <32 x i8> %mask) {8; SSE2-LABEL: PR162812:9; SSE2:       # %bb.0:10; SSE2-NEXT:    psrlw $2, %xmm211; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [8224,8224,8224,8224,8224,8224,8224,8224]12; SSE2-NEXT:    pand %xmm4, %xmm213; SSE2-NEXT:    paddb %xmm2, %xmm214; SSE2-NEXT:    paddb %xmm2, %xmm215; SSE2-NEXT:    pxor %xmm5, %xmm516; SSE2-NEXT:    pxor %xmm6, %xmm617; SSE2-NEXT:    pcmpgtb %xmm2, %xmm618; SSE2-NEXT:    movdqa %xmm6, %xmm219; SSE2-NEXT:    pandn %xmm0, %xmm220; SSE2-NEXT:    paddb %xmm0, %xmm021; SSE2-NEXT:    pand %xmm6, %xmm022; SSE2-NEXT:    por %xmm2, %xmm023; SSE2-NEXT:    psrlw $2, %xmm324; SSE2-NEXT:    pand %xmm4, %xmm325; SSE2-NEXT:    paddb %xmm3, %xmm326; SSE2-NEXT:    paddb %xmm3, %xmm327; SSE2-NEXT:    pcmpgtb %xmm3, %xmm528; SSE2-NEXT:    movdqa %xmm5, %xmm229; SSE2-NEXT:    pandn %xmm1, %xmm230; SSE2-NEXT:    paddb %xmm1, %xmm131; SSE2-NEXT:    pand %xmm5, %xmm132; SSE2-NEXT:    por %xmm2, %xmm133; SSE2-NEXT:    retq34;35; SSE42-LABEL: PR162812:36; SSE42:       # %bb.0:37; SSE42-NEXT:    movdqa %xmm0, %xmm438; SSE42-NEXT:    psrlw $2, %xmm239; SSE42-NEXT:    movdqa {{.*#+}} xmm5 = [8224,8224,8224,8224,8224,8224,8224,8224]40; SSE42-NEXT:    pand %xmm5, %xmm241; SSE42-NEXT:    paddb %xmm2, %xmm242; SSE42-NEXT:    paddb %xmm2, %xmm243; SSE42-NEXT:    movdqa %xmm0, %xmm644; SSE42-NEXT:    paddb %xmm0, %xmm645; SSE42-NEXT:    movdqa %xmm2, %xmm046; SSE42-NEXT:    pblendvb %xmm0, %xmm6, %xmm447; SSE42-NEXT:    psrlw $2, %xmm348; SSE42-NEXT:    pand %xmm3, %xmm549; SSE42-NEXT:    paddb %xmm5, %xmm550; SSE42-NEXT:    paddb %xmm5, %xmm551; SSE42-NEXT:    movdqa %xmm1, %xmm252; SSE42-NEXT:    paddb %xmm1, %xmm253; SSE42-NEXT:    movdqa %xmm5, %xmm054; SSE42-NEXT:    pblendvb %xmm0, %xmm2, %xmm155; SSE42-NEXT:    movdqa %xmm4, %xmm056; SSE42-NEXT:    retq57;58; AVX2-LABEL: PR162812:59; AVX2:       # %bb.0:60; AVX2-NEXT:    vpaddb %ymm0, %ymm0, %ymm261; AVX2-NEXT:    vpsrlw $2, %ymm1, %ymm162; AVX2-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm163; AVX2-NEXT:    vpaddb %ymm1, %ymm1, %ymm164; AVX2-NEXT:    vpaddb %ymm1, %ymm1, %ymm165; AVX2-NEXT:    vpblendvb %ymm1, %ymm2, %ymm0, %ymm066; AVX2-NEXT:    retq67;68; AVX512-LABEL: PR162812:69; AVX512:       # %bb.0:70; AVX512-NEXT:    vpaddb %ymm0, %ymm0, %ymm271; AVX512-NEXT:    vpsrlw $2, %ymm1, %ymm172; AVX512-NEXT:    vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, %ymm173; AVX512-NEXT:    vpaddb %ymm1, %ymm1, %ymm174; AVX512-NEXT:    vpaddb %ymm1, %ymm1, %ymm175; AVX512-NEXT:    vpblendvb %ymm1, %ymm2, %ymm0, %ymm076; AVX512-NEXT:    retq77  %1 = lshr <32 x i8> %mask, splat (i8 7)78  %ret = shl <32 x i8> %a, %179  ret <32 x i8> %ret80}81