|
7 | 7 | define void @pr166534(ptr %pa, ptr %pb, ptr %pc, ptr %pd) { |
8 | 8 | ; SSE2-LABEL: pr166534: |
9 | 9 | ; SSE2: # %bb.0: # %entry |
10 | | -; SSE2-NEXT: movq (%rdi), %rax |
11 | | -; SSE2-NEXT: movq 8(%rdi), %r8 |
12 | 10 | ; SSE2-NEXT: movdqu (%rdi), %xmm0 |
13 | | -; SSE2-NEXT: movq (%rsi), %r9 |
14 | | -; SSE2-NEXT: movq 8(%rsi), %rdi |
15 | 11 | ; SSE2-NEXT: movdqu (%rsi), %xmm1 |
16 | 12 | ; SSE2-NEXT: pcmpeqb %xmm0, %xmm1 |
17 | 13 | ; SSE2-NEXT: pmovmskb %xmm1, %esi |
18 | | -; SSE2-NEXT: xorl %r10d, %r10d |
| 14 | +; SSE2-NEXT: xorl %eax, %eax |
19 | 15 | ; SSE2-NEXT: cmpl $65535, %esi # imm = 0xFFFF |
20 | | -; SSE2-NEXT: sete %r10b |
21 | | -; SSE2-NEXT: orq %r10, (%rdx) |
| 16 | +; SSE2-NEXT: sete %al |
| 17 | +; SSE2-NEXT: orq %rax, (%rdx) |
22 | 18 | ; SSE2-NEXT: cmpl $65535, %esi # imm = 0xFFFF |
23 | 19 | ; SSE2-NEXT: jne .LBB0_2 |
24 | 20 | ; SSE2-NEXT: # %bb.1: # %if.then |
25 | | -; SSE2-NEXT: xorq %r9, %rax |
26 | | -; SSE2-NEXT: xorq %rdi, %r8 |
27 | | -; SSE2-NEXT: xorl %edx, %edx |
28 | | -; SSE2-NEXT: orq %rax, %r8 |
29 | | -; SSE2-NEXT: sete %dl |
30 | | -; SSE2-NEXT: orq %rdx, (%rcx) |
| 21 | +; SSE2-NEXT: orq %rax, (%rcx) |
31 | 22 | ; SSE2-NEXT: .LBB0_2: # %if.end |
32 | 23 | ; SSE2-NEXT: retq |
33 | 24 | ; |
34 | 25 | ; SSE4-LABEL: pr166534: |
35 | 26 | ; SSE4: # %bb.0: # %entry |
36 | | -; SSE4-NEXT: movq (%rdi), %rax |
37 | | -; SSE4-NEXT: movq 8(%rdi), %r8 |
38 | 27 | ; SSE4-NEXT: movdqu (%rdi), %xmm0 |
39 | | -; SSE4-NEXT: movq (%rsi), %r9 |
40 | | -; SSE4-NEXT: movq 8(%rsi), %rdi |
41 | 28 | ; SSE4-NEXT: movdqu (%rsi), %xmm1 |
42 | 29 | ; SSE4-NEXT: pxor %xmm0, %xmm1 |
43 | | -; SSE4-NEXT: xorl %esi, %esi |
| 30 | +; SSE4-NEXT: xorl %eax, %eax |
44 | 31 | ; SSE4-NEXT: ptest %xmm1, %xmm1 |
45 | | -; SSE4-NEXT: sete %sil |
46 | | -; SSE4-NEXT: orq %rsi, (%rdx) |
| 32 | +; SSE4-NEXT: sete %al |
| 33 | +; SSE4-NEXT: orq %rax, (%rdx) |
47 | 34 | ; SSE4-NEXT: ptest %xmm1, %xmm1 |
48 | 35 | ; SSE4-NEXT: jne .LBB0_2 |
49 | 36 | ; SSE4-NEXT: # %bb.1: # %if.then |
50 | | -; SSE4-NEXT: xorq %r9, %rax |
51 | | -; SSE4-NEXT: xorq %rdi, %r8 |
52 | | -; SSE4-NEXT: xorl %edx, %edx |
53 | | -; SSE4-NEXT: orq %rax, %r8 |
54 | | -; SSE4-NEXT: sete %dl |
55 | | -; SSE4-NEXT: orq %rdx, (%rcx) |
| 37 | +; SSE4-NEXT: orq %rax, (%rcx) |
56 | 38 | ; SSE4-NEXT: .LBB0_2: # %if.end |
57 | 39 | ; SSE4-NEXT: retq |
58 | 40 | ; |
59 | 41 | ; AVX2-LABEL: pr166534: |
60 | 42 | ; AVX2: # %bb.0: # %entry |
61 | | -; AVX2-NEXT: movq (%rdi), %rax |
62 | | -; AVX2-NEXT: movq 8(%rdi), %r8 |
63 | 43 | ; AVX2-NEXT: vmovdqu (%rdi), %xmm0 |
64 | | -; AVX2-NEXT: movq (%rsi), %rdi |
65 | 44 | ; AVX2-NEXT: vpxor (%rsi), %xmm0, %xmm0 |
66 | | -; AVX2-NEXT: movq 8(%rsi), %rsi |
67 | | -; AVX2-NEXT: xorl %r9d, %r9d |
| 45 | +; AVX2-NEXT: xorl %eax, %eax |
68 | 46 | ; AVX2-NEXT: vptest %xmm0, %xmm0 |
69 | | -; AVX2-NEXT: sete %r9b |
70 | | -; AVX2-NEXT: orq %r9, (%rdx) |
| 47 | +; AVX2-NEXT: sete %al |
| 48 | +; AVX2-NEXT: orq %rax, (%rdx) |
71 | 49 | ; AVX2-NEXT: vptest %xmm0, %xmm0 |
72 | 50 | ; AVX2-NEXT: jne .LBB0_2 |
73 | 51 | ; AVX2-NEXT: # %bb.1: # %if.then |
74 | | -; AVX2-NEXT: xorq %rdi, %rax |
75 | | -; AVX2-NEXT: xorq %rsi, %r8 |
76 | | -; AVX2-NEXT: xorl %edx, %edx |
77 | | -; AVX2-NEXT: orq %rax, %r8 |
78 | | -; AVX2-NEXT: sete %dl |
79 | | -; AVX2-NEXT: orq %rdx, (%rcx) |
| 52 | +; AVX2-NEXT: orq %rax, (%rcx) |
80 | 53 | ; AVX2-NEXT: .LBB0_2: # %if.end |
81 | 54 | ; AVX2-NEXT: retq |
82 | 55 | ; |
83 | 56 | ; AVX512-LABEL: pr166534: |
84 | 57 | ; AVX512: # %bb.0: # %entry |
85 | | -; AVX512-NEXT: movq (%rdi), %rax |
86 | | -; AVX512-NEXT: movq 8(%rdi), %r8 |
87 | 58 | ; AVX512-NEXT: vmovdqu (%rdi), %xmm0 |
88 | | -; AVX512-NEXT: movq (%rsi), %r9 |
89 | | -; AVX512-NEXT: movq 8(%rsi), %rdi |
90 | 59 | ; AVX512-NEXT: vpxor (%rsi), %xmm0, %xmm0 |
91 | | -; AVX512-NEXT: xorl %esi, %esi |
| 60 | +; AVX512-NEXT: xorl %eax, %eax |
92 | 61 | ; AVX512-NEXT: vptest %xmm0, %xmm0 |
93 | | -; AVX512-NEXT: sete %sil |
94 | | -; AVX512-NEXT: orq %rsi, (%rdx) |
| 62 | +; AVX512-NEXT: sete %al |
| 63 | +; AVX512-NEXT: orq %rax, (%rdx) |
95 | 64 | ; AVX512-NEXT: vptest %xmm0, %xmm0 |
96 | 65 | ; AVX512-NEXT: jne .LBB0_2 |
97 | 66 | ; AVX512-NEXT: # %bb.1: # %if.then |
98 | | -; AVX512-NEXT: xorq %r9, %rax |
99 | | -; AVX512-NEXT: xorq %rdi, %r8 |
100 | | -; AVX512-NEXT: xorl %edx, %edx |
101 | | -; AVX512-NEXT: orq %rax, %r8 |
102 | | -; AVX512-NEXT: sete %dl |
103 | | -; AVX512-NEXT: orq %rdx, (%rcx) |
| 67 | +; AVX512-NEXT: orq %rax, (%rcx) |
104 | 68 | ; AVX512-NEXT: .LBB0_2: # %if.end |
105 | 69 | ; AVX512-NEXT: retq |
106 | 70 | entry: |
|
0 commit comments