ForeachList.td 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // RUN: llvm-tblgen %s | FileCheck %s
  2. class Register<string name, int idx> {
  3. string Name = name;
  4. int Index = idx;
  5. }
  6. foreach i = [0, 1, 2, 3, 4, 5, 6, 7] in {
  7. def R#i : Register<"R"#i, i>;
  8. def F#i : Register<"F"#i, i>;
  9. }
  10. // CHECK: def F0
  11. // CHECK: string Name = "F0";
  12. // CHECK: int Index = 0;
  13. // CHECK: def F1
  14. // CHECK: string Name = "F1";
  15. // CHECK: int Index = 1;
  16. // CHECK: def F2
  17. // CHECK: string Name = "F2";
  18. // CHECK: int Index = 2;
  19. // CHECK: def F3
  20. // CHECK: string Name = "F3";
  21. // CHECK: int Index = 3;
  22. // CHECK: def F4
  23. // CHECK: string Name = "F4";
  24. // CHECK: int Index = 4;
  25. // CHECK: def F5
  26. // CHECK: string Name = "F5";
  27. // CHECK: int Index = 5;
  28. // CHECK: def F6
  29. // CHECK: string Name = "F6";
  30. // CHECK: int Index = 6;
  31. // CHECK: def F7
  32. // CHECK: string Name = "F7";
  33. // CHECK: int Index = 7;
  34. // CHECK: def R0
  35. // CHECK: string Name = "R0";
  36. // CHECK: int Index = 0;
  37. // CHECK: def R1
  38. // CHECK: string Name = "R1";
  39. // CHECK: int Index = 1;
  40. // CHECK: def R2
  41. // CHECK: string Name = "R2";
  42. // CHECK: int Index = 2;
  43. // CHECK: def R3
  44. // CHECK: string Name = "R3";
  45. // CHECK: int Index = 3;
  46. // CHECK: def R4
  47. // CHECK: string Name = "R4";
  48. // CHECK: int Index = 4;
  49. // CHECK: def R5
  50. // CHECK: string Name = "R5";
  51. // CHECK: int Index = 5;
  52. // CHECK: def R6
  53. // CHECK: string Name = "R6";
  54. // CHECK: int Index = 6;
  55. // CHECK: def R7
  56. // CHECK: string Name = "R7";
  57. // CHECK: int Index = 7;