// RUN: llvm-tblgen %s | FileCheck %s
// XFAIL: vg_leak

// CHECK: def shifts
// CHECK: shifted_b = 8
// CHECK: shifted_i = 8
def shifts {
    bits<2> b = 0b10;
    int i = 2;
    int shifted_b = !shl(b, 2);
    int shifted_i = !shl(i, 2);
}

class Int<int value> {
  int Value = value;
}

def int2 : Int<2>;
def int1022 : Int<1022>;
def int1024 : Int<1024>;

// CHECK: def v0a
// CHECK: Value = 0
def v0a : Int<!sub(int1024.Value, int1024.Value)>;

// CHECK: def v0b
// CHECK: Value = 0
def v0b : Int<!and(int1024.Value, 2048)>;

// CHECK: def v1
// CHECK: Value = 1
def v1 : Int<!and(1025, 1)>;

// CHECK: def v1019
// CHECK: Value = 1019
def v1019 : Int<!sub(int1022.Value, 3)>;

// CHECK: def v1023
// CHECK: Value = 1023
def v1023 : Int<!or(int1022.Value, 1)>;

def v1025   : Int<!add(int1024.Value, 1)>;
// CHECK: def v1025
// CHECK: Value = 1025

// CHECK: def v12
// CHECK: Value = 12
def v12   : Int<!mul(4, 3)>;

// CHECK: def v1a
// CHECK: Value = 1

// CHECK: def v2048
// CHECK: Value = 2048
def v2048   : Int<!add(int1024.Value, int1024.Value)>;

// CHECK: def v3072
// CHECK: Value = 3072
def v3072 : Int<!or(int1024.Value, v2048.Value)>;

// CHECK: def v4
// CHECK: Value = 4

// CHECK: def v7
// CHECK: Value = 7

def v4 : Int<!add(int2.Value, 1, v1.Value)>;
def v7 : Int<!or(v1.Value, int2.Value, v4.Value)>;
def v1a : Int<!and(v7.Value, 5, v1.Value)>;

// CHECK: def v84
// CHECK: Value = 84
def v84   : Int<!mul(v12.Value, v7.Value)>;

// CHECK: def v9
// CHECK: Value = 9
def v9 : Int<!xor(v7.Value, 0x0E)>;

// CHECK: def v924
// CHECK: Value = 924
def v924   : Int<!mul(v84.Value, 11)>;

// CHECK: def v925
// CHECK: Value = 925
def v925 : Int<!sub(v924.Value, -1)>;

// CHECK: def vneg
// CHECK: Value = -2
def vneg : Int<!sub(v925.Value, 927)>;