llvm.org GIT mirror llvm / 2e17d1c
[X86] Remove KNL specific check prefix from xmulo.ll test. NFC This was added at a time when i1 was a legal type with avx512f and there was a bug. i1 is no longer considered a legal type with avx512f so there should be no codegen difference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350203 91177308-0d34-0410-b5e6-96231b3b80d8 Craig Topper 9 months ago
1 changed file(s) with 1 addition(s) and 184 deletion(s). Raw diff Collapse all Expand all
0 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
11 ; RUN: llc -mtriple=x86_64-darwin-unknown < %s | FileCheck %s --check-prefix=SDAG
22 ; RUN: llc -mtriple=x86_64-darwin-unknown -fast-isel -fast-isel-abort=1 < %s | FileCheck %s --check-prefix=FAST
3 ; RUN: llc -mtriple=x86_64-darwin-unknown -mcpu=knl < %s | FileCheck %s --check-prefix=KNL
3 ; RUN: llc -mtriple=x86_64-darwin-unknown -mcpu=knl < %s | FileCheck %s --check-prefix=SDAG --check-prefix=KNL
44
55 define {i64, i1} @t1() nounwind {
66 ; SDAG-LABEL: t1:
1818 ; FAST-NEXT: mulq %rcx
1919 ; FAST-NEXT: seto %dl
2020 ; FAST-NEXT: retq
21 ;
22 ; KNL-LABEL: t1:
23 ; KNL: ## %bb.0:
24 ; KNL-NEXT: movl $8, %ecx
25 ; KNL-NEXT: movl $9, %eax
26 ; KNL-NEXT: mulq %rcx
27 ; KNL-NEXT: seto %dl
28 ; KNL-NEXT: retq
2921 %1 = call {i64, i1} @llvm.umul.with.overflow.i64(i64 9, i64 8)
3022 ret {i64, i1} %1
3123 }
4638 ; FAST-NEXT: mulq %rcx
4739 ; FAST-NEXT: seto %dl
4840 ; FAST-NEXT: retq
49 ;
50 ; KNL-LABEL: t2:
51 ; KNL: ## %bb.0:
52 ; KNL-NEXT: xorl %ecx, %ecx
53 ; KNL-NEXT: movl $9, %eax
54 ; KNL-NEXT: mulq %rcx
55 ; KNL-NEXT: seto %dl
56 ; KNL-NEXT: retq
5741 %1 = call {i64, i1} @llvm.umul.with.overflow.i64(i64 9, i64 0)
5842 ret {i64, i1} %1
5943 }
7458 ; FAST-NEXT: mulq %rcx
7559 ; FAST-NEXT: seto %dl
7660 ; FAST-NEXT: retq
77 ;
78 ; KNL-LABEL: t3:
79 ; KNL: ## %bb.0:
80 ; KNL-NEXT: movq $-1, %rcx
81 ; KNL-NEXT: movl $9, %eax
82 ; KNL-NEXT: mulq %rcx
83 ; KNL-NEXT: seto %dl
84 ; KNL-NEXT: retq
8561 %1 = call {i64, i1} @llvm.umul.with.overflow.i64(i64 9, i64 -1)
8662 ret {i64, i1} %1
8763 }
10884 ; FAST-NEXT: andb $1, %cl
10985 ; FAST-NEXT: movzbl %cl, %eax
11086 ; FAST-NEXT: retq
111 ;
112 ; KNL-LABEL: smuloi8:
113 ; KNL: ## %bb.0:
114 ; KNL-NEXT: movl %edi, %eax
115 ; KNL-NEXT: ## kill: def $al killed $al killed $eax
116 ; KNL-NEXT: imulb %sil
117 ; KNL-NEXT: seto %cl
118 ; KNL-NEXT: movb %al, (%rdx)
119 ; KNL-NEXT: movl %ecx, %eax
120 ; KNL-NEXT: retq
12187 %t = call {i8, i1} @llvm.smul.with.overflow.i8(i8 %v1, i8 %v2)
12288 %val = extractvalue {i8, i1} %t, 0
12389 %obit = extractvalue {i8, i1} %t, 1
141107 ; FAST-NEXT: andb $1, %al
142108 ; FAST-NEXT: movzbl %al, %eax
143109 ; FAST-NEXT: retq
144 ;
145 ; KNL-LABEL: smuloi16:
146 ; KNL: ## %bb.0:
147 ; KNL-NEXT: imulw %si, %di
148 ; KNL-NEXT: seto %al
149 ; KNL-NEXT: movw %di, (%rdx)
150 ; KNL-NEXT: retq
151110 %t = call {i16, i1} @llvm.smul.with.overflow.i16(i16 %v1, i16 %v2)
152111 %val = extractvalue {i16, i1} %t, 0
153112 %obit = extractvalue {i16, i1} %t, 1
171130 ; FAST-NEXT: andb $1, %al
172131 ; FAST-NEXT: movzbl %al, %eax
173132 ; FAST-NEXT: retq
174 ;
175 ; KNL-LABEL: smuloi32:
176 ; KNL: ## %bb.0:
177 ; KNL-NEXT: imull %esi, %edi
178 ; KNL-NEXT: seto %al
179 ; KNL-NEXT: movl %edi, (%rdx)
180 ; KNL-NEXT: retq
181133 %t = call {i32, i1} @llvm.smul.with.overflow.i32(i32 %v1, i32 %v2)
182134 %val = extractvalue {i32, i1} %t, 0
183135 %obit = extractvalue {i32, i1} %t, 1
201153 ; FAST-NEXT: andb $1, %al
202154 ; FAST-NEXT: movzbl %al, %eax
203155 ; FAST-NEXT: retq
204 ;
205 ; KNL-LABEL: smuloi64:
206 ; KNL: ## %bb.0:
207 ; KNL-NEXT: imulq %rsi, %rdi
208 ; KNL-NEXT: seto %al
209 ; KNL-NEXT: movq %rdi, (%rdx)
210 ; KNL-NEXT: retq
211156 %t = call {i64, i1} @llvm.smul.with.overflow.i64(i64 %v1, i64 %v2)
212157 %val = extractvalue {i64, i1} %t, 0
213158 %obit = extractvalue {i64, i1} %t, 1
237182 ; FAST-NEXT: andb $1, %cl
238183 ; FAST-NEXT: movzbl %cl, %eax
239184 ; FAST-NEXT: retq
240 ;
241 ; KNL-LABEL: umuloi8:
242 ; KNL: ## %bb.0:
243 ; KNL-NEXT: movl %edi, %eax
244 ; KNL-NEXT: ## kill: def $al killed $al killed $eax
245 ; KNL-NEXT: mulb %sil
246 ; KNL-NEXT: seto %cl
247 ; KNL-NEXT: movb %al, (%rdx)
248 ; KNL-NEXT: movl %ecx, %eax
249 ; KNL-NEXT: retq
250185 %t = call {i8, i1} @llvm.umul.with.overflow.i8(i8 %v1, i8 %v2)
251186 %val = extractvalue {i8, i1} %t, 0
252187 %obit = extractvalue {i8, i1} %t, 1
277212 ; FAST-NEXT: andb $1, %dl
278213 ; FAST-NEXT: movzbl %dl, %eax
279214 ; FAST-NEXT: retq
280 ;
281 ; KNL-LABEL: umuloi16:
282 ; KNL: ## %bb.0:
283 ; KNL-NEXT: movq %rdx, %rcx
284 ; KNL-NEXT: movl %edi, %eax
285 ; KNL-NEXT: ## kill: def $ax killed $ax killed $eax
286 ; KNL-NEXT: mulw %si
287 ; KNL-NEXT: seto %dl
288 ; KNL-NEXT: movw %ax, (%rcx)
289 ; KNL-NEXT: movl %edx, %eax
290 ; KNL-NEXT: retq
291215 %t = call {i16, i1} @llvm.umul.with.overflow.i16(i16 %v1, i16 %v2)
292216 %val = extractvalue {i16, i1} %t, 0
293217 %obit = extractvalue {i16, i1} %t, 1
316240 ; FAST-NEXT: andb $1, %dl
317241 ; FAST-NEXT: movzbl %dl, %eax
318242 ; FAST-NEXT: retq
319 ;
320 ; KNL-LABEL: umuloi32:
321 ; KNL: ## %bb.0:
322 ; KNL-NEXT: movq %rdx, %rcx
323 ; KNL-NEXT: movl %edi, %eax
324 ; KNL-NEXT: mull %esi
325 ; KNL-NEXT: seto %dl
326 ; KNL-NEXT: movl %eax, (%rcx)
327 ; KNL-NEXT: movl %edx, %eax
328 ; KNL-NEXT: retq
329243 %t = call {i32, i1} @llvm.umul.with.overflow.i32(i32 %v1, i32 %v2)
330244 %val = extractvalue {i32, i1} %t, 0
331245 %obit = extractvalue {i32, i1} %t, 1
354268 ; FAST-NEXT: andb $1, %dl
355269 ; FAST-NEXT: movzbl %dl, %eax
356270 ; FAST-NEXT: retq
357 ;
358 ; KNL-LABEL: umuloi64:
359 ; KNL: ## %bb.0:
360 ; KNL-NEXT: movq %rdx, %rcx
361 ; KNL-NEXT: movq %rdi, %rax
362 ; KNL-NEXT: mulq %rsi
363 ; KNL-NEXT: seto %dl
364 ; KNL-NEXT: movq %rax, (%rcx)
365 ; KNL-NEXT: movl %edx, %eax
366 ; KNL-NEXT: retq
367271 %t = call {i64, i1} @llvm.umul.with.overflow.i64(i64 %v1, i64 %v2)
368272 %val = extractvalue {i64, i1} %t, 0
369273 %obit = extractvalue {i64, i1} %t, 1
390294 ; FAST-NEXT: imull %esi, %ecx
391295 ; FAST-NEXT: cmovol %edi, %eax
392296 ; FAST-NEXT: retq
393 ;
394 ; KNL-LABEL: smuloselecti32:
395 ; KNL: ## %bb.0:
396 ; KNL-NEXT: movl %esi, %eax
397 ; KNL-NEXT: movl %edi, %ecx
398 ; KNL-NEXT: imull %esi, %ecx
399 ; KNL-NEXT: cmovol %edi, %eax
400 ; KNL-NEXT: retq
401297 %t = call {i32, i1} @llvm.smul.with.overflow.i32(i32 %v1, i32 %v2)
402298 %obit = extractvalue {i32, i1} %t, 1
403299 %ret = select i1 %obit, i32 %v1, i32 %v2
420316 ; FAST-NEXT: imulq %rsi, %rcx
421317 ; FAST-NEXT: cmovoq %rdi, %rax
422318 ; FAST-NEXT: retq
423 ;
424 ; KNL-LABEL: smuloselecti64:
425 ; KNL: ## %bb.0:
426 ; KNL-NEXT: movq %rsi, %rax
427 ; KNL-NEXT: movq %rdi, %rcx
428 ; KNL-NEXT: imulq %rsi, %rcx
429 ; KNL-NEXT: cmovoq %rdi, %rax
430 ; KNL-NEXT: retq
431319 %t = call {i64, i1} @llvm.smul.with.overflow.i64(i64 %v1, i64 %v2)
432320 %obit = extractvalue {i64, i1} %t, 1
433321 %ret = select i1 %obit, i64 %v1, i64 %v2
450338 ; FAST-NEXT: cmovol %edi, %esi
451339 ; FAST-NEXT: movl %esi, %eax
452340 ; FAST-NEXT: retq
453 ;
454 ; KNL-LABEL: umuloselecti32:
455 ; KNL: ## %bb.0:
456 ; KNL-NEXT: movl %edi, %eax
457 ; KNL-NEXT: mull %esi
458 ; KNL-NEXT: cmovol %edi, %esi
459 ; KNL-NEXT: movl %esi, %eax
460 ; KNL-NEXT: retq
461341 %t = call {i32, i1} @llvm.umul.with.overflow.i32(i32 %v1, i32 %v2)
462342 %obit = extractvalue {i32, i1} %t, 1
463343 %ret = select i1 %obit, i32 %v1, i32 %v2
480360 ; FAST-NEXT: cmovoq %rdi, %rsi
481361 ; FAST-NEXT: movq %rsi, %rax
482362 ; FAST-NEXT: retq
483 ;
484 ; KNL-LABEL: umuloselecti64:
485 ; KNL: ## %bb.0:
486 ; KNL-NEXT: movq %rdi, %rax
487 ; KNL-NEXT: mulq %rsi
488 ; KNL-NEXT: cmovoq %rdi, %rsi
489 ; KNL-NEXT: movq %rsi, %rax
490 ; KNL-NEXT: retq
491363 %t = call {i64, i1} @llvm.umul.with.overflow.i64(i64 %v1, i64 %v2)
492364 %obit = extractvalue {i64, i1} %t, 1
493365 %ret = select i1 %obit, i64 %v1, i64 %v2
523395 ; FAST-NEXT: andb $1, %al
524396 ; FAST-NEXT: movzbl %al, %eax
525397 ; FAST-NEXT: retq
526 ;
527 ; KNL-LABEL: smulobri32:
528 ; KNL: ## %bb.0:
529 ; KNL-NEXT: imull %esi, %edi
530 ; KNL-NEXT: jo LBB15_1
531 ; KNL-NEXT: ## %bb.2: ## %continue
532 ; KNL-NEXT: movb $1, %al
533 ; KNL-NEXT: retq
534 ; KNL-NEXT: LBB15_1: ## %overflow
535 ; KNL-NEXT: xorl %eax, %eax
536 ; KNL-NEXT: retq
537398 %t = call {i32, i1} @llvm.smul.with.overflow.i32(i32 %v1, i32 %v2)
538399 %val = extractvalue {i32, i1} %t, 0
539400 %obit = extractvalue {i32, i1} %t, 1
572433 ; FAST-NEXT: andb $1, %al
573434 ; FAST-NEXT: movzbl %al, %eax
574435 ; FAST-NEXT: retq
575 ;
576 ; KNL-LABEL: smulobri64:
577 ; KNL: ## %bb.0:
578 ; KNL-NEXT: imulq %rsi, %rdi
579 ; KNL-NEXT: jo LBB16_1
580 ; KNL-NEXT: ## %bb.2: ## %continue
581 ; KNL-NEXT: movb $1, %al
582 ; KNL-NEXT: retq
583 ; KNL-NEXT: LBB16_1: ## %overflow
584 ; KNL-NEXT: xorl %eax, %eax
585 ; KNL-NEXT: retq
586436 %t = call {i64, i1} @llvm.smul.with.overflow.i64(i64 %v1, i64 %v2)
587437 %val = extractvalue {i64, i1} %t, 0
588438 %obit = extractvalue {i64, i1} %t, 1
623473 ; FAST-NEXT: andb $1, %al
624474 ; FAST-NEXT: movzbl %al, %eax
625475 ; FAST-NEXT: retq
626 ;
627 ; KNL-LABEL: umulobri32:
628 ; KNL: ## %bb.0:
629 ; KNL-NEXT: movl %edi, %eax
630 ; KNL-NEXT: mull %esi
631 ; KNL-NEXT: jo LBB17_1
632 ; KNL-NEXT: ## %bb.2: ## %continue
633 ; KNL-NEXT: movb $1, %al
634 ; KNL-NEXT: retq
635 ; KNL-NEXT: LBB17_1: ## %overflow
636 ; KNL-NEXT: xorl %eax, %eax
637 ; KNL-NEXT: retq
638476 %t = call {i32, i1} @llvm.umul.with.overflow.i32(i32 %v1, i32 %v2)
639477 %val = extractvalue {i32, i1} %t, 0
640478 %obit = extractvalue {i32, i1} %t, 1
675513 ; FAST-NEXT: andb $1, %al
676514 ; FAST-NEXT: movzbl %al, %eax
677515 ; FAST-NEXT: retq
678 ;
679 ; KNL-LABEL: umulobri64:
680 ; KNL: ## %bb.0:
681 ; KNL-NEXT: movq %rdi, %rax
682 ; KNL-NEXT: mulq %rsi
683 ; KNL-NEXT: jo LBB18_1
684 ; KNL-NEXT: ## %bb.2: ## %continue
685 ; KNL-NEXT: movb $1, %al
686 ; KNL-NEXT: retq
687 ; KNL-NEXT: LBB18_1: ## %overflow
688 ; KNL-NEXT: xorl %eax, %eax
689 ; KNL-NEXT: retq
690516 %t = call {i64, i1} @llvm.umul.with.overflow.i64(i64 %v1, i64 %v2)
691517 %val = extractvalue {i64, i1} %t, 0
692518 %obit = extractvalue {i64, i1} %t, 1
717543 ; FAST-NEXT: seto %al
718544 ; FAST-NEXT: orb %sil, %al
719545 ; FAST-NEXT: retq
720 ;
721 ; KNL-LABEL: bug27873:
722 ; KNL: ## %bb.0:
723 ; KNL-NEXT: movq %rdi, %rax
724 ; KNL-NEXT: movl $160, %ecx
725 ; KNL-NEXT: mulq %rcx
726 ; KNL-NEXT: seto %al
727 ; KNL-NEXT: orb %sil, %al
728 ; KNL-NEXT: retq
729546 %mul = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %c1, i64 160)
730547 %mul.overflow = extractvalue { i64, i1 } %mul, 1
731548 %x1 = or i1 %c2, %mul.overflow