brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 11e9a05 Raw
42 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -o - -mtriple=x86_64-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefix=SSE3; RUN: llc < %s -o - -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefix=AVX4 5define <8 x i16> @foo(<8 x i16> %a, <8 x i16> %b) {6; SSE-LABEL: foo:7; SSE:       # %bb.0:8; SSE-NEXT:    pcmpeqw %xmm1, %xmm09; SSE-NEXT:    pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm010; SSE-NEXT:    retq11;12; AVX-LABEL: foo:13; AVX:       # %bb.0:14; AVX-NEXT:    vpcmpeqw %xmm1, %xmm0, %xmm015; AVX-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm016; AVX-NEXT:    retq17  %icmp = icmp eq <8 x i16> %a, %b18  %zext = zext <8 x i1> %icmp to <8 x i16>19  %shl = shl nuw nsw <8 x i16> %zext, <i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5>20  ret <8 x i16> %shl21}22 23; Don't fail with an assert due to an undef in the buildvector24define <8 x i16> @bar(<8 x i16> %a, <8 x i16> %b) {25; SSE-LABEL: bar:26; SSE:       # %bb.0:27; SSE-NEXT:    pcmpeqw %xmm1, %xmm028; SSE-NEXT:    pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm029; SSE-NEXT:    retq30;31; AVX-LABEL: bar:32; AVX:       # %bb.0:33; AVX-NEXT:    vpcmpeqw %xmm1, %xmm0, %xmm034; AVX-NEXT:    vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm035; AVX-NEXT:    retq36  %icmp = icmp eq <8 x i16> %a, %b37  %zext = zext <8 x i1> %icmp to <8 x i16>38  %shl = shl nuw nsw <8 x i16> %zext, <i16 5, i16 undef, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5>39  ret <8 x i16> %shl40}41 42