[Demangle] Add a few more options to the microsoft demangler
[llvm-complete.git] / test / CodeGen / X86 / fixup-bw-copy.mir
blobd9dc5f23b03d894747d540f8dcafffcbae47ea48
1 # RUN: llc -run-pass x86-fixup-bw-insts -mtriple=x86_64-- -o - %s | FileCheck %s
3 # Verify that we correctly deal with the flag edge cases when replacing
4 # copies by bigger copies, which is a pretty unusual transform.
6 --- |
7   target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
9   define i8 @test_movb_killed(i8 %a0) {
10     ret i8 %a0
11   }
13   define i8 @test_movb_impuse(i8 %a0) {
14     ret i8 %a0
15   }
17   define i8 @test_movb_impdef_gr64(i8 %a0) {
18     ret i8 %a0
19   }
21   define i8 @test_movb_impdef_gr32(i8 %a0) {
22     ret i8 %a0
23   }
25   define i8 @test_movb_impdef_gr16(i8 %a0) {
26     ret i8 %a0
27   }
29   define i16 @test_movw_impdef_gr32(i16 %a0) {
30     ret i16 %a0
31   }
33   define i16 @test_movw_impdef_gr64(i16 %a0) {
34     ret i16 %a0
35   }
37 ...
39 ---
40 name:            test_movb_killed
41 tracksRegLiveness: true
42 liveins:
43   - { reg: '$edi' }
44 body:             |
45   bb.0 (%ir-block.0):
46     liveins: $edi
48     ; CHECK: $eax = MOV32rr undef $edi, implicit $dil
49     $al = MOV8rr killed $dil
50     RETQ killed $al
52 ...
54 ---
55 name:            test_movb_impuse
56 tracksRegLiveness: true
57 liveins:
58   - { reg: '$edi' }
59 body:             |
60   bb.0 (%ir-block.0):
61     liveins: $edi
63     ; CHECK: $eax = MOV32rr undef $edi, implicit $dil
64     $al = MOV8rr $dil, implicit $edi
65     RETQ killed $al
67 ...
69 ---
70 name:            test_movb_impdef_gr64
71 tracksRegLiveness: true
72 liveins:
73   - { reg: '$edi' }
74 body:             |
75   bb.0 (%ir-block.0):
76     liveins: $edi
78     ; CHECK: $eax = MOV32rr undef $edi, implicit $dil, implicit-def $rax
79     $al = MOV8rr $dil, implicit-def $rax
80     RETQ killed $al
82 ...
84 ---
85 name:            test_movb_impdef_gr32
86 tracksRegLiveness: true
87 liveins:
88   - { reg: '$edi' }
89 body:             |
90   bb.0 (%ir-block.0):
91     liveins: $edi
93     ; CHECK: $eax = MOV32rr undef $edi, implicit $dil
94     $al = MOV8rr $dil, implicit-def $eax
95     RETQ killed $al
97 ...
99 ---
100 name:            test_movb_impdef_gr16
101 tracksRegLiveness: true
102 liveins:
103   - { reg: '$edi' }
104 body:             |
105   bb.0 (%ir-block.0):
106     liveins: $edi
108     ; CHECK: $eax = MOV32rr undef $edi, implicit $dil
109     $al = MOV8rr $dil, implicit-def $ax
110     RETQ killed $al
115 name:            test_movw_impdef_gr32
116 tracksRegLiveness: true
117 liveins:
118   - { reg: '$edi' }
119 body:             |
120   bb.0 (%ir-block.0):
121     liveins: $edi
123     ; CHECK: $eax = MOV32rr undef $edi, implicit $di
124     $ax = MOV16rr $di, implicit-def $eax
125     RETQ killed $ax
130 name:            test_movw_impdef_gr64
131 tracksRegLiveness: true
132 liveins:
133   - { reg: '$edi' }
134 body:             |
135   bb.0 (%ir-block.0):
136     liveins: $edi
138     ; CHECK: $eax = MOV32rr undef $edi, implicit $di, implicit-def $rax
139     $ax = MOV16rr $di, implicit-def $rax
140     RETQ killed $ax