xref: /aosp_15_r20/external/llvm/test/TableGen/math.td (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-tblgen %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker// XFAIL: vg_leak
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdef shifts {
5*9880d681SAndroid Build Coastguard Worker    bits<2> b = 0b10;
6*9880d681SAndroid Build Coastguard Worker    int i = 2;
7*9880d681SAndroid Build Coastguard Worker    int shifted_b = !shl(b, 2);
8*9880d681SAndroid Build Coastguard Worker    int shifted_i = !shl(i, 2);
9*9880d681SAndroid Build Coastguard Worker}
10*9880d681SAndroid Build Coastguard Worker// CHECK: def shifts
11*9880d681SAndroid Build Coastguard Worker// CHECK: shifted_b = 8
12*9880d681SAndroid Build Coastguard Worker// CHECK: shifted_i = 8
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerclass Int<int value> {
15*9880d681SAndroid Build Coastguard Worker  int Value = value;
16*9880d681SAndroid Build Coastguard Worker}
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker// CHECK: def v0
19*9880d681SAndroid Build Coastguard Worker// CHECK: Value = 0
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker// CHECK: def v1
22*9880d681SAndroid Build Coastguard Worker// CHECK: Value = 1
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Workerdef v1024   : Int<1024>;
25*9880d681SAndroid Build Coastguard Worker// CHECK: def v1024
26*9880d681SAndroid Build Coastguard Worker// CHECK: Value = 1024
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerdef v1025   : Int<!add(v1024.Value, 1)>;
29*9880d681SAndroid Build Coastguard Worker// CHECK: def v1025
30*9880d681SAndroid Build Coastguard Worker// CHECK: Value = 1025
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workerdef v2048   : Int<!add(v1024.Value, v1024.Value)>;
33*9880d681SAndroid Build Coastguard Worker// CHECK: def v2048
34*9880d681SAndroid Build Coastguard Worker// CHECK: Value = 2048
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Workerdef v0 : Int<!and(v1024.Value, v2048.Value)>;
37*9880d681SAndroid Build Coastguard Workerdef v1 : Int<!and(v1025.Value, 1)>;
38