[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / X86 / GlobalISel / undef.ll
blobb81dab9b39b457a10f487cc98d00dd6e0c87e030
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=x86_64-linux-gnu -global-isel -verify-machineinstrs < %s -o - | FileCheck %s --check-prefix=ALL
4 define i8 @test() {
5 ; ALL-LABEL: test:
6 ; ALL:       # %bb.0:
7 ; ALL-NEXT:    retq
8   ret i8 undef
11 define i8 @add_undef_i8(i8 %a) {
12 ; ALL-LABEL: add_undef_i8:
13 ; ALL:       # %bb.0:
14 ; ALL-NEXT:    movl %edi, %eax
15 ; ALL-NEXT:    addb %al, %al
16 ; ALL-NEXT:    # kill: def $al killed $al killed $eax
17 ; ALL-NEXT:    retq
18   %r = add i8 %a, undef
19   ret i8 %r
22 define i16 @add_undef_i16(i16 %a) {
23 ; ALL-LABEL: add_undef_i16:
24 ; ALL:       # %bb.0:
25 ; ALL-NEXT:    movl %edi, %eax
26 ; ALL-NEXT:    addw %ax, %ax
27 ; ALL-NEXT:    # kill: def $ax killed $ax killed $eax
28 ; ALL-NEXT:    retq
29   %r = add i16 %a, undef
30   ret i16 %r
33 define i16 @add_undef_i16_commute(i16 %a) {
34 ; ALL-LABEL: add_undef_i16_commute:
35 ; ALL:       # %bb.0:
36 ; ALL-NEXT:    addw %di, %ax
37 ; ALL-NEXT:    retq
38   %r = add i16 undef, %a
39   ret i16 %r
42 define i32 @add_undef_i32(i32 %a) {
43 ; ALL-LABEL: add_undef_i32:
44 ; ALL:       # %bb.0:
45 ; ALL-NEXT:    movl %edi, %eax
46 ; ALL-NEXT:    addl %eax, %eax
47 ; ALL-NEXT:    retq
48   %r = add i32 %a, undef
49   ret i32 %r
52 define float @test3() {
53 ; ALL-LABEL: test3:
54 ; ALL:       # %bb.0:
55 ; ALL-NEXT:    retq
56   ret float undef
59 define float @test4(float %a) {
60 ; ALL-LABEL: test4:
61 ; ALL:       # %bb.0:
62 ; ALL-NEXT:    addss %xmm0, %xmm0
63 ; ALL-NEXT:    retq
64   %r = fadd float %a, undef
65   ret float %r