// RUN: llvm-tblgen %s

class ConstantsImpl {
  int Zero = 0;
  int One = 1;
  int Two = 2;
  int Three = 3;
  int Five = 5;
}

def Constants : ConstantsImpl;

// CHECK-DAG: def var_bound_whitespaceA0
// CHECK-DAG: def var_bound_whitespaceA1
// CHECK-DAG: def var_bound_whitespaceA2
foreach Index = Constants.Zero ... Constants.Two in {
  def var_bound_whitespaceA#Index;
}

// CHECK-DAG: def var_bound_whitespaceB0
// CHECK-DAG: def var_bound_whitespaceB1
// CHECK-DAG: def var_bound_whitespaceB2
foreach Index = Constants.Zero...Constants.Two in {
  def var_bounds_whitespaceB#Index;
}

// CHECK-DAG: def var_bound_whitespaceC0
// CHECK-DAG: def var_bound_whitespaceC1
// CHECK-DAG: def var_bound_whitespaceC2
foreach Index = Constants.Zero ...Constants.Two in {
  def var_bounds_whitespaceC#Index;
}

// CHECK-DAG: def var_bound_whitespaceD0
// CHECK-DAG: def var_bound_whitespaceD1
// CHECK-DAG: def var_bound_whitespaceD2
foreach Index = Constants.Zero... Constants.Two in {
  def var_bounds_whitespaceD#Index;
}

// CHECK-DAG: def const_lower_whitespaceA0
// CHECK-DAG: def const_lower_whitespaceA1
// CHECK-DAG: def const_lower_whitespaceA2
foreach Index = 0 ... Constants.Two in {
  def const_lower_whitespaceA#Index;
}

// CHECK-DAG: def const_lower_whitespaceB0
// CHECK-DAG: def const_lower_whitespaceB1
// CHECK-DAG: def const_lower_whitespaceB2
foreach Index = 0...Constants.Two in {
  def const_lower_whitespaceB#Index;
}

// CHECK-DAG: def const_lower_whitespaceC0
// CHECK-DAG: def const_lower_whitespaceC1
// CHECK-DAG: def const_lower_whitespaceC2
foreach Index = 0 ...Constants.Two in {
  def const_lower_whitespaceC#Index;
}

// CHECK-DAG: def const_lower_whitespaceD0
// CHECK-DAG: def const_lower_whitespaceD1
// CHECK-DAG: def const_lower_whitespaceD2
foreach Index = 0... Constants.Two in {
  def const_lower_whitespaceD#Index;
}

// CHECK-DAG: def const_upper_whitespaceA0
// CHECK-DAG: def const_upper_whitespaceA1
// CHECK-DAG: def const_upper_whitespaceA2
foreach Index = Constants.Zero ... 2 in {
  def const_upper_whitespaceA#Index;
}

// CHECK-DAG: def const_upper_whitespaceB0
// CHECK-DAG: def const_upper_whitespaceB1
// CHECK-DAG: def const_upper_whitespaceB2
foreach Index = Constants.Zero...2 in {
  def const_upper_whitespaceB#Index;
}

// CHECK-DAG: def const_upper_whitespaceC0
// CHECK-DAG: def const_upper_whitespaceC1
// CHECK-DAG: def const_upper_whitespaceC2
foreach Index = Constants.Zero ...2 in {
  def const_upper_whitespaceC#Index;
}

// CHECK-DAG: def const_upper_whitespaceD0
// CHECK-DAG: def const_upper_whitespaceD1
// CHECK-DAG: def const_upper_whitespaceD2
foreach Index = Constants.Zero... 2 in {
  def const_upper_whitespaceD#Index;
}

// CHECK-DAG: def multi_rangeA0
// CHECK-DAG: def multi_rangeA1
// CHECK-DAG: def multi_rangeA2
// CHECK-DAG: def multi_rangeA3
foreach Index = {Constants.Zero...Constants.One, Constants.Two...Constants.Three} in {
  def multi_rangeA#Index;
}

// CHECK-DAG: def multi_rangeB0
// CHECK-DAG: def multi_rangeB1
// CHECK-DAG: def multi_rangeB3
// CHECK-DAG: def multi_rangeB4
// CHECK-DAG: def multi_rangeB5
foreach Index = {0...Constants.One, Constants.Three...Constants.Five} in {
  def multi_rangeB#Index;
}

// CHECK-DAG: def multi_rangeC0
// CHECK-DAG: def multi_rangeC1
// CHECK-DAG: def multi_rangeC2
// CHECK-DAG: def multi_rangeC3
foreach Index = {0...Constants.One, 2...Constants.Three} in {
  def multi_rangeC#Index;
}

// CHECK-DAG: def multi_rangeD0
// CHECK-DAG: def multi_rangeD1
// CHECK-DAG: def multi_rangeD2
// CHECK-DAG: def multi_rangeD3
foreach Index = {0...1, Constants.Two...3} in {
  def multi_rangeD#Index;
}
