238 lines · plain
1// RUN: mlir-opt %s -split-input-file -verify-diagnostics2 3// -----4// Invalid type.5// expected-error@+1 {{unknown quantized type foobar}}6!qalias = !quant.foobar7 8// -----9// Unrecognized token: illegal token10// expected-error@+1 {{unknown quantized type __}}11!qalias = !quant.__12 13// -----14// Unrecognized token: trailing15// expected-error@+1 {{expected '>'}}16!qalias = !quant.uniform<i8<-4:3>:f32, 0.99872:127 23>17 18// -----19// Unrecognized token: missing storage type maximum20// expected-error@+1 {{expected ':'}}21!qalias = !quant.uniform<i8<16>:f32, 0.99872:127>22 23// -----24// Unrecognized token: missing closing angle bracket25// expected-error@+1 {{unbalanced '<' character in pretty dialect name}}26!qalias = !quant<uniform<i8<-4:3:f32, 0.99872:127>>27 28// -----29// Unrecognized token: missing type colon30// expected-error@+1 {{expected ':'}}31!qalias = !quant.uniform<i8<-4:3>f32, 0.99872:127>32 33// -----34// Unrecognized token: missing comma35// expected-error@+1 {{expected ','}}36!qalias = !quant.uniform<i8<-4:3>:f32 0.99872:127>37 38// -----39// Unrecognized storage type: illegal prefix40// expected-error@+1 {{illegal storage type prefix}}41!qalias = !quant.uniform<int8<-4:3>:f32, 0.99872:127>42 43// -----44// Unrecognized storage type: no width45// expected-error@+1 {{illegal storage type prefix}}46!qalias = !quant.uniform<i<-4:3>:f32, 0.99872:127>47 48// -----49// Unrecognized storage type: storage size > 3250// expected-error@+1 {{illegal storage type size: 33}}51!qalias = !quant.uniform<i33:f32, 0.99872:127>52 53// -----54// Unrecognized storage type: storage size < 055// expected-error@+1 {{illegal storage type prefix}}56!qalias = !quant.uniform<i-1<-4:3>:f32, 0.99872:127>57 58// -----59// Unrecognized storage type: storage size60// expected-error@+1 {{invalid integer width}}61!qalias = !quant.uniform<i123123123120<-4:3>:f32, 0.99872:127>62 63// -----64// Illegal storage min/max: max - min < 065// expected-error@+1 {{illegal storage min and storage max: (2:1)}}66!qalias = !quant.uniform<i8<2:1>:f32, 0.99872:127>67 68// -----69// Illegal storage min/max: max - min == 070// expected-error@+1 {{illegal storage min and storage max: (1:1)}}71!qalias = !quant.uniform<i8<1:1>:f32, 0.99872:127>72 73// -----74// Illegal storage min/max: max > defaultMax75// expected-error@+1 {{illegal storage type maximum: 9}}76!qalias = !quant.uniform<i4<-1:9>:f32, 0.99872:127>77 78// -----79// Illegal storage min/max: min < defaultMin80// expected-error@+1 {{illegal storage type minimum: -9}}81!qalias = !quant.uniform<i4<-9:1>:f32, 0.99872:127>82 83// -----84// Illegal uniform params: invalid scale85// expected-error@+1 {{expected floating point literal}}86!qalias = !quant.uniform<i8<-4:3>:f32, abc:127>87 88// -----89// Illegal uniform params: invalid zero point separator90// expected-error@+1 {{expected '>'}}91!qalias = !quant.uniform<i8<-4:3>:f32, 0.1abc>92 93// -----94// Illegal uniform params: missing zero point95// expected-error@+1 {{expected integer value}}96!qalias = !quant.uniform<i8<-4:3>:f32, 0.1:>97 98// -----99// Illegal uniform params: invalid zero point100// expected-error@+1 {{expected integer value}}101!qalias = !quant.uniform<i8<-4:3>:f32, 0.1:abc>102 103// -----104// Illegal expressed type: f33105// expected-error@+1 {{expected non-function type}}106!qalias = !quant.uniform<i8<-4:3>:f33, 0.99872:127>107 108// -----109// Illegal scale: negative110// expected-error@+1 {{scale -1.000000e+00 out of expressed type range}}111!qalias = !quant.uniform<i8<-4:3>:f32, -1.0:127>112 113// -----114// Illegal uniform params: missing quantized dimension115// expected-error@+1 {{expected integer value}}116!qalias = !quant.uniform<i8<-4:3>:f32:, {2.000000e+02:-19.987200e-01:1}>117 118// -----119// Illegal uniform params: unspecified quantized dimension, when multiple scales120// provided.121// expected-error@+1 {{expected floating point literal}}122!qalias = !quant.uniform<i8<-4:3>:f32, {2.000000e+02,-19.987200e-01:1}>123 124// -----125// Illegal negative axis in per-axis quantization126// expected-error@+1 {{illegal quantized dimension: -1}}127!qalias = !quant.uniform<i8:f32:-1, {2.0,3.0:1}>128 129// -----130// Scale f16 underflow131// expected-error@+1 {{scale 5.800000e-08 out of expressed type range}}132!qalias = !quant.uniform<i8:f16, 5.8e-8>133 134// -----135// Scale f16 overflow136// expected-error@+1 {{scale 6.600000e+04 out of expressed type range}}137!qalias = !quant.uniform<i8:f16, 6.6e4>138 139// -----140// Scale f16 underflow in per-axis quantization141// expected-error@+1 {{scale 5.800000e-08 out of expressed type range}}142!qalias = !quant.uniform<i8:f16:1, {2.0,5.8e-8}>143 144// -----145// Scale f16 overflow in per-axis quantization146// expected-error@+1 {{scale 6.600000e+04 out of expressed type range}}147!qalias = !quant.uniform<i8:f16:1, {2.0,6.6e4}>148 149// -----150// Illegal negative axis in sub-channel quantization151// expected-error@+1 {{illegal quantized dimension: -1}}152!qalias = !quant.uniform<u8:f32:{0:1,-1:2},153 {{2.000000e+02:120,9.987200e-01:127}, {2.000000e+02,9.987200e-01}}>154 155// -----156// Illegal zero block-size in sub-channel quantization157// expected-error@+1 {{illegal block size: 0}}158!qalias = !quant.uniform<u8:f32:{0:0,1:2},159 {{2.000000e+02:120,9.987200e-01:127}, {2.000000e+02,9.987200e-01}}>160 161// -----162// Illegal negative block-size in sub-channel quantization163// expected-error@+1 {{illegal block size: -1}}164!qalias = !quant.uniform<u8:f32:{0:-1,1:2},165 {{2.000000e+02:120,9.987200e-01:127}, {2.000000e+02,9.987200e-01}}>166 167// -----168// Missing block size in sub-channel quantization169// expected-error@+1 {{expected ':'}}170!qalias = !quant.uniform<u8:f32:{0,1:2},171 {{2.000000e+02:120,9.987200e-01:127}, {2.000000e+02,9.987200e-01}}>172 173// -----174// Missing quantization dimension in sub-channel quantization175// expected-error@+1 {{expected integer value}}176!qalias = !quant.uniform<u8:f32:{:1,1:2},177 {{2.000000e+02:120,9.987200e-01:127}, {2.000000e+02,9.987200e-01}}>178 179// -----180// Invalid tensor literal structure in sub-channel quantization181// expected-error@+2 {{expected '>'}}182!qalias = !quant.uniform<u8:f32:{0:1,1:2},183 {2.000000e+02:120,9.987200e-01:127}, {2.000000e+02,9.987200e-01}>184 185// -----186// Ragged tensor literal in sub-channel quantization187// expected-error@+2 {{ranks are not consistent between elements}}188!qalias = !quant.uniform<u8:f32:{0:1,1:2},189 {{2.000000e+02:120,9.987200e-01:127}, {2.000000e+02}}>190 191// -----192// Missing braces around block-size information in sub-channel quantization193// expected-error@+1 {{expected ','}}194!qalias = !quant.uniform<u8:f32:0:1,1:2,195 {{2.000000e+02:120,9.987200e-01:127}, {2.000000e+02,9.987200e-01}}>196 197// -----198// Missing right-brace around block-size information in sub-channel quantization199// expected-error@+1 {{unbalanced '{' character}}200!qalias = !quant.uniform<u8:f32:{0:1,1:2,201 {{2.000000e+02:120,9.987200e-01:127}, {2.000000e+02,9.987200e-01}}>202 203// -----204// Missing left-brace around block-size information in sub-channel quantization205// expected-error@+1 {{unbalanced '<' character}}206!qalias = !quant.uniform<u8:f32:0:1,1:2},207 {{2.000000e+02:120,9.987200e-01:127}, {2.000000e+02,9.987200e-01}}>208 209// -----210// Missing Axis:BlockSize pair211// expected-error@+1 {{expected integer value}}212!qalias = !quant.uniform<u8:f32:{0:1,},213 {{2.000000e+02:120,9.987200e-01:127}, {2.000000e+02,9.987200e-01}}>214 215// -----216// Missing Scale:ZeroPoint pair217// expected-error@+2 {{expected floating point literal}}218!qalias = !quant.uniform<u8:f32:{0:1,1:2},219 {{2.000000e+02:120,9.987200e-01:127}, {2.000000e+02,}}>220 221// -----222// Missing ZeroPoint in Scale:ZeroPoint pair223// expected-error@+2 {{expected integer value}}224!qalias = !quant.uniform<u8:f32:{0:1,1:2},225 {{2.000000e+02:120,9.987200e-01:127}, {2.000000e+02,9.987200e-01:}}>226 227// -----228// Empty quantization paramaters in sub-channel quantization229// expected-error@+1 {{expected floating point literal}}230!qalias = !quant.uniform<u8:f32:{0:1, 1:2}, {}>231 232// -----233// Scale out of expressed type range in sub-channel quantization234// expected-error@+2 {{scale 6.600000e+04 out of expressed type range}}235!qalias = !quant.uniform<i8:f16:{0:1,1:2},236 {{6.6e4:120,9.987200e-01:127}, {2.000000e+02:256,9.987200e-01}}>237 238