Skip to content

Commit 3a297ff

Browse files
committed
No-unwind
1 parent f16e4cf commit 3a297ff

File tree

1 file changed

+3
-140
lines changed

1 file changed

+3
-140
lines changed

llvm/test/CodeGen/X86/and-mask-variable.ll

Lines changed: 3 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
22
; RUN: llc -mtriple=i686-unknown-linux-gnu -mattr=-bmi,-tbm,-bmi2,+fast-bextr < %s | FileCheck %s --check-prefixes=X86-NOBMI
3-
; RUN: llc -mtriple=i686-unknown-linux-gnu -mattr=+bmi,-tbm,-bmi2,+fast-bextr < %s | FileCheck %s --check-prefixes=X86-BMI1
4-
; RUN: llc -mtriple=i686-unknown-linux-gnu -mattr=+bmi,+tbm,-bmi2,+fast-bextr < %s | FileCheck %s --check-prefixes=X86-BMI1
53
; RUN: llc -mtriple=i686-unknown-linux-gnu -mattr=+bmi,+tbm,+bmi2,+fast-bextr < %s | FileCheck %s --check-prefixes=X86-BMI2
64
; RUN: llc -mtriple=i686-unknown-linux-gnu -mattr=+bmi,-tbm,+bmi2,+fast-bextr < %s | FileCheck %s --check-prefixes=X86-BMI2
75
; RUN: llc -mtriple=x86_64-unknown-linux-gnu -mattr=-bmi,-tbm,-bmi2,+fast-bextr < %s | FileCheck %s --check-prefixes=X64-NOBMI
8-
; RUN: llc -mtriple=x86_64-unknown-linux-gnu -mattr=+bmi,-tbm,-bmi2,+fast-bextr < %s | FileCheck %s --check-prefixes=X64-BMI1
9-
; RUN: llc -mtriple=x86_64-unknown-linux-gnu -mattr=+bmi,+tbm,-bmi2,+fast-bextr < %s | FileCheck %s --check-prefixes=X64-BMI1
106
; RUN: llc -mtriple=x86_64-unknown-linux-gnu -mattr=+bmi,+tbm,+bmi2,+fast-bextr < %s | FileCheck %s --check-prefixes=X64-BMI2
117
; RUN: llc -mtriple=x86_64-unknown-linux-gnu -mattr=+bmi,-tbm,+bmi2,+fast-bextr < %s | FileCheck %s --check-prefixes=X64-BMI2
128

13-
define i32 @mask_pair(i32 %x, i32 %y) {
9+
define i32 @mask_pair(i32 %x, i32 %y) nounwind {
1410
; X86-NOBMI-LABEL: mask_pair:
1511
; X86-NOBMI: # %bb.0:
1612
; X86-NOBMI-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
@@ -19,14 +15,6 @@ define i32 @mask_pair(i32 %x, i32 %y) {
1915
; X86-NOBMI-NEXT: shll %cl, %eax
2016
; X86-NOBMI-NEXT: retl
2117
;
22-
; X86-BMI1-LABEL: mask_pair:
23-
; X86-BMI1: # %bb.0:
24-
; X86-BMI1-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
25-
; X86-BMI1-NEXT: movl {{[0-9]+}}(%esp), %eax
26-
; X86-BMI1-NEXT: shrl %cl, %eax
27-
; X86-BMI1-NEXT: shll %cl, %eax
28-
; X86-BMI1-NEXT: retl
29-
;
3018
; X86-BMI2-LABEL: mask_pair:
3119
; X86-BMI2: # %bb.0:
3220
; X86-BMI2-NEXT: movzbl {{[0-9]+}}(%esp), %eax
@@ -43,15 +31,6 @@ define i32 @mask_pair(i32 %x, i32 %y) {
4331
; X64-NOBMI-NEXT: shll %cl, %eax
4432
; X64-NOBMI-NEXT: retq
4533
;
46-
; X64-BMI1-LABEL: mask_pair:
47-
; X64-BMI1: # %bb.0:
48-
; X64-BMI1-NEXT: movl %esi, %ecx
49-
; X64-BMI1-NEXT: movl %edi, %eax
50-
; X64-BMI1-NEXT: shrl %cl, %eax
51-
; X64-BMI1-NEXT: # kill: def $cl killed $cl killed $ecx
52-
; X64-BMI1-NEXT: shll %cl, %eax
53-
; X64-BMI1-NEXT: retq
54-
;
5534
; X64-BMI2-LABEL: mask_pair:
5635
; X64-BMI2: # %bb.0:
5736
; X64-BMI2-NEXT: shrxl %esi, %edi, %eax
@@ -62,7 +41,7 @@ define i32 @mask_pair(i32 %x, i32 %y) {
6241
ret i32 %and
6342
}
6443

65-
define i64 @mask_pair_64(i64 %x, i64 %y) {
44+
define i64 @mask_pair_64(i64 %x, i64 %y) nounwind {
6645
; X86-NOBMI-LABEL: mask_pair_64:
6746
; X86-NOBMI: # %bb.0:
6847
; X86-NOBMI-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
@@ -79,22 +58,6 @@ define i64 @mask_pair_64(i64 %x, i64 %y) {
7958
; X86-NOBMI-NEXT: andl {{[0-9]+}}(%esp), %edx
8059
; X86-NOBMI-NEXT: retl
8160
;
82-
; X86-BMI1-LABEL: mask_pair_64:
83-
; X86-BMI1: # %bb.0:
84-
; X86-BMI1-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
85-
; X86-BMI1-NEXT: movl $-1, %edx
86-
; X86-BMI1-NEXT: movl $-1, %eax
87-
; X86-BMI1-NEXT: shll %cl, %eax
88-
; X86-BMI1-NEXT: testb $32, %cl
89-
; X86-BMI1-NEXT: je .LBB1_2
90-
; X86-BMI1-NEXT: # %bb.1:
91-
; X86-BMI1-NEXT: movl %eax, %edx
92-
; X86-BMI1-NEXT: xorl %eax, %eax
93-
; X86-BMI1-NEXT: .LBB1_2:
94-
; X86-BMI1-NEXT: andl {{[0-9]+}}(%esp), %eax
95-
; X86-BMI1-NEXT: andl {{[0-9]+}}(%esp), %edx
96-
; X86-BMI1-NEXT: retl
97-
;
9861
; X86-BMI2-LABEL: mask_pair_64:
9962
; X86-BMI2: # %bb.0:
10063
; X86-BMI2-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
@@ -119,15 +82,6 @@ define i64 @mask_pair_64(i64 %x, i64 %y) {
11982
; X64-NOBMI-NEXT: shlq %cl, %rax
12083
; X64-NOBMI-NEXT: retq
12184
;
122-
; X64-BMI1-LABEL: mask_pair_64:
123-
; X64-BMI1: # %bb.0:
124-
; X64-BMI1-NEXT: movq %rsi, %rcx
125-
; X64-BMI1-NEXT: movq %rdi, %rax
126-
; X64-BMI1-NEXT: shrq %cl, %rax
127-
; X64-BMI1-NEXT: # kill: def $cl killed $cl killed $rcx
128-
; X64-BMI1-NEXT: shlq %cl, %rax
129-
; X64-BMI1-NEXT: retq
130-
;
13185
; X64-BMI2-LABEL: mask_pair_64:
13286
; X64-BMI2: # %bb.0:
13387
; X64-BMI2-NEXT: shrxq %rsi, %rdi, %rax
@@ -138,20 +92,13 @@ define i64 @mask_pair_64(i64 %x, i64 %y) {
13892
ret i64 %and
13993
}
14094

141-
define i128 @mask_pair_128(i128 %x, i128 %y) {
95+
define i128 @mask_pair_128(i128 %x, i128 %y) nounwind {
14296
; X86-NOBMI-LABEL: mask_pair_128:
14397
; X86-NOBMI: # %bb.0:
14498
; X86-NOBMI-NEXT: pushl %ebx
145-
; X86-NOBMI-NEXT: .cfi_def_cfa_offset 8
14699
; X86-NOBMI-NEXT: pushl %edi
147-
; X86-NOBMI-NEXT: .cfi_def_cfa_offset 12
148100
; X86-NOBMI-NEXT: pushl %esi
149-
; X86-NOBMI-NEXT: .cfi_def_cfa_offset 16
150101
; X86-NOBMI-NEXT: subl $32, %esp
151-
; X86-NOBMI-NEXT: .cfi_def_cfa_offset 48
152-
; X86-NOBMI-NEXT: .cfi_offset %esi, -16
153-
; X86-NOBMI-NEXT: .cfi_offset %edi, -12
154-
; X86-NOBMI-NEXT: .cfi_offset %ebx, -8
155102
; X86-NOBMI-NEXT: movl {{[0-9]+}}(%esp), %ecx
156103
; X86-NOBMI-NEXT: movl {{[0-9]+}}(%esp), %eax
157104
; X86-NOBMI-NEXT: movl $-1, {{[0-9]+}}(%esp)
@@ -185,83 +132,17 @@ define i128 @mask_pair_128(i128 %x, i128 %y) {
185132
; X86-NOBMI-NEXT: movl %ebx, 4(%eax)
186133
; X86-NOBMI-NEXT: movl %edi, (%eax)
187134
; X86-NOBMI-NEXT: addl $32, %esp
188-
; X86-NOBMI-NEXT: .cfi_def_cfa_offset 16
189135
; X86-NOBMI-NEXT: popl %esi
190-
; X86-NOBMI-NEXT: .cfi_def_cfa_offset 12
191136
; X86-NOBMI-NEXT: popl %edi
192-
; X86-NOBMI-NEXT: .cfi_def_cfa_offset 8
193137
; X86-NOBMI-NEXT: popl %ebx
194-
; X86-NOBMI-NEXT: .cfi_def_cfa_offset 4
195138
; X86-NOBMI-NEXT: retl $4
196139
;
197-
; X86-BMI1-LABEL: mask_pair_128:
198-
; X86-BMI1: # %bb.0:
199-
; X86-BMI1-NEXT: pushl %ebx
200-
; X86-BMI1-NEXT: .cfi_def_cfa_offset 8
201-
; X86-BMI1-NEXT: pushl %edi
202-
; X86-BMI1-NEXT: .cfi_def_cfa_offset 12
203-
; X86-BMI1-NEXT: pushl %esi
204-
; X86-BMI1-NEXT: .cfi_def_cfa_offset 16
205-
; X86-BMI1-NEXT: subl $32, %esp
206-
; X86-BMI1-NEXT: .cfi_def_cfa_offset 48
207-
; X86-BMI1-NEXT: .cfi_offset %esi, -16
208-
; X86-BMI1-NEXT: .cfi_offset %edi, -12
209-
; X86-BMI1-NEXT: .cfi_offset %ebx, -8
210-
; X86-BMI1-NEXT: movl {{[0-9]+}}(%esp), %ecx
211-
; X86-BMI1-NEXT: movl {{[0-9]+}}(%esp), %eax
212-
; X86-BMI1-NEXT: movl $-1, {{[0-9]+}}(%esp)
213-
; X86-BMI1-NEXT: movl $-1, {{[0-9]+}}(%esp)
214-
; X86-BMI1-NEXT: movl $-1, {{[0-9]+}}(%esp)
215-
; X86-BMI1-NEXT: movl $-1, {{[0-9]+}}(%esp)
216-
; X86-BMI1-NEXT: movl $0, {{[0-9]+}}(%esp)
217-
; X86-BMI1-NEXT: movl $0, {{[0-9]+}}(%esp)
218-
; X86-BMI1-NEXT: movl $0, {{[0-9]+}}(%esp)
219-
; X86-BMI1-NEXT: movl $0, (%esp)
220-
; X86-BMI1-NEXT: movl %ecx, %edx
221-
; X86-BMI1-NEXT: shrb $3, %dl
222-
; X86-BMI1-NEXT: andb $12, %dl
223-
; X86-BMI1-NEXT: negb %dl
224-
; X86-BMI1-NEXT: movsbl %dl, %ebx
225-
; X86-BMI1-NEXT: movl 24(%esp,%ebx), %edx
226-
; X86-BMI1-NEXT: movl 28(%esp,%ebx), %esi
227-
; X86-BMI1-NEXT: shldl %cl, %edx, %esi
228-
; X86-BMI1-NEXT: movl 16(%esp,%ebx), %edi
229-
; X86-BMI1-NEXT: movl 20(%esp,%ebx), %ebx
230-
; X86-BMI1-NEXT: shldl %cl, %ebx, %edx
231-
; X86-BMI1-NEXT: shldl %cl, %edi, %ebx
232-
; X86-BMI1-NEXT: # kill: def $cl killed $cl killed $ecx
233-
; X86-BMI1-NEXT: shll %cl, %edi
234-
; X86-BMI1-NEXT: andl {{[0-9]+}}(%esp), %edx
235-
; X86-BMI1-NEXT: andl {{[0-9]+}}(%esp), %esi
236-
; X86-BMI1-NEXT: andl {{[0-9]+}}(%esp), %edi
237-
; X86-BMI1-NEXT: andl {{[0-9]+}}(%esp), %ebx
238-
; X86-BMI1-NEXT: movl %esi, 12(%eax)
239-
; X86-BMI1-NEXT: movl %edx, 8(%eax)
240-
; X86-BMI1-NEXT: movl %ebx, 4(%eax)
241-
; X86-BMI1-NEXT: movl %edi, (%eax)
242-
; X86-BMI1-NEXT: addl $32, %esp
243-
; X86-BMI1-NEXT: .cfi_def_cfa_offset 16
244-
; X86-BMI1-NEXT: popl %esi
245-
; X86-BMI1-NEXT: .cfi_def_cfa_offset 12
246-
; X86-BMI1-NEXT: popl %edi
247-
; X86-BMI1-NEXT: .cfi_def_cfa_offset 8
248-
; X86-BMI1-NEXT: popl %ebx
249-
; X86-BMI1-NEXT: .cfi_def_cfa_offset 4
250-
; X86-BMI1-NEXT: retl $4
251-
;
252140
; X86-BMI2-LABEL: mask_pair_128:
253141
; X86-BMI2: # %bb.0:
254142
; X86-BMI2-NEXT: pushl %ebx
255-
; X86-BMI2-NEXT: .cfi_def_cfa_offset 8
256143
; X86-BMI2-NEXT: pushl %edi
257-
; X86-BMI2-NEXT: .cfi_def_cfa_offset 12
258144
; X86-BMI2-NEXT: pushl %esi
259-
; X86-BMI2-NEXT: .cfi_def_cfa_offset 16
260145
; X86-BMI2-NEXT: subl $32, %esp
261-
; X86-BMI2-NEXT: .cfi_def_cfa_offset 48
262-
; X86-BMI2-NEXT: .cfi_offset %esi, -16
263-
; X86-BMI2-NEXT: .cfi_offset %edi, -12
264-
; X86-BMI2-NEXT: .cfi_offset %ebx, -8
265146
; X86-BMI2-NEXT: movl {{[0-9]+}}(%esp), %ecx
266147
; X86-BMI2-NEXT: movl {{[0-9]+}}(%esp), %eax
267148
; X86-BMI2-NEXT: movl $-1, {{[0-9]+}}(%esp)
@@ -294,13 +175,9 @@ define i128 @mask_pair_128(i128 %x, i128 %y) {
294175
; X86-BMI2-NEXT: movl %edi, 4(%eax)
295176
; X86-BMI2-NEXT: movl %ecx, (%eax)
296177
; X86-BMI2-NEXT: addl $32, %esp
297-
; X86-BMI2-NEXT: .cfi_def_cfa_offset 16
298178
; X86-BMI2-NEXT: popl %esi
299-
; X86-BMI2-NEXT: .cfi_def_cfa_offset 12
300179
; X86-BMI2-NEXT: popl %edi
301-
; X86-BMI2-NEXT: .cfi_def_cfa_offset 8
302180
; X86-BMI2-NEXT: popl %ebx
303-
; X86-BMI2-NEXT: .cfi_def_cfa_offset 4
304181
; X86-BMI2-NEXT: retl $4
305182
;
306183
; X64-NOBMI-LABEL: mask_pair_128:
@@ -317,20 +194,6 @@ define i128 @mask_pair_128(i128 %x, i128 %y) {
317194
; X64-NOBMI-NEXT: andq %rsi, %rdx
318195
; X64-NOBMI-NEXT: retq
319196
;
320-
; X64-BMI1-LABEL: mask_pair_128:
321-
; X64-BMI1: # %bb.0:
322-
; X64-BMI1-NEXT: movq %rdx, %rcx
323-
; X64-BMI1-NEXT: movq $-1, %rdx
324-
; X64-BMI1-NEXT: movq $-1, %r8
325-
; X64-BMI1-NEXT: shlq %cl, %r8
326-
; X64-BMI1-NEXT: xorl %eax, %eax
327-
; X64-BMI1-NEXT: testb $64, %cl
328-
; X64-BMI1-NEXT: cmovneq %r8, %rdx
329-
; X64-BMI1-NEXT: cmoveq %r8, %rax
330-
; X64-BMI1-NEXT: andq %rdi, %rax
331-
; X64-BMI1-NEXT: andq %rsi, %rdx
332-
; X64-BMI1-NEXT: retq
333-
;
334197
; X64-BMI2-LABEL: mask_pair_128:
335198
; X64-BMI2: # %bb.0:
336199
; X64-BMI2-NEXT: movq $-1, %rcx

0 commit comments

Comments
 (0)