72 lines · plain
1// RUN: llvm-tblgen %s | FileCheck %s2// XFAIL: vg_leak3 4defvar LongList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];5defvar EmptyStr = "";6 7// Test !empty(dag).8 9// CHECK: def Drec1 {10// CHECK: bit Empty = 1;11// CHECK: bit NotEmpty = 0;12// CHECK: def Drec2 {13// CHECK: bit Empty = 0;14// CHECK: bit NotEmpty = 1;15// CHECK: def Drec3 {16// CHECK: bit Empty = 0;17// CHECK: bit NotEmpty = 1;18 19class D<dag ADag> {20 bit Empty = !empty(ADag);21 bit NotEmpty = !not(!empty(ADag));22}23 24def op;25 26def Drec1 : D<(op)>;27def Drec2 : D<(op "string")>;28def Drec3 : D<(op "string", 42)>;29 30// Test !empty(list).31 32// CHECK: def Lrec1 {33// CHECK: bit Empty = 1;34// CHECK: bit NotEmpty = 0;35// CHECK: def Lrec2 {36// CHECK: bit Empty = 0;37// CHECK: bit NotEmpty = 1;38// CHECK: def Lrec3 {39// CHECK: bit Empty = 0;40// CHECK: bit NotEmpty = 1;41 42class L<list<int> Ints> {43 bit Empty = !empty(Ints);44 bit NotEmpty = !not(!empty(Ints));45}46 47def Lrec1 : L<[]>;48def Lrec2 : L<[1]>;49def Lrec3 : L<LongList>;50 51// Test !empty(string).52 53// CHECK: def Srec1 {54// CHECK: bit Empty = 1;55// CHECK: bit NotEmpty = 0;56// CHECK: def Srec2 {57// CHECK: bit Empty = 0;58// CHECK: bit NotEmpty = 1;59// CHECK: def Srec3 {60// CHECK: bit Empty = 0;61// CHECK: bit NotEmpty = 1;62 63class S<string Str> {64 bit Empty = !empty(Str);65 bit NotEmpty = !not(!empty(Str));66}67 68def Srec1 : S<EmptyStr>;69def Srec2 : S<"a">;70def Srec3 : S<"ab">;71 72