xref: /aosp_15_r20/external/llvm/test/CodeGen/MIR/X86/generic-virtual-registers.mir (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker# RUN: llc -march=x86-64 -start-after machine-sink -stop-after machine-sink -o - %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker# REQUIRES: global-isel
3*9880d681SAndroid Build Coastguard Worker# This test ensures that the MIR parser parses generic virtual
4*9880d681SAndroid Build Coastguard Worker# register definitions correctly.
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker--- |
7*9880d681SAndroid Build Coastguard Worker  ; ModuleID = 'generic-virtual-registers-type-error.mir'
8*9880d681SAndroid Build Coastguard Worker  target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
9*9880d681SAndroid Build Coastguard Worker  %type_alias = type <2 x i32>
10*9880d681SAndroid Build Coastguard Worker  %structure_alias = type { i32, i16 }
11*9880d681SAndroid Build Coastguard Worker  define void @bar() {
12*9880d681SAndroid Build Coastguard Worker  entry:
13*9880d681SAndroid Build Coastguard Worker    ret void
14*9880d681SAndroid Build Coastguard Worker  }
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Worker...
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker---
19*9880d681SAndroid Build Coastguard Workername:            bar
20*9880d681SAndroid Build Coastguard WorkerisSSA:           true
21*9880d681SAndroid Build Coastguard Worker# CHECK:      registers:
22*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT:   - { id: 0, class: _ }
23*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT:   - { id: 1, class: _ }
24*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT:   - { id: 2, class: _ }
25*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT:   - { id: 3, class: _ }
26*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT:   - { id: 4, class: _ }
27*9880d681SAndroid Build Coastguard Workerregisters:
28*9880d681SAndroid Build Coastguard Worker  - { id: 0, class: _ }
29*9880d681SAndroid Build Coastguard Worker  - { id: 1, class: _ }
30*9880d681SAndroid Build Coastguard Worker  - { id: 2, class: _ }
31*9880d681SAndroid Build Coastguard Worker  - { id: 3, class: _ }
32*9880d681SAndroid Build Coastguard Worker  - { id: 4, class: _ }
33*9880d681SAndroid Build Coastguard Workerbody: |
34*9880d681SAndroid Build Coastguard Worker  bb.0.entry:
35*9880d681SAndroid Build Coastguard Worker    liveins: %edi
36*9880d681SAndroid Build Coastguard Worker    ; CHECK:      %0(32) = G_ADD i32 %edi
37*9880d681SAndroid Build Coastguard Worker    %0(32) = G_ADD i32 %edi, %edi
38*9880d681SAndroid Build Coastguard Worker    ; CHECK:      %1(64) = G_ADD <2 x i32> %edi
39*9880d681SAndroid Build Coastguard Worker    %1(64) = G_ADD <2 x i32> %edi, %edi
40*9880d681SAndroid Build Coastguard Worker    ; CHECK:      %2(64) = G_ADD <2 x i32> %edi
41*9880d681SAndroid Build Coastguard Worker    %2(64) = G_ADD %type_alias %edi, %edi
42*9880d681SAndroid Build Coastguard Worker    ; G_ADD is actually not a valid operand for structure type,
43*9880d681SAndroid Build Coastguard Worker    ; but that is the only one we have for now for testing.
44*9880d681SAndroid Build Coastguard Worker    ; CHECK:      %3(64) = G_ADD { i32, i32 } %edi
45*9880d681SAndroid Build Coastguard Worker    %3(64) = G_ADD {i32, i32} %edi, %edi
46*9880d681SAndroid Build Coastguard Worker    ; CHECK:      %4(48) = G_ADD %structure_alias %edi
47*9880d681SAndroid Build Coastguard Worker    %4(48) = G_ADD %structure_alias %edi, %edi
48*9880d681SAndroid Build Coastguard Worker...
49