brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · f751c27 Raw
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