[x86/MIR] Implement support for pre- and post-instruction symbols, as
[llvm-complete.git] / test / CodeGen / MIR / X86 / generic-instr-type.mir
bloba0948319878b08d27a25600acf7d9bd746631472
1 # RUN: llc -march=x86-64 -run-pass none -o - %s | FileCheck %s
2 # REQUIRES: global-isel
3 # Test that the MIR parser parses types on generic instructions correctly.
5 --- |
6   target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
7   %type_alias = type <2 x i32>
8   %structure_alias = type { i32, i16 }
9   define void @test_vregs() {
10     ret void
11   }
13   define void @test_unsized() {
14     ret void
15   }
17 ...
19 ---
20 name:            test_vregs
21 # CHECK:      registers:
22 # CHECK-NEXT:   - { id: 0, class: _, preferred-register: '' }
23 # CHECK-NEXT:   - { id: 1, class: _, preferred-register: '' }
24 # CHECK-NEXT:   - { id: 2, class: _, preferred-register: '' }
25 # CHECK-NEXT:   - { id: 3, class: _, preferred-register: '' }
26 # CHECK-NEXT:   - { id: 4, class: _, preferred-register: '' }
27 registers:
28   - { id: 0, class: _ }
29   - { id: 1, class: _ }
30   - { id: 2, class: _ }
31   - { id: 3, class: _ }
32   - { id: 4, class: _ }
33   - { id: 5, class: _ }
34   - { id: 6, class: _ }
35   - { id: 7, class: _ }
36   - { id: 8, class: _ }
37 body: |
38   bb.0:
39     liveins: $edi, $xmm0
40     ; CHECK:      %1:_(s32) = G_ADD %0
41     %0(s32) = COPY $edi
42     %6(<4 x s32>) = COPY $xmm0
43     %7(s64) = COPY $rdi
45     %1(s32) = G_ADD %0, %0
46     ; CHECK:      %2:_(<4 x s32>) = G_ADD %6, %6
47     %2(<4 x s32>) = G_ADD %6, %6
48     ; CHECK:      %3:_(s64) = G_ADD %7, %7
49     %3(s64) = G_ADD %7, %7
51     ; CHECK:      %5:_(s48) = G_ADD %8, %8
52     %8(s48) = G_TRUNC %7
53     %5(s48) = G_ADD %8, %8
54 ...
56 ---
57 name:            test_unsized
58 body: |
59   bb.0:
60     successors: %bb.0
62     ; CHECK:      G_BR %bb.0
63     G_BR  %bb.0
64 ...