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 Workerclass Type<string name, int length, int width> { 5*9880d681SAndroid Build Coastguard Worker string Name = name; 6*9880d681SAndroid Build Coastguard Worker int Length = length; 7*9880d681SAndroid Build Coastguard Worker int Width = width; 8*9880d681SAndroid Build Coastguard Worker} 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workermulticlass OT1<string ss, int l, int w> { 11*9880d681SAndroid Build Coastguard Worker def _#NAME# : Type<ss, l, w>; 12*9880d681SAndroid Build Coastguard Worker} 13*9880d681SAndroid Build Coastguard Workermulticlass OT2<string ss, int w> { 14*9880d681SAndroid Build Coastguard Worker defm v1#NAME# : OT1<!strconcat( "v1", ss), 1, w>; 15*9880d681SAndroid Build Coastguard Worker defm v2#NAME# : OT1<!strconcat( "v2", ss), 2, w>; 16*9880d681SAndroid Build Coastguard Worker defm v3#NAME# : OT1<!strconcat( "v3", ss), 3, w>; 17*9880d681SAndroid Build Coastguard Worker defm v4#NAME# : OT1<!strconcat( "v4", ss), 4, w>; 18*9880d681SAndroid Build Coastguard Worker defm v8#NAME# : OT1<!strconcat( "v8", ss), 8, w>; 19*9880d681SAndroid Build Coastguard Worker defm v16#NAME# : OT1<!strconcat("v16", ss), 16, w>; 20*9880d681SAndroid Build Coastguard Worker} 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerdefm i8 : OT2<"i8", 8>; 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workermulticlass OT3<string ss, int w> { 25*9880d681SAndroid Build Coastguard Worker defm v32#NAME : OT1<!strconcat("v32", ss), 32, w>; 26*9880d681SAndroid Build Coastguard Worker} 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workermulticlass OT4<string ss, int w> { 29*9880d681SAndroid Build Coastguard Worker defm v64#NAME : OT1<!strconcat("v64", ss), 64, w>; 30*9880d681SAndroid Build Coastguard Worker} 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workermulticlass OT5<string ss, int w> { 33*9880d681SAndroid Build Coastguard Worker defm NAME : OT3<ss, w>; 34*9880d681SAndroid Build Coastguard Worker defm NAME : OT4<ss, w>; 35*9880d681SAndroid Build Coastguard Worker} 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerdefm i16 : OT5<"i16", 16>; 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Worker// CHECK: _v16i8 40*9880d681SAndroid Build Coastguard Worker// CHECK: Length = 16 41*9880d681SAndroid Build Coastguard Worker// CHECK: Width = 8 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker// CHECK: _v1i8 44*9880d681SAndroid Build Coastguard Worker// CHECK: Length = 1 45*9880d681SAndroid Build Coastguard Worker// CHECK: Width = 8 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Worker// CHECK: _v2i8 48*9880d681SAndroid Build Coastguard Worker// CHECK: Length = 2 49*9880d681SAndroid Build Coastguard Worker// CHECK: Width = 8 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Worker// CHECK: def _v32i16 52*9880d681SAndroid Build Coastguard Worker// CHECK: Length = 32 53*9880d681SAndroid Build Coastguard Worker// CHECK: Width = 16 54*9880d681SAndroid Build Coastguard Worker 55*9880d681SAndroid Build Coastguard Worker// CHECK: _v3i8 56*9880d681SAndroid Build Coastguard Worker// CHECK: Length = 3 57*9880d681SAndroid Build Coastguard Worker// CHECK: Width = 8 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Worker// CHECK: _v4i8 60*9880d681SAndroid Build Coastguard Worker// CHECK: Length = 4 61*9880d681SAndroid Build Coastguard Worker// CHECK: Width = 8 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Worker// CHECK: _v64i16 64*9880d681SAndroid Build Coastguard Worker// CHECK: Length = 64 65*9880d681SAndroid Build Coastguard Worker// CHECK: Width = 16 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Worker// CHECK: _v8i8 68*9880d681SAndroid Build Coastguard Worker// CHECK: Length = 8 69*9880d681SAndroid Build Coastguard Worker// CHECK: Width = 8 70*9880d681SAndroid Build Coastguard Worker 71