Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / X86 / GlobalISel / select-undef.mir
blobdd5214894d656c6141fb0d5938dd5746a6d2d899
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=x86_64-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL
3 --- |
5   define i8 @test() {
6     ret i8 undef
7   }
9   define i8 @test2(i8 %a) {
10     %r = add i8 %a, undef
11     ret i8 %r
12   }
14   define float @test3() {
15     ret float undef
16   }
17 ...
18 ---
19 name:            test
20 alignment:       16
21 legalized:       true
22 regBankSelected: true
23 registers:
24   - { id: 0, class: gpr, preferred-register: '' }
25 liveins:
26 fixedStack:
27 stack:
28 constants:
29 body:             |
30   bb.1 (%ir-block.0):
31     ; ALL-LABEL: name: test
32     ; ALL: [[DEF:%[0-9]+]]:gr8 = IMPLICIT_DEF
33     ; ALL-NEXT: $al = COPY [[DEF]]
34     ; ALL-NEXT: RET 0, implicit $al
35     %0(s8) = G_IMPLICIT_DEF
36     $al = COPY %0(s8)
37     RET 0, implicit $al
39 ...
40 ---
41 name:            test2
42 alignment:       16
43 legalized:       true
44 regBankSelected: true
45 registers:
46   - { id: 0, class: gpr, preferred-register: '' }
47   - { id: 1, class: gpr, preferred-register: '' }
48   - { id: 2, class: gpr, preferred-register: '' }
49 liveins:
50 fixedStack:
51 stack:
52 constants:
53 body:             |
54   bb.1 (%ir-block.0):
55     liveins: $edi
57     ; ALL-LABEL: name: test2
58     ; ALL: liveins: $edi
59     ; ALL-NEXT: {{  $}}
60     ; ALL-NEXT: [[COPY:%[0-9]+]]:gr8 = COPY $dil
61     ; ALL-NEXT: [[DEF:%[0-9]+]]:gr8 = IMPLICIT_DEF
62     ; ALL-NEXT: [[ADD8rr:%[0-9]+]]:gr8 = ADD8rr [[COPY]], [[DEF]], implicit-def dead $eflags
63     ; ALL-NEXT: $al = COPY [[ADD8rr]]
64     ; ALL-NEXT: RET 0, implicit $al
65     %0(s8) = COPY $dil
66     %1(s8) = G_IMPLICIT_DEF
67     %2(s8) = G_ADD %0, %1
68     $al = COPY %2(s8)
69     RET 0, implicit $al
71 ...
72 ---
73 name:            test3
74 alignment:       16
75 legalized:       true
76 regBankSelected: true
77 tracksRegLiveness: true
78 registers:
79   - { id: 1, class: vecr }
80 body:             |
81   bb.1 (%ir-block.0):
82     ; ALL-LABEL: name: test3
83     ; ALL: [[DEF:%[0-9]+]]:vr128 = IMPLICIT_DEF
84     ; ALL-NEXT: $xmm0 = COPY [[DEF]]
85     ; ALL-NEXT: RET 0, implicit $xmm0
86     %1:vecr(s128) = G_IMPLICIT_DEF
87     $xmm0 = COPY %1:vecr(s128)
88     RET 0, implicit $xmm0
90 ...