xref: /llvm-project/llvm/test/TableGen/arithmetic.td (revision 9d72065cf6e0d02f748671d872d891f36ceda257)
1// RUN: llvm-tblgen %s | FileCheck %s
2// XFAIL: vg_leak
3
4// CHECK: --- Defs ---
5
6// CHECK: def A0 {
7// CHECK:   bits<8> add = { 0, 0, 0, 1, 1, 0, 0, 0 };
8// CHECK:   bits<8> sub = { 0, 0, 0, 1, 0, 0, 1, 0 };
9// CHECK:   bits<8> and = { 0, 0, 0, 0, 0, 0, 0, 1 };
10// CHECK:   bits<8> or = { 0, 0, 0, 1, 0, 1, 1, 1 };
11// CHECK:   bits<8> xor = { 0, 0, 0, 1, 0, 1, 1, 0 };
12// CHECK:   bits<8> srl = { 0, 0, 0, 0, 0, 0, 1, 0 };
13// CHECK:   bits<8> sra = { 0, 0, 0, 0, 0, 0, 1, 0 };
14// CHECK:   bits<8> shl = { 1, 0, 1, 0, 1, 0, 0, 0 };
15
16// CHECK:   bits<8> sra = { 1, 1, 1, 1, 1, 1, 1, 1 };
17
18class A<bits<8> a, bits<2> b> {
19  // Operands of different bits types are allowed.
20  bits<8> add = !add(a, b);
21  bits<8> sub = !sub(a, b);
22  bits<8> and = !and(a, b);
23  bits<8> or =  !or(a, b);
24  bits<8> xor = !xor(a, b);
25  bits<8> srl = !srl(a, b);
26  bits<8> sra = !sra(a, b);
27  bits<8> shl = !shl(a, b);
28}
29
30def A0 : A<21, 3>;
31
32def A1 {
33  bits<8> sra = !sra(-1, 3);
34}
35
36