brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · bd062a7 Raw
81 lines · plain
1// RUN: llvm-tblgen -gen-register-info -register-info-debug -I %p/../../include %s -o - 2>&1 >/dev/null | FileCheck %s2include "llvm/Target/Target.td"3def TestTarget : Target;4 5def lo : SubRegIndex<32, 0>;6def hi : SubRegIndex<32, 32>;7 8// One superreg with two subregs.9def Alo : Register<"">;10def Ahi : Register<"">;11def A : Register<""> {12  let SubRegs = [Alo, Ahi];13  let SubRegIndices = [lo, hi];14}15 16// Same but the subregs alias.17def Blo : Register<"">;18def Bhi : Register<""> {19  let Aliases = [Blo];20}21def B : Register<""> {22  let SubRegs = [Blo, Bhi];23  let SubRegIndices = [lo, hi];24}25 26// Same but the superreg has an alias.27def Clo : Register<"">;28def Chi : Register<"">;29def D : Register<"">;30def C : Register<""> {31  let SubRegs = [Clo, Chi];32  let SubRegIndices = [lo, hi];33  let Aliases = [D];34}35 36def TestRC : RegisterClass<"Test", [i64], 0, (add A, B)>;37 38// CHECK-LABEL: Register A:39// CHECK: SubReg hi = Ahi40// CHECK: SubReg lo = Alo41// CHECK: RegUnit 042// CHECK: RegUnit 143 44// CHECK-LABEL: Register Ahi:45// CHECK: RegUnit 146 47// CHECK-LABEL: Register Alo:48// CHECK: RegUnit 049 50// CHECK-LABEL: Register B:51// CHECK: SubReg hi = Bhi52// CHECK: SubReg lo = Blo53// CHECK: RegUnit 254// CHECK: RegUnit 355// CHECK: RegUnit 456 57// CHECK-LABEL: Register Bhi:58// CHECK: RegUnit 359// CHECK: RegUnit 460 61// CHECK-LABEL: Register Blo:62// CHECK: RegUnit 263// CHECK: RegUnit 364 65// CHECK-LABEL: Register C:66// CHECK: SubReg hi = Chi67// CHECK: SubReg lo = Clo68// CHECK: RegUnit 569// CHECK: RegUnit 670// CHECK: RegUnit 771 72// CHECK-LABEL: Register Chi:73// CHECK: RegUnit 674 75// CHECK-LABEL: Register Clo:76// CHECK: RegUnit 577 78// CHECK-LABEL: Register D:79// CHECK: RegUnit 780// CHECK: RegUnit 881