|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
2 |
| -; RUN: llc < %s -mtriple=x86_64-linux -opaque-pointers -mcpu=ivybridge -mattr=+avx2 | FileCheck %s --check-prefixes=IVB |
3 |
| -; RUN: llc < %s -mtriple=x86_64-linux -opaque-pointers -mcpu=haswell | FileCheck %s --check-prefixes=HSW |
| 2 | +; RUN: llc < %s -mtriple=x86_64-linux -opaque-pointers -mcpu=ivybridge -mattr=+avx2 | FileCheck %s |
| 3 | +; RUN: llc < %s -mtriple=x86_64-linux -opaque-pointers -mcpu=haswell | FileCheck %s |
4 | 4 |
|
5 | 5 | define <2 x i64> @PR55158(ptr %0) {
|
6 |
| -; IVB-LABEL: PR55158: |
7 |
| -; IVB: # %bb.0: |
8 |
| -; IVB-NEXT: vmovdqa 64(%rdi), %xmm0 |
9 |
| -; IVB-NEXT: vmovdqa 128(%rdi), %xmm1 |
10 |
| -; IVB-NEXT: vpmovsxbd (%rdi), %xmm2 |
11 |
| -; IVB-NEXT: vpcmpgtd %xmm2, %xmm1, %xmm1 |
12 |
| -; IVB-NEXT: vphsubw %xmm0, %xmm0, %xmm0 |
13 |
| -; IVB-NEXT: vpmovzxdq {{.*#+}} xmm1 = xmm1[0],zero,xmm1[1],zero |
14 |
| -; IVB-NEXT: vpxor %xmm2, %xmm2, %xmm2 |
15 |
| -; IVB-NEXT: vpsrlvq %xmm1, %xmm2, %xmm1 |
16 |
| -; IVB-NEXT: vpunpckhqdq {{.*#+}} xmm0 = xmm1[1],xmm0[1] |
17 |
| -; IVB-NEXT: retq |
18 |
| -; |
19 |
| -; HSW-LABEL: PR55158: |
20 |
| -; HSW: # %bb.0: |
21 |
| -; HSW-NEXT: vmovdqa 64(%rdi), %xmm0 |
22 |
| -; HSW-NEXT: vmovdqa 128(%rdi), %xmm1 |
23 |
| -; HSW-NEXT: vpmovsxbd (%rdi), %xmm2 |
24 |
| -; HSW-NEXT: vpcmpgtd %xmm2, %xmm1, %xmm1 |
25 |
| -; HSW-NEXT: vphsubw %xmm0, %xmm0, %xmm0 |
26 |
| -; HSW-NEXT: vpmovzxdq {{.*#+}} xmm1 = xmm1[0],zero,xmm1[1],zero |
27 |
| -; HSW-NEXT: vpandn {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm2 |
28 |
| -; HSW-NEXT: vpsrlvq %xmm1, %xmm2, %xmm1 |
29 |
| -; HSW-NEXT: vpunpckhqdq {{.*#+}} xmm0 = xmm1[1],xmm0[1] |
30 |
| -; HSW-NEXT: retq |
| 6 | +; CHECK-LABEL: PR55158: |
| 7 | +; CHECK: # %bb.0: |
| 8 | +; CHECK-NEXT: vmovdqa 64(%rdi), %xmm0 |
| 9 | +; CHECK-NEXT: vmovdqa 128(%rdi), %xmm1 |
| 10 | +; CHECK-NEXT: vpmovsxbd (%rdi), %xmm2 |
| 11 | +; CHECK-NEXT: vpcmpgtd %xmm2, %xmm1, %xmm1 |
| 12 | +; CHECK-NEXT: vphsubw %xmm0, %xmm0, %xmm0 |
| 13 | +; CHECK-NEXT: vpmovzxdq {{.*#+}} xmm1 = xmm1[0],zero,xmm1[1],zero |
| 14 | +; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 |
| 15 | +; CHECK-NEXT: vpsrlvq %xmm1, %xmm2, %xmm1 |
| 16 | +; CHECK-NEXT: vpunpckhqdq {{.*#+}} xmm0 = xmm1[1],xmm0[1] |
| 17 | +; CHECK-NEXT: retq |
31 | 18 | %2 = load <16 x i8>, ptr %0, align 16
|
32 | 19 | %3 = getelementptr inbounds i32, ptr %0, i64 16
|
33 | 20 | %4 = load <8 x i16>, ptr %3, align 16
|
|
0 commit comments