87 lines · plain
1// RUN: llvm-tblgen %s | FileCheck %s2 3class Register<string name, int idx> {4 string Name = name;5 int Index = idx;6}7 8// CHECK-NOT: !strconcat9 10foreach i = 0...3 in11 def Q#i : Register<"Q"#i, i>;12 13// CHECK: def Q014// CHECK: def Q115// CHECK: def Q216// CHECK: def Q317 18foreach i = [0, 1, 2, 3, 4, 5, 6, 7] in19 def R#i : Register<"R"#i, i>;20 21// CHECK: def R022// CHECK: string Name = "R0";23// CHECK: int Index = 0;24 25// CHECK: def R126// CHECK: string Name = "R1";27// CHECK: int Index = 1;28 29// CHECK: def R230// CHECK: string Name = "R2";31// CHECK: int Index = 2;32 33// CHECK: def R334// CHECK: string Name = "R3";35// CHECK: int Index = 3;36 37// CHECK: def R438// CHECK: string Name = "R4";39// CHECK: int Index = 4;40 41// CHECK: def R542// CHECK: string Name = "R5";43// CHECK: int Index = 5;44 45// CHECK: def R646// CHECK: string Name = "R6";47// CHECK: int Index = 6;48 49// CHECK: def R750// CHECK: string Name = "R7";51// CHECK: int Index = 7;52 53foreach i = {0...3,9...7} in {54 def S#i : Register<"Q"#i, i>;55 def : Register<"T"#i, i>;56}57 58// CHECK: def S059// CHECK: def S160// CHECK: def S261// CHECK: def S362// CHECK: def S763// CHECK: def S864// CHECK: def S965 66// CHECK: def67// CHECK: string Name = "T0";68 69// CHECK: def70// CHECK: string Name = "T1";71 72// CHECK: def73// CHECK: string Name = "T2";74 75// CHECK: def76// CHECK: string Name = "T3";77 78// CHECK: def79// CHECK: string Name = "T9";80 81// CHECK: def82// CHECK: string Name = "T8";83 84// CHECK: def85// CHECK: string Name = "T7";86 87