@@ -13,32 +13,12 @@ declare i1 @llvm.vector.reduce.and.v8i1(<8 x i1>)
13
13
; FIXME: All four versions are semantically equivalent and should produce same asm as scalar version.
14
14
15
15
define i1 @intrinsic_v2i8 (ptr align 1 %arg , ptr align 1 %arg1 ) {
16
- ; SSE-LABEL: intrinsic_v2i8:
17
- ; SSE: # %bb.0: # %bb
18
- ; SSE-NEXT: movzwl (%rdi), %eax
19
- ; SSE-NEXT: cmpw %ax, (%rsi)
20
- ; SSE-NEXT: sete %al
21
- ; SSE-NEXT: retq
22
- ;
23
- ; AVX-LABEL: intrinsic_v2i8:
24
- ; AVX: # %bb.0: # %bb
25
- ; AVX-NEXT: movzwl (%rdi), %eax
26
- ; AVX-NEXT: cmpw %ax, (%rsi)
27
- ; AVX-NEXT: sete %al
28
- ; AVX-NEXT: retq
29
- ;
30
- ; AVX512-LABEL: intrinsic_v2i8:
31
- ; AVX512: # %bb.0: # %bb
32
- ; AVX512-NEXT: movzwl (%rsi), %eax
33
- ; AVX512-NEXT: vmovd %eax, %xmm0
34
- ; AVX512-NEXT: movzwl (%rdi), %eax
35
- ; AVX512-NEXT: vmovd %eax, %xmm1
36
- ; AVX512-NEXT: vpcmpeqb %xmm1, %xmm0, %k0
37
- ; AVX512-NEXT: knotw %k0, %k0
38
- ; AVX512-NEXT: kmovd %k0, %eax
39
- ; AVX512-NEXT: testb $3, %al
40
- ; AVX512-NEXT: sete %al
41
- ; AVX512-NEXT: retq
16
+ ; X64-LABEL: intrinsic_v2i8:
17
+ ; X64: # %bb.0: # %bb
18
+ ; X64-NEXT: movzwl (%rdi), %eax
19
+ ; X64-NEXT: cmpw %ax, (%rsi)
20
+ ; X64-NEXT: sete %al
21
+ ; X64-NEXT: retq
42
22
;
43
23
; X86-LABEL: intrinsic_v2i8:
44
24
; X86: # %bb.0: # %bb
57
37
}
58
38
59
39
define i1 @intrinsic_v4i8 (ptr align 1 %arg , ptr align 1 %arg1 ) {
60
- ; SSE-LABEL: intrinsic_v4i8:
61
- ; SSE: # %bb.0: # %bb
62
- ; SSE-NEXT: movl (%rdi), %eax
63
- ; SSE-NEXT: cmpl %eax, (%rsi)
64
- ; SSE-NEXT: sete %al
65
- ; SSE-NEXT: retq
66
- ;
67
- ; AVX-LABEL: intrinsic_v4i8:
68
- ; AVX: # %bb.0: # %bb
69
- ; AVX-NEXT: movl (%rdi), %eax
70
- ; AVX-NEXT: cmpl %eax, (%rsi)
71
- ; AVX-NEXT: sete %al
72
- ; AVX-NEXT: retq
73
- ;
74
- ; AVX512-LABEL: intrinsic_v4i8:
75
- ; AVX512: # %bb.0: # %bb
76
- ; AVX512-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
77
- ; AVX512-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
78
- ; AVX512-NEXT: vpcmpeqb %xmm1, %xmm0, %k0
79
- ; AVX512-NEXT: knotw %k0, %k0
80
- ; AVX512-NEXT: kmovd %k0, %eax
81
- ; AVX512-NEXT: testb $15, %al
82
- ; AVX512-NEXT: sete %al
83
- ; AVX512-NEXT: retq
40
+ ; X64-LABEL: intrinsic_v4i8:
41
+ ; X64: # %bb.0: # %bb
42
+ ; X64-NEXT: movl (%rdi), %eax
43
+ ; X64-NEXT: cmpl %eax, (%rsi)
44
+ ; X64-NEXT: sete %al
45
+ ; X64-NEXT: retq
84
46
;
85
47
; X86-LABEL: intrinsic_v4i8:
86
48
; X86: # %bb.0: # %bb
99
61
}
100
62
101
63
define i1 @intrinsic_v8i8 (ptr align 1 %arg , ptr align 1 %arg1 ) {
102
- ; SSE-LABEL: intrinsic_v8i8:
103
- ; SSE: # %bb.0: # %bb
104
- ; SSE-NEXT: movq (%rdi), %rax
105
- ; SSE-NEXT: cmpq %rax, (%rsi)
106
- ; SSE-NEXT: sete %al
107
- ; SSE-NEXT: retq
108
- ;
109
- ; AVX-LABEL: intrinsic_v8i8:
110
- ; AVX: # %bb.0: # %bb
111
- ; AVX-NEXT: movq (%rdi), %rax
112
- ; AVX-NEXT: cmpq %rax, (%rsi)
113
- ; AVX-NEXT: sete %al
114
- ; AVX-NEXT: retq
115
- ;
116
- ; AVX512-LABEL: intrinsic_v8i8:
117
- ; AVX512: # %bb.0: # %bb
118
- ; AVX512-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
119
- ; AVX512-NEXT: vmovq {{.*#+}} xmm1 = mem[0],zero
120
- ; AVX512-NEXT: vpcmpeqb %xmm1, %xmm0, %k0
121
- ; AVX512-NEXT: kortestb %k0, %k0
122
- ; AVX512-NEXT: setb %al
123
- ; AVX512-NEXT: retq
64
+ ; X64-LABEL: intrinsic_v8i8:
65
+ ; X64: # %bb.0: # %bb
66
+ ; X64-NEXT: movq (%rdi), %rax
67
+ ; X64-NEXT: cmpq %rax, (%rsi)
68
+ ; X64-NEXT: sete %al
69
+ ; X64-NEXT: retq
124
70
;
125
71
; X86-LABEL: intrinsic_v8i8:
126
72
; X86: # %bb.0: # %bb
0 commit comments