X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FTableGen%2FSlice.td;h=7a35d315c5d859ebb8d5bc08b0c63e9ac161eabb;hb=fc699872e35ec794d7373680be6f1946fe8e9ca6;hp=22bf7fbfe8cf3fdd3415dbade3bf59534ac4fdef;hpb=32989deb9641cf3878686b5634311a7a125f8f02;p=oota-llvm.git diff --git a/test/TableGen/Slice.td b/test/TableGen/Slice.td index 22bf7fbfe8c..7a35d315c5d 100644 --- a/test/TableGen/Slice.td +++ b/test/TableGen/Slice.td @@ -1,6 +1,4 @@ -// RUN: tblgen %s | grep {\\\[(set} | count 2 -// RUN: tblgen %s | grep {\\\[\\\]} | count 2 -// XFAIL: vg_leak +// RUN: llvm-tblgen %s | FileCheck %s class ValueType { int Size = size; @@ -66,19 +64,19 @@ def not : SDNode; multiclass scalar opcode, string asmstr = "", list> patterns = []> { def SSrr : Inst,patterns[0])>; + !if(!empty(patterns),[],patterns[0])>; def SSrm : Inst,!if(!null(!cdr(patterns)),patterns[0],patterns[1]))>; + !if(!empty(patterns),[],!if(!empty(!tail(patterns)),patterns[0],patterns[1]))>; } multiclass vscalar opcode, string asmstr = "", list> patterns = []> { def V#NAME#SSrr : Inst,patterns[0])>; + !if(!empty(patterns),[],patterns[0])>; def V#NAME#SSrm : Inst,!if(!null(!cdr(patterns)),patterns[0],patterns[1]))>; + !if(!empty(patterns),[],!if(!empty(!tail(patterns)),patterns[0],patterns[1]))>; } multiclass myscalar opcode, string asmstr = "", list> patterns = []> : @@ -86,3 +84,8 @@ multiclass myscalar opcode, string asmstr = "", list> patterns vscalar; defm NOT : myscalar<0x10, "not", [[], [(set FR32:$dst, (f32 (not FR32:$src)))]]>; + +// CHECK: Pattern = [(set FR32:$dst, (f32 (not FR32:$src)))]; +// CHECK: Pattern = []; +// CHECK: Pattern = [(set FR32:$dst, (f32 (not FR32:$src)))]; +// CHECK: Pattern = [];