Created
June 12, 2024 03:50
-
-
Save AmosLewis/5c2ffcbb1ffee040d82313d5944c500c to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #map = affine_map<(d0, d1, d2, d3) -> (0, d1, d2, d3)> | |
| #map1 = affine_map<(d0, d1, d2, d3) -> (d0, d1, d2, d3)> | |
| #map2 = affine_map<(d0) -> (d0)> | |
| #map3 = affine_map<(d0, d1, d2, d3) -> (d1)> | |
| #map4 = affine_map<(d0, d1, d2, d3) -> (d0, d2, d1, d3)> | |
| #map5 = affine_map<(d0, d1, d2, d3) -> (d0, d1, d3, d2)> | |
| #map6 = affine_map<(d0, d1, d2, d3) -> (d0, d1, d2, 0)> | |
| #map7 = affine_map<(d0, d1, d2, d3) -> (0, d1, d2, 0)> | |
| #map8 = affine_map<(d0, d1, d2, d3) -> (d3)> | |
| #map9 = affine_map<(d0, d1, d2, d3) -> (d0, d3, d2, d1)> | |
| #map10 = affine_map<(d0, d1, d2, d3) -> (d0, 0, d2, d3)> | |
| #map11 = affine_map<(d0, d1) -> (d0, d1)> | |
| #map12 = affine_map<(d0, d1) -> (d1, d0)> | |
| #map13 = affine_map<(d0, d1, d2, d3) -> (d2, d3)> | |
| #map14 = affine_map<(d0, d1, d2, d3) -> ()> | |
| #map15 = affine_map<(d0, d1, d2, d3) -> (d1, 0, 0)> | |
| #map16 = affine_map<(d0, d1, d2, d3) -> (0, d1, 0, 0)> | |
| #map17 = affine_map<(d0, d1, d2, d3) -> (0, 0, 0, 0)> | |
| #map18 = affine_map<(d0, d1, d2, d3) -> (0, 0, 0, d3)> | |
| #map19 = affine_map<(d0, d1) -> (0, d1)> | |
| #map20 = affine_map<(d0, d1) -> (d1)> | |
| module { | |
| ml_program.global private mutable @global_seed(dense<0> : tensor<i64>) : tensor<i64> | |
| func.func @torch_jit(%arg0: tensor<1x3x224x224xf32>) -> tensor<1x1000xf32> { | |
| %cst = arith.constant dense_resource<__elided__> : tensor<1000xf32> | |
| %cst_0 = arith.constant -1.280000e+02 : f32 | |
| %cst_1 = arith.constant 1.270000e+02 : f32 | |
| %cst_2 = arith.constant -2.14748365E+9 : f32 | |
| %cst_3 = arith.constant 2.14748365E+9 : f32 | |
| %c0_i64 = arith.constant 0 : i64 | |
| %cst_4 = arith.constant 0.000000e+00 : f32 | |
| %c7 = arith.constant 7 : index | |
| %c0_i32 = arith.constant 0 : i32 | |
| %cst_5 = arith.constant 6.250000e-02 : f32 | |
| %cst_6 = arith.constant 0.001953125 : f32 | |
| %cst_7 = arith.constant 7.812500e-03 : f32 | |
| %cst_8 = arith.constant 1.22070313E-4 : f32 | |
| %cst_9 = arith.constant 1.562500e-02 : f32 | |
| %cst_10 = arith.constant 1.280000e+02 : f32 | |
| %cst_11 = arith.constant 9.99999997E-7 : f32 | |
| %cst_12 = arith.constant 4.8828125E-4 : f32 | |
| %c0_i8 = arith.constant 0 : i8 | |
| %c1 = arith.constant 1 : index | |
| %c62 = arith.constant 62 : index | |
| %c56 = arith.constant 56 : index | |
| %cst_13 = arith.constant 3.125000e-02 : f32 | |
| %cst_14 = arith.constant 2.500000e-01 : f32 | |
| %cst_15 = arith.constant 3.906250e-03 : f32 | |
| %cst_16 = arith.constant 9.765625E-4 : f32 | |
| %cst_17 = arith.constant 1.250000e-01 : f32 | |
| %cst_18 = arith.constant 2.44140625E-4 : f32 | |
| %cst_19 = arith.constant 1.52587891E-5 : f32 | |
| %cst_20 = arith.constant 3.05175781E-5 : f32 | |
| %c34 = arith.constant 34 : index | |
| %c28 = arith.constant 28 : index | |
| %cst_21 = arith.constant 2.560000e+02 : f32 | |
| %cst_22 = arith.constant 7.62939453E-6 : f32 | |
| %c20 = arith.constant 20 : index | |
| %c14 = arith.constant 14 : index | |
| %cst_23 = arith.constant 5.120000e+02 : f32 | |
| %cst_24 = arith.constant 6.10351563E-5 : f32 | |
| %cst_25 = arith.constant 5.000000e-01 : f32 | |
| %c13 = arith.constant 13 : index | |
| %cst_26 = arith.constant 1.024000e+03 : f32 | |
| %c7_i64 = arith.constant 7 : i64 | |
| %cst_27 = arith.constant dense_resource<__elided__> : tensor<1000x1024xf32> | |
| %cst_28 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_29 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_30 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_31 = arith.constant dense_resource<__elided__> : tensor<1024x4096xf32> | |
| %cst_32 = arith.constant dense_resource<__elided__> : tensor<4096xf32> | |
| %cst_33 = arith.constant dense_resource<__elided__> : tensor<4096x1024xf32> | |
| %cst_34 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_35 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_36 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_37 = arith.constant dense_resource<__elided__> : tensor<1024x1x7x7xf32> | |
| %cst_38 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_39 = arith.constant dense_resource<__elided__> : tensor<1024x4096xf32> | |
| %cst_40 = arith.constant dense_resource<__elided__> : tensor<4096xf32> | |
| %cst_41 = arith.constant dense_resource<__elided__> : tensor<4096x1024xf32> | |
| %cst_42 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_43 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_44 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_45 = arith.constant dense_resource<__elided__> : tensor<1024x1x7x7xf32> | |
| %cst_46 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_47 = arith.constant dense_resource<__elided__> : tensor<1024x4096xf32> | |
| %cst_48 = arith.constant dense_resource<__elided__> : tensor<4096xf32> | |
| %cst_49 = arith.constant dense_resource<__elided__> : tensor<4096x1024xf32> | |
| %cst_50 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_51 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_52 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_53 = arith.constant dense_resource<__elided__> : tensor<1024x1x7x7xf32> | |
| %cst_54 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_55 = arith.constant dense_resource<__elided__> : tensor<1024x512x2x2xf32> | |
| %cst_56 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_57 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_58 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_59 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_60 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_61 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_62 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_63 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_64 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_65 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_66 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_67 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_68 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_69 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_70 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_71 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_72 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_73 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_74 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_75 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_76 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_77 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_78 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_79 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_80 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_81 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_82 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_83 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_84 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_85 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_86 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_87 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_88 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_89 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_90 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_91 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_92 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_93 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_94 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_95 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_96 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_97 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_98 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_99 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_100 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_101 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_102 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_103 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_104 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_105 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_106 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_107 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_108 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_109 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_110 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_111 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_112 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_113 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_114 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_115 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_116 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_117 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_118 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_119 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_120 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_121 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_122 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_123 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_124 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_125 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_126 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_127 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_128 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_129 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_130 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_131 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_132 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_133 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_134 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_135 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_136 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_137 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_138 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_139 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_140 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_141 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_142 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_143 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_144 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_145 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_146 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_147 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_148 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_149 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_150 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_151 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_152 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_153 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_154 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_155 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_156 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_157 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_158 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_159 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_160 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_161 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_162 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_163 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_164 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_165 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_166 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_167 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_168 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_169 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_170 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_171 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_172 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_173 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_174 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_175 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_176 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_177 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_178 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_179 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_180 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_181 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_182 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_183 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_184 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_185 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_186 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_187 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_188 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_189 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_190 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_191 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_192 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_193 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_194 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_195 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_196 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_197 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_198 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_199 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_200 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_201 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_202 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_203 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_204 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_205 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_206 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_207 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_208 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_209 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_210 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_211 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_212 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_213 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_214 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_215 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_216 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_217 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_218 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_219 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_220 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_221 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_222 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_223 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_224 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_225 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_226 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_227 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_228 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_229 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_230 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_231 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_232 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_233 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_234 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_235 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_236 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_237 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_238 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_239 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_240 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_241 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_242 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_243 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_244 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_245 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_246 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_247 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_248 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_249 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_250 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_251 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_252 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_253 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_254 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_255 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_256 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_257 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_258 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_259 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_260 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_261 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_262 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_263 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_264 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_265 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_266 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_267 = arith.constant dense_resource<__elided__> : tensor<512x2048xf32> | |
| %cst_268 = arith.constant dense_resource<__elided__> : tensor<2048xf32> | |
| %cst_269 = arith.constant dense_resource<__elided__> : tensor<2048x512xf32> | |
| %cst_270 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_271 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_272 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_273 = arith.constant dense_resource<__elided__> : tensor<512x1x7x7xf32> | |
| %cst_274 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_275 = arith.constant dense_resource<__elided__> : tensor<512x256x2x2xf32> | |
| %cst_276 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_277 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_278 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_279 = arith.constant dense_resource<__elided__> : tensor<256x1024xf32> | |
| %cst_280 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_281 = arith.constant dense_resource<__elided__> : tensor<1024x256xf32> | |
| %cst_282 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_283 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_284 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_285 = arith.constant dense_resource<__elided__> : tensor<256x1x7x7xf32> | |
| %cst_286 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_287 = arith.constant dense_resource<__elided__> : tensor<256x1024xf32> | |
| %cst_288 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_289 = arith.constant dense_resource<__elided__> : tensor<1024x256xf32> | |
| %cst_290 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_291 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_292 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_293 = arith.constant dense_resource<__elided__> : tensor<256x1x7x7xf32> | |
| %cst_294 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_295 = arith.constant dense_resource<__elided__> : tensor<256x1024xf32> | |
| %cst_296 = arith.constant dense_resource<__elided__> : tensor<1024xf32> | |
| %cst_297 = arith.constant dense_resource<__elided__> : tensor<1024x256xf32> | |
| %cst_298 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_299 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_300 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_301 = arith.constant dense_resource<__elided__> : tensor<256x1x7x7xf32> | |
| %cst_302 = arith.constant dense_resource<__elided__> : tensor<256xf32> | |
| %cst_303 = arith.constant dense_resource<__elided__> : tensor<256x128x2x2xf32> | |
| %cst_304 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_305 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_306 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_307 = arith.constant dense_resource<__elided__> : tensor<128x512xf32> | |
| %cst_308 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_309 = arith.constant dense_resource<__elided__> : tensor<512x128xf32> | |
| %cst_310 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_311 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_312 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_313 = arith.constant dense_resource<__elided__> : tensor<128x1x7x7xf32> | |
| %cst_314 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_315 = arith.constant dense_resource<__elided__> : tensor<128x512xf32> | |
| %cst_316 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_317 = arith.constant dense_resource<__elided__> : tensor<512x128xf32> | |
| %cst_318 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_319 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_320 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_321 = arith.constant dense_resource<__elided__> : tensor<128x1x7x7xf32> | |
| %cst_322 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_323 = arith.constant dense_resource<__elided__> : tensor<128x512xf32> | |
| %cst_324 = arith.constant dense_resource<__elided__> : tensor<512xf32> | |
| %cst_325 = arith.constant dense_resource<__elided__> : tensor<512x128xf32> | |
| %cst_326 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_327 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_328 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_329 = arith.constant dense_resource<__elided__> : tensor<128x1x7x7xf32> | |
| %cst_330 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_331 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_332 = arith.constant dense_resource<__elided__> : tensor<128xf32> | |
| %cst_333 = arith.constant dense_resource<__elided__> : tensor<128x3x4x4xf32> | |
| %cst_334 = arith.constant dense_resource<__elided__> : tensor<1024x1x1xf32> | |
| %cst_335 = arith.constant dense_resource<__elided__> : tensor<1024x1x1xf32> | |
| %cst_336 = arith.constant dense_resource<__elided__> : tensor<1024x1x1xf32> | |
| %cst_337 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_338 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_339 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_340 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_341 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_342 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_343 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_344 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_345 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_346 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_347 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_348 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_349 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_350 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_351 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_352 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_353 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_354 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_355 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_356 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_357 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_358 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_359 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_360 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_361 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_362 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_363 = arith.constant dense_resource<__elided__> : tensor<512x1x1xf32> | |
| %cst_364 = arith.constant dense_resource<__elided__> : tensor<256x1x1xf32> | |
| %cst_365 = arith.constant dense_resource<__elided__> : tensor<256x1x1xf32> | |
| %cst_366 = arith.constant dense_resource<__elided__> : tensor<256x1x1xf32> | |
| %cst_367 = arith.constant dense_resource<__elided__> : tensor<128x1x1xf32> | |
| %cst_368 = arith.constant dense_resource<__elided__> : tensor<128x1x1xf32> | |
| %cst_369 = arith.constant dense_resource<__elided__> : tensor<128x1x1xf32> | |
| %cst_370 = arith.constant dense<1.41421354> : tensor<f32> | |
| %cst_371 = arith.constant dense<1.000000e+00> : tensor<f32> | |
| %cst_372 = arith.constant dense<5.000000e-01> : tensor<f32> | |
| %cst_373 = arith.constant dense<1.00488281> : tensor<f32> | |
| %0 = tensor.empty() : tensor<1x3x224x224xi8> | |
| %1 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%arg0 : tensor<1x3x224x224xf32>) outs(%0 : tensor<1x3x224x224xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x3x224x224xi8> | |
| %2 = tensor.empty() : tensor<128x3x4x4xi8> | |
| %3 = linalg.generic {indexing_maps = [#map1, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_333 : tensor<128x3x4x4xf32>) outs(%2 : tensor<128x3x4x4xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128x3x4x4xi8> | |
| %4 = tensor.empty() : tensor<128xi8> | |
| %5 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_332 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %6 = tensor.empty() : tensor<128xf32> | |
| %7 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%5 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %8 = tensor.empty() : tensor<128xi32> | |
| %9 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%7 : tensor<128xf32>) outs(%8 : tensor<128xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_8 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<128xi32> | |
| %10 = tensor.empty() : tensor<1x128x56x56xi32> | |
| %11 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%9 : tensor<128xi32>) outs(%10 : tensor<1x128x56x56xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x128x56x56xi32> | |
| %12 = tensor.empty() : tensor<1x224x224x3xi8> | |
| %transposed = linalg.transpose ins(%1 : tensor<1x3x224x224xi8>) outs(%12 : tensor<1x224x224x3xi8>) permutation = [0, 2, 3, 1] | |
| %13 = tensor.empty() : tensor<4x4x3x128xi8> | |
| %transposed_374 = linalg.transpose ins(%3 : tensor<128x3x4x4xi8>) outs(%13 : tensor<4x4x3x128xi8>) permutation = [2, 3, 1, 0] | |
| %14 = tensor.empty() : tensor<1x56x56x128xi32> | |
| %transposed_375 = linalg.transpose ins(%11 : tensor<1x128x56x56xi32>) outs(%14 : tensor<1x56x56x128xi32>) permutation = [0, 2, 3, 1] | |
| %15 = linalg.conv_2d_nhwc_hwcf_q {dilations = dense<1> : vector<2xi64>, strides = dense<4> : vector<2xi64>} ins(%transposed, %transposed_374, %c0_i64, %c0_i64 : tensor<1x224x224x3xi8>, tensor<4x4x3x128xi8>, i64, i64) outs(%transposed_375 : tensor<1x56x56x128xi32>) -> tensor<1x56x56x128xi32> | |
| %transposed_376 = linalg.transpose ins(%15 : tensor<1x56x56x128xi32>) outs(%10 : tensor<1x128x56x56xi32>) permutation = [0, 3, 1, 2] | |
| %16 = tensor.empty() : tensor<1x128x56x56xf32> | |
| %17 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%transposed_376 : tensor<1x128x56x56xi32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %18 = tensor.empty() : tensor<1x128x56x56xi8> | |
| %19 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%17 : tensor<1x128x56x56xf32>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %20 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%19 : tensor<1x128x56x56xi8>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %21 = tensor.empty() : tensor<1x56x128x56xf32> | |
| %22 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%20 : tensor<1x128x56x56xf32>) outs(%21 : tensor<1x56x128x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x128x56xf32> | |
| %23 = tensor.empty() : tensor<1x56x56x128xf32> | |
| %24 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%22 : tensor<1x56x128x56xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %25 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_331 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %26 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%25 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %27 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_330 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %28 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%27 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %29 = tensor.empty() : tensor<1x56x56x1xf32> | |
| %30 = linalg.fill ins(%cst_4 : f32) outs(%29 : tensor<1x56x56x1xf32>) -> tensor<1x56x56x1xf32> | |
| %31 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%24 : tensor<1x56x56x128xf32>) outs(%30 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %32 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%31 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_10 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %33 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%32 : tensor<1x56x56x1xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %34 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%24, %33 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %35 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%34, %34 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %36 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%35 : tensor<1x56x56x128xf32>) outs(%30 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %37 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%36 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_10 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %38 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%37 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %39 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%38 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %40 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%39 : tensor<1x56x56x1xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %41 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%34, %40 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %42 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%41, %26 : tensor<1x56x56x128xf32>, tensor<128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %43 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%42, %28 : tensor<1x56x56x128xf32>, tensor<128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %44 = tensor.empty() : tensor<1x56x56x128xi8> | |
| %45 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%43 : tensor<1x56x56x128xf32>) outs(%44 : tensor<1x56x56x128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x128xi8> | |
| %46 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%45 : tensor<1x56x56x128xi8>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %47 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%46 : tensor<1x56x56x128xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %48 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%47 : tensor<1x128x56x56xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %49 = tensor.empty() : tensor<128x1x7x7xi8> | |
| %50 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_329 : tensor<128x1x7x7xf32>) outs(%49 : tensor<128x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128x1x7x7xi8> | |
| %51 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_328 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_12 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %52 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%51 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_12 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %53 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%45 : tensor<1x56x56x128xi8>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %54 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%53 : tensor<1x128x56x56xi8>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %55 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%52 : tensor<128xf32>) outs(%8 : tensor<128xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_8 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<128xi32> | |
| %padded = tensor.pad %54 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x128x56x56xi8> to tensor<1x128x62x62xi8> | |
| %cast = tensor.cast %padded : tensor<1x128x62x62xi8> to tensor<?x?x?x?xi8> | |
| %56 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%55 : tensor<128xi32>) outs(%10 : tensor<1x128x56x56xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x128x56x56xi32> | |
| %cast_377 = tensor.cast %56 : tensor<1x128x56x56xi32> to tensor<1x128x?x?xi32> | |
| %expanded = tensor.expand_shape %cast [[0], [1, 2], [3], [4]] output_shape [%c1, 128, %c1, %c62, %c62] : tensor<?x?x?x?xi8> into tensor<?x128x?x?x?xi8> | |
| %expanded_378 = tensor.expand_shape %50 [[0, 1], [2], [3], [4]] output_shape [128, 1, 1, 7, 7] : tensor<128x1x7x7xi8> into tensor<128x1x1x7x7xi8> | |
| %expanded_379 = tensor.expand_shape %cast_377 [[0], [1, 2], [3], [4]] output_shape [1, 128, 1, %c56, %c56] : tensor<1x128x?x?xi32> into tensor<1x128x1x?x?xi32> | |
| %57 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded, %expanded_378, %c0_i64, %c0_i64 : tensor<?x128x?x?x?xi8>, tensor<128x1x1x7x7xi8>, i64, i64) outs(%expanded_379 : tensor<1x128x1x?x?xi32>) -> tensor<1x128x1x?x?xi32> | |
| %collapsed = tensor.collapse_shape %57 [[0], [1, 2], [3], [4]] : tensor<1x128x1x?x?xi32> into tensor<1x128x?x?xi32> | |
| %cast_380 = tensor.cast %collapsed : tensor<1x128x?x?xi32> to tensor<1x128x56x56xi32> | |
| %58 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_380 : tensor<1x128x56x56xi32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %59 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%58 : tensor<1x128x56x56xf32>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %60 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%59 : tensor<1x128x56x56xi8>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %61 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%60 : tensor<1x128x56x56xf32>) outs(%21 : tensor<1x56x128x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x128x56xf32> | |
| %62 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%61 : tensor<1x56x128x56xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %63 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_327 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %64 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%63 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %65 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_326 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %66 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%65 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %67 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%62 : tensor<1x56x56x128xf32>) outs(%30 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %68 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%67 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_10 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %69 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%68 : tensor<1x56x56x1xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %70 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%62, %69 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %71 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%70, %70 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %72 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%71 : tensor<1x56x56x128xf32>) outs(%30 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %73 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%72 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_10 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %74 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%73 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %75 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%74 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %76 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%75 : tensor<1x56x56x1xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %77 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%70, %76 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %78 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%77, %64 : tensor<1x56x56x128xf32>, tensor<128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %79 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%78, %66 : tensor<1x56x56x128xf32>, tensor<128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %80 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%79 : tensor<1x56x56x128xf32>) outs(%44 : tensor<1x56x56x128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_14 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x128xi8> | |
| %81 = tensor.empty() : tensor<512x128xi8> | |
| %82 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_325 : tensor<512x128xf32>) outs(%81 : tensor<512x128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x128xi8> | |
| %83 = tensor.empty() : tensor<512xi8> | |
| %84 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_324 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %85 = tensor.empty() : tensor<512xf32> | |
| %86 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%84 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %87 = tensor.empty() : tensor<128x512xi8> | |
| %88 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%82 : tensor<512x128xi8>) outs(%87 : tensor<128x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<128x512xi8> | |
| %89 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%80 : tensor<1x56x56x128xi8>) outs(%44 : tensor<1x56x56x128xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x56x56x128xi8> | |
| %90 = tensor.empty() : tensor<1x56x128x512xi8> | |
| %91 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%88 : tensor<128x512xi8>) outs(%90 : tensor<1x56x128x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x56x128x512xi8> | |
| %collapsed_381 = tensor.collapse_shape %89 [[0, 1], [2], [3]] : tensor<1x56x56x128xi8> into tensor<56x56x128xi8> | |
| %collapsed_382 = tensor.collapse_shape %91 [[0, 1], [2], [3]] : tensor<1x56x128x512xi8> into tensor<56x128x512xi8> | |
| %92 = tensor.empty() : tensor<56x56x512xi32> | |
| %93 = linalg.fill ins(%c0_i32 : i32) outs(%92 : tensor<56x56x512xi32>) -> tensor<56x56x512xi32> | |
| %94 = linalg.quantized_batch_matmul ins(%collapsed_381, %collapsed_382, %c0_i32, %c0_i32 : tensor<56x56x128xi8>, tensor<56x128x512xi8>, i32, i32) outs(%93 : tensor<56x56x512xi32>) -> tensor<56x56x512xi32> | |
| %expanded_383 = tensor.expand_shape %94 [[0, 1], [2], [3]] output_shape [1, 56, 56, 512] : tensor<56x56x512xi32> into tensor<1x56x56x512xi32> | |
| %95 = tensor.empty() : tensor<1x56x56x512xf32> | |
| %96 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_383 : tensor<1x56x56x512xi32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_16 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %97 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%86, %96 : tensor<512xf32>, tensor<1x56x56x512xf32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %98 = tensor.empty() : tensor<1x56x56x512xi8> | |
| %99 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%97 : tensor<1x56x56x512xf32>) outs(%98 : tensor<1x56x56x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x512xi8> | |
| %100 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%99 : tensor<1x56x56x512xi8>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_17 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %101 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%100, %cst_370 : tensor<1x56x56x512xf32>, tensor<f32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %102 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%101 : tensor<1x56x56x512xf32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %103 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%102, %cst_371 : tensor<1x56x56x512xf32>, tensor<f32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %104 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%100, %103 : tensor<1x56x56x512xf32>, tensor<1x56x56x512xf32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %105 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%104, %cst_372 : tensor<1x56x56x512xf32>, tensor<f32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %106 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%105 : tensor<1x56x56x512xf32>) outs(%98 : tensor<1x56x56x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x512xi8> | |
| %107 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_323 : tensor<128x512xf32>) outs(%87 : tensor<128x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128x512xi8> | |
| %108 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_322 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %109 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%108 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %110 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%107 : tensor<128x512xi8>) outs(%81 : tensor<512x128xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x128xi8> | |
| %111 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%106 : tensor<1x56x56x512xi8>) outs(%98 : tensor<1x56x56x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x56x56x512xi8> | |
| %112 = tensor.empty() : tensor<1x56x512x128xi8> | |
| %113 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%110 : tensor<512x128xi8>) outs(%112 : tensor<1x56x512x128xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x56x512x128xi8> | |
| %collapsed_384 = tensor.collapse_shape %111 [[0, 1], [2], [3]] : tensor<1x56x56x512xi8> into tensor<56x56x512xi8> | |
| %collapsed_385 = tensor.collapse_shape %113 [[0, 1], [2], [3]] : tensor<1x56x512x128xi8> into tensor<56x512x128xi8> | |
| %114 = tensor.empty() : tensor<56x56x128xi32> | |
| %115 = linalg.fill ins(%c0_i32 : i32) outs(%114 : tensor<56x56x128xi32>) -> tensor<56x56x128xi32> | |
| %116 = linalg.quantized_batch_matmul ins(%collapsed_384, %collapsed_385, %c0_i32, %c0_i32 : tensor<56x56x512xi8>, tensor<56x512x128xi8>, i32, i32) outs(%115 : tensor<56x56x128xi32>) -> tensor<56x56x128xi32> | |
| %expanded_386 = tensor.expand_shape %116 [[0, 1], [2], [3]] output_shape [1, 56, 56, 128] : tensor<56x56x128xi32> into tensor<1x56x56x128xi32> | |
| %117 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_386 : tensor<1x56x56x128xi32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %118 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%109, %117 : tensor<128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %119 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%118 : tensor<1x56x56x128xf32>) outs(%44 : tensor<1x56x56x128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x128xi8> | |
| %120 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%119 : tensor<1x56x56x128xi8>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %121 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%120 : tensor<1x56x56x128xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %122 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%121 : tensor<1x128x56x56xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %123 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_369, %122 : tensor<128x1x1xf32>, tensor<1x128x56x56xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %124 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%123 : tensor<1x128x56x56xf32>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %125 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%124 : tensor<1x128x56x56xi8>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %126 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%125, %48 : tensor<1x128x56x56xf32>, tensor<1x128x56x56xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %127 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%126 : tensor<1x128x56x56xf32>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %128 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%127 : tensor<1x128x56x56xi8>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %129 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_321 : tensor<128x1x7x7xf32>) outs(%49 : tensor<128x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128x1x7x7xi8> | |
| %130 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_320 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %131 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%130 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %132 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%131 : tensor<128xf32>) outs(%8 : tensor<128xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_8 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<128xi32> | |
| %padded_387 = tensor.pad %127 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x128x56x56xi8> to tensor<1x128x62x62xi8> | |
| %cast_388 = tensor.cast %padded_387 : tensor<1x128x62x62xi8> to tensor<?x?x?x?xi8> | |
| %133 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%132 : tensor<128xi32>) outs(%10 : tensor<1x128x56x56xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x128x56x56xi32> | |
| %cast_389 = tensor.cast %133 : tensor<1x128x56x56xi32> to tensor<1x128x?x?xi32> | |
| %expanded_390 = tensor.expand_shape %cast_388 [[0], [1, 2], [3], [4]] output_shape [%c1, 128, %c1, %c62, %c62] : tensor<?x?x?x?xi8> into tensor<?x128x?x?x?xi8> | |
| %expanded_391 = tensor.expand_shape %129 [[0, 1], [2], [3], [4]] output_shape [128, 1, 1, 7, 7] : tensor<128x1x7x7xi8> into tensor<128x1x1x7x7xi8> | |
| %expanded_392 = tensor.expand_shape %cast_389 [[0], [1, 2], [3], [4]] output_shape [1, 128, 1, %c56, %c56] : tensor<1x128x?x?xi32> into tensor<1x128x1x?x?xi32> | |
| %134 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_390, %expanded_391, %c0_i64, %c0_i64 : tensor<?x128x?x?x?xi8>, tensor<128x1x1x7x7xi8>, i64, i64) outs(%expanded_392 : tensor<1x128x1x?x?xi32>) -> tensor<1x128x1x?x?xi32> | |
| %collapsed_393 = tensor.collapse_shape %134 [[0], [1, 2], [3], [4]] : tensor<1x128x1x?x?xi32> into tensor<1x128x?x?xi32> | |
| %cast_394 = tensor.cast %collapsed_393 : tensor<1x128x?x?xi32> to tensor<1x128x56x56xi32> | |
| %135 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_394 : tensor<1x128x56x56xi32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %136 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%135 : tensor<1x128x56x56xf32>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %137 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%136 : tensor<1x128x56x56xi8>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %138 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%137 : tensor<1x128x56x56xf32>) outs(%21 : tensor<1x56x128x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x128x56xf32> | |
| %139 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%138 : tensor<1x56x128x56xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %140 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_319 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %141 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%140 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %142 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_318 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %143 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%142 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %144 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%139 : tensor<1x56x56x128xf32>) outs(%30 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %145 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%144 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_10 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %146 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%145 : tensor<1x56x56x1xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %147 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%139, %146 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %148 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%147, %147 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %149 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%148 : tensor<1x56x56x128xf32>) outs(%30 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %150 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%149 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_10 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %151 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%150 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %152 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%151 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %153 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%152 : tensor<1x56x56x1xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %154 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%147, %153 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %155 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%154, %141 : tensor<1x56x56x128xf32>, tensor<128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %156 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%155, %143 : tensor<1x56x56x128xf32>, tensor<128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %157 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%156 : tensor<1x56x56x128xf32>) outs(%44 : tensor<1x56x56x128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x128xi8> | |
| %158 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_317 : tensor<512x128xf32>) outs(%81 : tensor<512x128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x128xi8> | |
| %159 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_316 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %160 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%159 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %161 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%158 : tensor<512x128xi8>) outs(%87 : tensor<128x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<128x512xi8> | |
| %162 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%157 : tensor<1x56x56x128xi8>) outs(%44 : tensor<1x56x56x128xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x56x56x128xi8> | |
| %163 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%161 : tensor<128x512xi8>) outs(%90 : tensor<1x56x128x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x56x128x512xi8> | |
| %collapsed_395 = tensor.collapse_shape %162 [[0, 1], [2], [3]] : tensor<1x56x56x128xi8> into tensor<56x56x128xi8> | |
| %collapsed_396 = tensor.collapse_shape %163 [[0, 1], [2], [3]] : tensor<1x56x128x512xi8> into tensor<56x128x512xi8> | |
| %164 = linalg.quantized_batch_matmul ins(%collapsed_395, %collapsed_396, %c0_i32, %c0_i32 : tensor<56x56x128xi8>, tensor<56x128x512xi8>, i32, i32) outs(%93 : tensor<56x56x512xi32>) -> tensor<56x56x512xi32> | |
| %expanded_397 = tensor.expand_shape %164 [[0, 1], [2], [3]] output_shape [1, 56, 56, 512] : tensor<56x56x512xi32> into tensor<1x56x56x512xi32> | |
| %165 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_397 : tensor<1x56x56x512xi32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %166 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%160, %165 : tensor<512xf32>, tensor<1x56x56x512xf32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %167 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%166 : tensor<1x56x56x512xf32>) outs(%98 : tensor<1x56x56x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x512xi8> | |
| %168 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%167 : tensor<1x56x56x512xi8>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %169 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%168, %cst_370 : tensor<1x56x56x512xf32>, tensor<f32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %170 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%169 : tensor<1x56x56x512xf32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %171 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%170, %cst_371 : tensor<1x56x56x512xf32>, tensor<f32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %172 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%168, %171 : tensor<1x56x56x512xf32>, tensor<1x56x56x512xf32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %173 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%172, %cst_372 : tensor<1x56x56x512xf32>, tensor<f32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %174 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%173 : tensor<1x56x56x512xf32>) outs(%98 : tensor<1x56x56x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x512xi8> | |
| %175 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_315 : tensor<128x512xf32>) outs(%87 : tensor<128x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128x512xi8> | |
| %176 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_314 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %177 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%176 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %178 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%175 : tensor<128x512xi8>) outs(%81 : tensor<512x128xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x128xi8> | |
| %179 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%174 : tensor<1x56x56x512xi8>) outs(%98 : tensor<1x56x56x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x56x56x512xi8> | |
| %180 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%178 : tensor<512x128xi8>) outs(%112 : tensor<1x56x512x128xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x56x512x128xi8> | |
| %collapsed_398 = tensor.collapse_shape %179 [[0, 1], [2], [3]] : tensor<1x56x56x512xi8> into tensor<56x56x512xi8> | |
| %collapsed_399 = tensor.collapse_shape %180 [[0, 1], [2], [3]] : tensor<1x56x512x128xi8> into tensor<56x512x128xi8> | |
| %181 = linalg.quantized_batch_matmul ins(%collapsed_398, %collapsed_399, %c0_i32, %c0_i32 : tensor<56x56x512xi8>, tensor<56x512x128xi8>, i32, i32) outs(%115 : tensor<56x56x128xi32>) -> tensor<56x56x128xi32> | |
| %expanded_400 = tensor.expand_shape %181 [[0, 1], [2], [3]] output_shape [1, 56, 56, 128] : tensor<56x56x128xi32> into tensor<1x56x56x128xi32> | |
| %182 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_400 : tensor<1x56x56x128xi32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %183 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%177, %182 : tensor<128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %184 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%183 : tensor<1x56x56x128xf32>) outs(%44 : tensor<1x56x56x128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x128xi8> | |
| %185 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%184 : tensor<1x56x56x128xi8>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %186 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%185 : tensor<1x56x56x128xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %187 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%186 : tensor<1x128x56x56xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %188 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_368, %187 : tensor<128x1x1xf32>, tensor<1x128x56x56xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %189 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%188 : tensor<1x128x56x56xf32>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %190 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%189 : tensor<1x128x56x56xi8>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %191 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%190, %128 : tensor<1x128x56x56xf32>, tensor<1x128x56x56xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %192 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%191 : tensor<1x128x56x56xf32>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %193 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%192 : tensor<1x128x56x56xi8>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %194 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_313 : tensor<128x1x7x7xf32>) outs(%49 : tensor<128x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128x1x7x7xi8> | |
| %195 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_312 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %196 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%195 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %197 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%196 : tensor<128xf32>) outs(%8 : tensor<128xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_8 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<128xi32> | |
| %padded_401 = tensor.pad %192 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x128x56x56xi8> to tensor<1x128x62x62xi8> | |
| %cast_402 = tensor.cast %padded_401 : tensor<1x128x62x62xi8> to tensor<?x?x?x?xi8> | |
| %198 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%197 : tensor<128xi32>) outs(%10 : tensor<1x128x56x56xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x128x56x56xi32> | |
| %cast_403 = tensor.cast %198 : tensor<1x128x56x56xi32> to tensor<1x128x?x?xi32> | |
| %expanded_404 = tensor.expand_shape %cast_402 [[0], [1, 2], [3], [4]] output_shape [%c1, 128, %c1, %c62, %c62] : tensor<?x?x?x?xi8> into tensor<?x128x?x?x?xi8> | |
| %expanded_405 = tensor.expand_shape %194 [[0, 1], [2], [3], [4]] output_shape [128, 1, 1, 7, 7] : tensor<128x1x7x7xi8> into tensor<128x1x1x7x7xi8> | |
| %expanded_406 = tensor.expand_shape %cast_403 [[0], [1, 2], [3], [4]] output_shape [1, 128, 1, %c56, %c56] : tensor<1x128x?x?xi32> into tensor<1x128x1x?x?xi32> | |
| %199 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_404, %expanded_405, %c0_i64, %c0_i64 : tensor<?x128x?x?x?xi8>, tensor<128x1x1x7x7xi8>, i64, i64) outs(%expanded_406 : tensor<1x128x1x?x?xi32>) -> tensor<1x128x1x?x?xi32> | |
| %collapsed_407 = tensor.collapse_shape %199 [[0], [1, 2], [3], [4]] : tensor<1x128x1x?x?xi32> into tensor<1x128x?x?xi32> | |
| %cast_408 = tensor.cast %collapsed_407 : tensor<1x128x?x?xi32> to tensor<1x128x56x56xi32> | |
| %200 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_408 : tensor<1x128x56x56xi32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %201 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%200 : tensor<1x128x56x56xf32>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %202 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%201 : tensor<1x128x56x56xi8>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %203 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%202 : tensor<1x128x56x56xf32>) outs(%21 : tensor<1x56x128x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x128x56xf32> | |
| %204 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%203 : tensor<1x56x128x56xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %205 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_311 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %206 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%205 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %207 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_310 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %208 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%207 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %209 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%204 : tensor<1x56x56x128xf32>) outs(%30 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %210 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%209 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_10 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %211 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%210 : tensor<1x56x56x1xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %212 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%204, %211 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %213 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%212, %212 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %214 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%213 : tensor<1x56x56x128xf32>) outs(%30 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %215 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%214 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_10 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %216 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%215 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %217 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%216 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %218 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%217 : tensor<1x56x56x1xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %219 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%212, %218 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %220 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%219, %206 : tensor<1x56x56x128xf32>, tensor<128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %221 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%220, %208 : tensor<1x56x56x128xf32>, tensor<128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %222 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%221 : tensor<1x56x56x128xf32>) outs(%44 : tensor<1x56x56x128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x128xi8> | |
| %223 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_309 : tensor<512x128xf32>) outs(%81 : tensor<512x128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x128xi8> | |
| %224 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_308 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %225 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%224 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %226 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%223 : tensor<512x128xi8>) outs(%87 : tensor<128x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<128x512xi8> | |
| %227 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%222 : tensor<1x56x56x128xi8>) outs(%44 : tensor<1x56x56x128xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x56x56x128xi8> | |
| %228 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%226 : tensor<128x512xi8>) outs(%90 : tensor<1x56x128x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x56x128x512xi8> | |
| %collapsed_409 = tensor.collapse_shape %227 [[0, 1], [2], [3]] : tensor<1x56x56x128xi8> into tensor<56x56x128xi8> | |
| %collapsed_410 = tensor.collapse_shape %228 [[0, 1], [2], [3]] : tensor<1x56x128x512xi8> into tensor<56x128x512xi8> | |
| %229 = linalg.quantized_batch_matmul ins(%collapsed_409, %collapsed_410, %c0_i32, %c0_i32 : tensor<56x56x128xi8>, tensor<56x128x512xi8>, i32, i32) outs(%93 : tensor<56x56x512xi32>) -> tensor<56x56x512xi32> | |
| %expanded_411 = tensor.expand_shape %229 [[0, 1], [2], [3]] output_shape [1, 56, 56, 512] : tensor<56x56x512xi32> into tensor<1x56x56x512xi32> | |
| %230 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_411 : tensor<1x56x56x512xi32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %231 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%225, %230 : tensor<512xf32>, tensor<1x56x56x512xf32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %232 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%231 : tensor<1x56x56x512xf32>) outs(%98 : tensor<1x56x56x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x512xi8> | |
| %233 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%232 : tensor<1x56x56x512xi8>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %234 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%233, %cst_370 : tensor<1x56x56x512xf32>, tensor<f32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %235 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%234 : tensor<1x56x56x512xf32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %236 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%235, %cst_371 : tensor<1x56x56x512xf32>, tensor<f32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %237 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%233, %236 : tensor<1x56x56x512xf32>, tensor<1x56x56x512xf32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %238 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%237, %cst_372 : tensor<1x56x56x512xf32>, tensor<f32>) outs(%95 : tensor<1x56x56x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x512xf32> | |
| %239 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%238 : tensor<1x56x56x512xf32>) outs(%98 : tensor<1x56x56x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x512xi8> | |
| %240 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_307 : tensor<128x512xf32>) outs(%87 : tensor<128x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128x512xi8> | |
| %241 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_306 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %242 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%241 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %243 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%240 : tensor<128x512xi8>) outs(%81 : tensor<512x128xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x128xi8> | |
| %244 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%239 : tensor<1x56x56x512xi8>) outs(%98 : tensor<1x56x56x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x56x56x512xi8> | |
| %245 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%243 : tensor<512x128xi8>) outs(%112 : tensor<1x56x512x128xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x56x512x128xi8> | |
| %collapsed_412 = tensor.collapse_shape %244 [[0, 1], [2], [3]] : tensor<1x56x56x512xi8> into tensor<56x56x512xi8> | |
| %collapsed_413 = tensor.collapse_shape %245 [[0, 1], [2], [3]] : tensor<1x56x512x128xi8> into tensor<56x512x128xi8> | |
| %246 = linalg.quantized_batch_matmul ins(%collapsed_412, %collapsed_413, %c0_i32, %c0_i32 : tensor<56x56x512xi8>, tensor<56x512x128xi8>, i32, i32) outs(%115 : tensor<56x56x128xi32>) -> tensor<56x56x128xi32> | |
| %expanded_414 = tensor.expand_shape %246 [[0, 1], [2], [3]] output_shape [1, 56, 56, 128] : tensor<56x56x128xi32> into tensor<1x56x56x128xi32> | |
| %247 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_414 : tensor<1x56x56x128xi32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %248 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%242, %247 : tensor<128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %249 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%248 : tensor<1x56x56x128xf32>) outs(%44 : tensor<1x56x56x128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x128xi8> | |
| %250 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%249 : tensor<1x56x56x128xi8>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %251 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%250 : tensor<1x56x56x128xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %252 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%251 : tensor<1x128x56x56xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %253 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_367, %252 : tensor<128x1x1xf32>, tensor<1x128x56x56xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %254 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%253 : tensor<1x128x56x56xf32>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %255 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%254 : tensor<1x128x56x56xi8>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %256 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%255, %193 : tensor<1x128x56x56xf32>, tensor<1x128x56x56xf32>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %257 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%256 : tensor<1x128x56x56xf32>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %258 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%257 : tensor<1x128x56x56xi8>) outs(%16 : tensor<1x128x56x56xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x128x56x56xf32> | |
| %259 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%258 : tensor<1x128x56x56xf32>) outs(%21 : tensor<1x56x128x56xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x128x56xf32> | |
| %260 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%259 : tensor<1x56x128x56xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %261 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_305 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %262 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%261 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %263 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_304 : tensor<128xf32>) outs(%4 : tensor<128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<128xi8> | |
| %264 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%263 : tensor<128xi8>) outs(%6 : tensor<128xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<128xf32> | |
| %265 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%260 : tensor<1x56x56x128xf32>) outs(%30 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %266 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%265 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_10 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %267 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%266 : tensor<1x56x56x1xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %268 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%260, %267 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %269 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%268, %268 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %270 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%269 : tensor<1x56x56x128xf32>) outs(%30 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %271 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%270 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_10 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %272 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%271 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %273 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%272 : tensor<1x56x56x1xf32>) outs(%29 : tensor<1x56x56x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x1xf32> | |
| %274 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%273 : tensor<1x56x56x1xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %275 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%268, %274 : tensor<1x56x56x128xf32>, tensor<1x56x56x128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %276 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%275, %262 : tensor<1x56x56x128xf32>, tensor<128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %277 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%276, %264 : tensor<1x56x56x128xf32>, tensor<128xf32>) outs(%23 : tensor<1x56x56x128xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x56x56x128xf32> | |
| %278 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%277 : tensor<1x56x56x128xf32>) outs(%44 : tensor<1x56x56x128xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x56x56x128xi8> | |
| %279 = tensor.empty() : tensor<256x128x2x2xi8> | |
| %280 = linalg.generic {indexing_maps = [#map1, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_303 : tensor<256x128x2x2xf32>) outs(%279 : tensor<256x128x2x2xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256x128x2x2xi8> | |
| %281 = tensor.empty() : tensor<256xi8> | |
| %282 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_302 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %283 = tensor.empty() : tensor<256xf32> | |
| %284 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%282 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %285 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%278 : tensor<1x56x56x128xi8>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %286 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%285 : tensor<1x128x56x56xi8>) outs(%18 : tensor<1x128x56x56xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x128x56x56xi8> | |
| %287 = tensor.empty() : tensor<256xi32> | |
| %288 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%284 : tensor<256xf32>) outs(%287 : tensor<256xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_19 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<256xi32> | |
| %289 = tensor.empty() : tensor<1x256x28x28xi32> | |
| %290 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%288 : tensor<256xi32>) outs(%289 : tensor<1x256x28x28xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x256x28x28xi32> | |
| %transposed_415 = linalg.transpose ins(%286 : tensor<1x128x56x56xi8>) outs(%44 : tensor<1x56x56x128xi8>) permutation = [0, 2, 3, 1] | |
| %291 = tensor.empty() : tensor<2x2x128x256xi8> | |
| %transposed_416 = linalg.transpose ins(%280 : tensor<256x128x2x2xi8>) outs(%291 : tensor<2x2x128x256xi8>) permutation = [2, 3, 1, 0] | |
| %292 = tensor.empty() : tensor<1x28x28x256xi32> | |
| %transposed_417 = linalg.transpose ins(%290 : tensor<1x256x28x28xi32>) outs(%292 : tensor<1x28x28x256xi32>) permutation = [0, 2, 3, 1] | |
| %293 = linalg.conv_2d_nhwc_hwcf_q {dilations = dense<1> : vector<2xi64>, strides = dense<2> : vector<2xi64>} ins(%transposed_415, %transposed_416, %c0_i64, %c0_i64 : tensor<1x56x56x128xi8>, tensor<2x2x128x256xi8>, i64, i64) outs(%transposed_417 : tensor<1x28x28x256xi32>) -> tensor<1x28x28x256xi32> | |
| %transposed_418 = linalg.transpose ins(%293 : tensor<1x28x28x256xi32>) outs(%289 : tensor<1x256x28x28xi32>) permutation = [0, 3, 1, 2] | |
| %294 = tensor.empty() : tensor<1x256x28x28xf32> | |
| %295 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%transposed_418 : tensor<1x256x28x28xi32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_19 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %296 = tensor.empty() : tensor<1x256x28x28xi8> | |
| %297 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%295 : tensor<1x256x28x28xf32>) outs(%296 : tensor<1x256x28x28xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x256x28x28xi8> | |
| %298 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%297 : tensor<1x256x28x28xi8>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %299 = tensor.empty() : tensor<256x1x7x7xi8> | |
| %300 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_301 : tensor<256x1x7x7xf32>) outs(%299 : tensor<256x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256x1x7x7xi8> | |
| %301 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_300 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %302 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%301 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %303 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%302 : tensor<256xf32>) outs(%287 : tensor<256xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_20 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<256xi32> | |
| %padded_419 = tensor.pad %297 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x256x28x28xi8> to tensor<1x256x34x34xi8> | |
| %cast_420 = tensor.cast %padded_419 : tensor<1x256x34x34xi8> to tensor<?x?x?x?xi8> | |
| %304 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%303 : tensor<256xi32>) outs(%289 : tensor<1x256x28x28xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x256x28x28xi32> | |
| %cast_421 = tensor.cast %304 : tensor<1x256x28x28xi32> to tensor<1x256x?x?xi32> | |
| %expanded_422 = tensor.expand_shape %cast_420 [[0], [1, 2], [3], [4]] output_shape [%c1, 256, %c1, %c34, %c34] : tensor<?x?x?x?xi8> into tensor<?x256x?x?x?xi8> | |
| %expanded_423 = tensor.expand_shape %300 [[0, 1], [2], [3], [4]] output_shape [256, 1, 1, 7, 7] : tensor<256x1x7x7xi8> into tensor<256x1x1x7x7xi8> | |
| %expanded_424 = tensor.expand_shape %cast_421 [[0], [1, 2], [3], [4]] output_shape [1, 256, 1, %c28, %c28] : tensor<1x256x?x?xi32> into tensor<1x256x1x?x?xi32> | |
| %305 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_422, %expanded_423, %c0_i64, %c0_i64 : tensor<?x256x?x?x?xi8>, tensor<256x1x1x7x7xi8>, i64, i64) outs(%expanded_424 : tensor<1x256x1x?x?xi32>) -> tensor<1x256x1x?x?xi32> | |
| %collapsed_425 = tensor.collapse_shape %305 [[0], [1, 2], [3], [4]] : tensor<1x256x1x?x?xi32> into tensor<1x256x?x?xi32> | |
| %cast_426 = tensor.cast %collapsed_425 : tensor<1x256x?x?xi32> to tensor<1x256x28x28xi32> | |
| %306 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_426 : tensor<1x256x28x28xi32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_20 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %307 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%306 : tensor<1x256x28x28xf32>) outs(%296 : tensor<1x256x28x28xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x256x28x28xi8> | |
| %308 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%307 : tensor<1x256x28x28xi8>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %309 = tensor.empty() : tensor<1x28x256x28xf32> | |
| %310 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%308 : tensor<1x256x28x28xf32>) outs(%309 : tensor<1x28x256x28xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x256x28xf32> | |
| %311 = tensor.empty() : tensor<1x28x28x256xf32> | |
| %312 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%310 : tensor<1x28x256x28xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %313 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_299 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %314 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%313 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %315 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_298 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %316 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%315 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %317 = tensor.empty() : tensor<1x28x28x1xf32> | |
| %318 = linalg.fill ins(%cst_4 : f32) outs(%317 : tensor<1x28x28x1xf32>) -> tensor<1x28x28x1xf32> | |
| %319 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%312 : tensor<1x28x28x256xf32>) outs(%318 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %320 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%319 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_21 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %321 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%320 : tensor<1x28x28x1xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %322 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%312, %321 : tensor<1x28x28x256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %323 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%322, %322 : tensor<1x28x28x256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %324 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%323 : tensor<1x28x28x256xf32>) outs(%318 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %325 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%324 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_21 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %326 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%325 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %327 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%326 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %328 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%327 : tensor<1x28x28x1xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %329 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%322, %328 : tensor<1x28x28x256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %330 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%329, %314 : tensor<1x28x28x256xf32>, tensor<256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %331 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%330, %316 : tensor<1x28x28x256xf32>, tensor<256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %332 = tensor.empty() : tensor<1x28x28x256xi8> | |
| %333 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%331 : tensor<1x28x28x256xf32>) outs(%332 : tensor<1x28x28x256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x256xi8> | |
| %334 = tensor.empty() : tensor<1024x256xi8> | |
| %335 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_297 : tensor<1024x256xf32>) outs(%334 : tensor<1024x256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1024x256xi8> | |
| %336 = tensor.empty() : tensor<1024xi8> | |
| %337 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_296 : tensor<1024xf32>) outs(%336 : tensor<1024xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1024xi8> | |
| %338 = tensor.empty() : tensor<1024xf32> | |
| %339 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%337 : tensor<1024xi8>) outs(%338 : tensor<1024xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1024xf32> | |
| %340 = tensor.empty() : tensor<256x1024xi8> | |
| %341 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%335 : tensor<1024x256xi8>) outs(%340 : tensor<256x1024xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<256x1024xi8> | |
| %342 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%333 : tensor<1x28x28x256xi8>) outs(%332 : tensor<1x28x28x256xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x28x28x256xi8> | |
| %343 = tensor.empty() : tensor<1x28x256x1024xi8> | |
| %344 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%341 : tensor<256x1024xi8>) outs(%343 : tensor<1x28x256x1024xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x28x256x1024xi8> | |
| %collapsed_427 = tensor.collapse_shape %342 [[0, 1], [2], [3]] : tensor<1x28x28x256xi8> into tensor<28x28x256xi8> | |
| %collapsed_428 = tensor.collapse_shape %344 [[0, 1], [2], [3]] : tensor<1x28x256x1024xi8> into tensor<28x256x1024xi8> | |
| %345 = tensor.empty() : tensor<28x28x1024xi32> | |
| %346 = linalg.fill ins(%c0_i32 : i32) outs(%345 : tensor<28x28x1024xi32>) -> tensor<28x28x1024xi32> | |
| %347 = linalg.quantized_batch_matmul ins(%collapsed_427, %collapsed_428, %c0_i32, %c0_i32 : tensor<28x28x256xi8>, tensor<28x256x1024xi8>, i32, i32) outs(%346 : tensor<28x28x1024xi32>) -> tensor<28x28x1024xi32> | |
| %expanded_429 = tensor.expand_shape %347 [[0, 1], [2], [3]] output_shape [1, 28, 28, 1024] : tensor<28x28x1024xi32> into tensor<1x28x28x1024xi32> | |
| %348 = tensor.empty() : tensor<1x28x28x1024xf32> | |
| %349 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_429 : tensor<1x28x28x1024xi32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %350 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%339, %349 : tensor<1024xf32>, tensor<1x28x28x1024xf32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %351 = tensor.empty() : tensor<1x28x28x1024xi8> | |
| %352 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%350 : tensor<1x28x28x1024xf32>) outs(%351 : tensor<1x28x28x1024xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x1024xi8> | |
| %353 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%352 : tensor<1x28x28x1024xi8>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %354 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%353, %cst_370 : tensor<1x28x28x1024xf32>, tensor<f32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %355 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%354 : tensor<1x28x28x1024xf32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %356 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%355, %cst_371 : tensor<1x28x28x1024xf32>, tensor<f32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %357 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%353, %356 : tensor<1x28x28x1024xf32>, tensor<1x28x28x1024xf32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %358 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%357, %cst_372 : tensor<1x28x28x1024xf32>, tensor<f32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %359 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%358 : tensor<1x28x28x1024xf32>) outs(%351 : tensor<1x28x28x1024xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x1024xi8> | |
| %360 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_295 : tensor<256x1024xf32>) outs(%340 : tensor<256x1024xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256x1024xi8> | |
| %361 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_294 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %362 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%361 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %363 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%360 : tensor<256x1024xi8>) outs(%334 : tensor<1024x256xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1024x256xi8> | |
| %364 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%359 : tensor<1x28x28x1024xi8>) outs(%351 : tensor<1x28x28x1024xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x28x28x1024xi8> | |
| %365 = tensor.empty() : tensor<1x28x1024x256xi8> | |
| %366 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%363 : tensor<1024x256xi8>) outs(%365 : tensor<1x28x1024x256xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x28x1024x256xi8> | |
| %collapsed_430 = tensor.collapse_shape %364 [[0, 1], [2], [3]] : tensor<1x28x28x1024xi8> into tensor<28x28x1024xi8> | |
| %collapsed_431 = tensor.collapse_shape %366 [[0, 1], [2], [3]] : tensor<1x28x1024x256xi8> into tensor<28x1024x256xi8> | |
| %367 = tensor.empty() : tensor<28x28x256xi32> | |
| %368 = linalg.fill ins(%c0_i32 : i32) outs(%367 : tensor<28x28x256xi32>) -> tensor<28x28x256xi32> | |
| %369 = linalg.quantized_batch_matmul ins(%collapsed_430, %collapsed_431, %c0_i32, %c0_i32 : tensor<28x28x1024xi8>, tensor<28x1024x256xi8>, i32, i32) outs(%368 : tensor<28x28x256xi32>) -> tensor<28x28x256xi32> | |
| %expanded_432 = tensor.expand_shape %369 [[0, 1], [2], [3]] output_shape [1, 28, 28, 256] : tensor<28x28x256xi32> into tensor<1x28x28x256xi32> | |
| %370 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_432 : tensor<1x28x28x256xi32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %371 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%362, %370 : tensor<256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %372 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%371 : tensor<1x28x28x256xf32>) outs(%332 : tensor<1x28x28x256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x256xi8> | |
| %373 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%372 : tensor<1x28x28x256xi8>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %374 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%373 : tensor<1x28x28x256xf32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %375 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%374 : tensor<1x256x28x28xf32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %376 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_366, %375 : tensor<256x1x1xf32>, tensor<1x256x28x28xf32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %377 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%376 : tensor<1x256x28x28xf32>) outs(%296 : tensor<1x256x28x28xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x256x28x28xi8> | |
| %378 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%377 : tensor<1x256x28x28xi8>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %379 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%378, %298 : tensor<1x256x28x28xf32>, tensor<1x256x28x28xf32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %380 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%379 : tensor<1x256x28x28xf32>) outs(%296 : tensor<1x256x28x28xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x256x28x28xi8> | |
| %381 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%380 : tensor<1x256x28x28xi8>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %382 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_293 : tensor<256x1x7x7xf32>) outs(%299 : tensor<256x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256x1x7x7xi8> | |
| %383 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_292 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %384 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%383 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %385 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%384 : tensor<256xf32>) outs(%287 : tensor<256xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_8 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<256xi32> | |
| %padded_433 = tensor.pad %380 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x256x28x28xi8> to tensor<1x256x34x34xi8> | |
| %cast_434 = tensor.cast %padded_433 : tensor<1x256x34x34xi8> to tensor<?x?x?x?xi8> | |
| %386 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%385 : tensor<256xi32>) outs(%289 : tensor<1x256x28x28xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x256x28x28xi32> | |
| %cast_435 = tensor.cast %386 : tensor<1x256x28x28xi32> to tensor<1x256x?x?xi32> | |
| %expanded_436 = tensor.expand_shape %cast_434 [[0], [1, 2], [3], [4]] output_shape [%c1, 256, %c1, %c34, %c34] : tensor<?x?x?x?xi8> into tensor<?x256x?x?x?xi8> | |
| %expanded_437 = tensor.expand_shape %382 [[0, 1], [2], [3], [4]] output_shape [256, 1, 1, 7, 7] : tensor<256x1x7x7xi8> into tensor<256x1x1x7x7xi8> | |
| %expanded_438 = tensor.expand_shape %cast_435 [[0], [1, 2], [3], [4]] output_shape [1, 256, 1, %c28, %c28] : tensor<1x256x?x?xi32> into tensor<1x256x1x?x?xi32> | |
| %387 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_436, %expanded_437, %c0_i64, %c0_i64 : tensor<?x256x?x?x?xi8>, tensor<256x1x1x7x7xi8>, i64, i64) outs(%expanded_438 : tensor<1x256x1x?x?xi32>) -> tensor<1x256x1x?x?xi32> | |
| %collapsed_439 = tensor.collapse_shape %387 [[0], [1, 2], [3], [4]] : tensor<1x256x1x?x?xi32> into tensor<1x256x?x?xi32> | |
| %cast_440 = tensor.cast %collapsed_439 : tensor<1x256x?x?xi32> to tensor<1x256x28x28xi32> | |
| %388 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_440 : tensor<1x256x28x28xi32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %389 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%388 : tensor<1x256x28x28xf32>) outs(%296 : tensor<1x256x28x28xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x256x28x28xi8> | |
| %390 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%389 : tensor<1x256x28x28xi8>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %391 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%390 : tensor<1x256x28x28xf32>) outs(%309 : tensor<1x28x256x28xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x256x28xf32> | |
| %392 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%391 : tensor<1x28x256x28xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %393 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_291 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %394 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%393 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %395 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_290 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %396 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%395 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %397 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%392 : tensor<1x28x28x256xf32>) outs(%318 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %398 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%397 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_21 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %399 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%398 : tensor<1x28x28x1xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %400 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%392, %399 : tensor<1x28x28x256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %401 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%400, %400 : tensor<1x28x28x256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %402 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%401 : tensor<1x28x28x256xf32>) outs(%318 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %403 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%402 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_21 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %404 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%403 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %405 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%404 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %406 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%405 : tensor<1x28x28x1xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %407 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%400, %406 : tensor<1x28x28x256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %408 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%407, %394 : tensor<1x28x28x256xf32>, tensor<256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %409 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%408, %396 : tensor<1x28x28x256xf32>, tensor<256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %410 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%409 : tensor<1x28x28x256xf32>) outs(%332 : tensor<1x28x28x256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x256xi8> | |
| %411 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_289 : tensor<1024x256xf32>) outs(%334 : tensor<1024x256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1024x256xi8> | |
| %412 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_288 : tensor<1024xf32>) outs(%336 : tensor<1024xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1024xi8> | |
| %413 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%412 : tensor<1024xi8>) outs(%338 : tensor<1024xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1024xf32> | |
| %414 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%411 : tensor<1024x256xi8>) outs(%340 : tensor<256x1024xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<256x1024xi8> | |
| %415 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%410 : tensor<1x28x28x256xi8>) outs(%332 : tensor<1x28x28x256xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x28x28x256xi8> | |
| %416 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%414 : tensor<256x1024xi8>) outs(%343 : tensor<1x28x256x1024xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x28x256x1024xi8> | |
| %collapsed_441 = tensor.collapse_shape %415 [[0, 1], [2], [3]] : tensor<1x28x28x256xi8> into tensor<28x28x256xi8> | |
| %collapsed_442 = tensor.collapse_shape %416 [[0, 1], [2], [3]] : tensor<1x28x256x1024xi8> into tensor<28x256x1024xi8> | |
| %417 = linalg.quantized_batch_matmul ins(%collapsed_441, %collapsed_442, %c0_i32, %c0_i32 : tensor<28x28x256xi8>, tensor<28x256x1024xi8>, i32, i32) outs(%346 : tensor<28x28x1024xi32>) -> tensor<28x28x1024xi32> | |
| %expanded_443 = tensor.expand_shape %417 [[0, 1], [2], [3]] output_shape [1, 28, 28, 1024] : tensor<28x28x1024xi32> into tensor<1x28x28x1024xi32> | |
| %418 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_443 : tensor<1x28x28x1024xi32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %419 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%413, %418 : tensor<1024xf32>, tensor<1x28x28x1024xf32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %420 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%419 : tensor<1x28x28x1024xf32>) outs(%351 : tensor<1x28x28x1024xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x1024xi8> | |
| %421 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%420 : tensor<1x28x28x1024xi8>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %422 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%421, %cst_370 : tensor<1x28x28x1024xf32>, tensor<f32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %423 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%422 : tensor<1x28x28x1024xf32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %424 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%423, %cst_371 : tensor<1x28x28x1024xf32>, tensor<f32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %425 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%421, %424 : tensor<1x28x28x1024xf32>, tensor<1x28x28x1024xf32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %426 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%425, %cst_372 : tensor<1x28x28x1024xf32>, tensor<f32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %427 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%426 : tensor<1x28x28x1024xf32>) outs(%351 : tensor<1x28x28x1024xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x1024xi8> | |
| %428 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_287 : tensor<256x1024xf32>) outs(%340 : tensor<256x1024xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256x1024xi8> | |
| %429 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_286 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %430 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%429 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %431 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%428 : tensor<256x1024xi8>) outs(%334 : tensor<1024x256xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1024x256xi8> | |
| %432 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%427 : tensor<1x28x28x1024xi8>) outs(%351 : tensor<1x28x28x1024xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x28x28x1024xi8> | |
| %433 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%431 : tensor<1024x256xi8>) outs(%365 : tensor<1x28x1024x256xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x28x1024x256xi8> | |
| %collapsed_444 = tensor.collapse_shape %432 [[0, 1], [2], [3]] : tensor<1x28x28x1024xi8> into tensor<28x28x1024xi8> | |
| %collapsed_445 = tensor.collapse_shape %433 [[0, 1], [2], [3]] : tensor<1x28x1024x256xi8> into tensor<28x1024x256xi8> | |
| %434 = linalg.quantized_batch_matmul ins(%collapsed_444, %collapsed_445, %c0_i32, %c0_i32 : tensor<28x28x1024xi8>, tensor<28x1024x256xi8>, i32, i32) outs(%368 : tensor<28x28x256xi32>) -> tensor<28x28x256xi32> | |
| %expanded_446 = tensor.expand_shape %434 [[0, 1], [2], [3]] output_shape [1, 28, 28, 256] : tensor<28x28x256xi32> into tensor<1x28x28x256xi32> | |
| %435 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_446 : tensor<1x28x28x256xi32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %436 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%430, %435 : tensor<256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %437 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%436 : tensor<1x28x28x256xf32>) outs(%332 : tensor<1x28x28x256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x256xi8> | |
| %438 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%437 : tensor<1x28x28x256xi8>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %439 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%438 : tensor<1x28x28x256xf32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %440 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%439 : tensor<1x256x28x28xf32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %441 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_365, %440 : tensor<256x1x1xf32>, tensor<1x256x28x28xf32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %442 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%441 : tensor<1x256x28x28xf32>) outs(%296 : tensor<1x256x28x28xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x256x28x28xi8> | |
| %443 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%442 : tensor<1x256x28x28xi8>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %444 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%443, %381 : tensor<1x256x28x28xf32>, tensor<1x256x28x28xf32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %445 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%444 : tensor<1x256x28x28xf32>) outs(%296 : tensor<1x256x28x28xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x256x28x28xi8> | |
| %446 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%445 : tensor<1x256x28x28xi8>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %447 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_285 : tensor<256x1x7x7xf32>) outs(%299 : tensor<256x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256x1x7x7xi8> | |
| %448 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_284 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %449 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%448 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %450 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%449 : tensor<256xf32>) outs(%287 : tensor<256xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_18 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<256xi32> | |
| %padded_447 = tensor.pad %445 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x256x28x28xi8> to tensor<1x256x34x34xi8> | |
| %cast_448 = tensor.cast %padded_447 : tensor<1x256x34x34xi8> to tensor<?x?x?x?xi8> | |
| %451 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%450 : tensor<256xi32>) outs(%289 : tensor<1x256x28x28xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x256x28x28xi32> | |
| %cast_449 = tensor.cast %451 : tensor<1x256x28x28xi32> to tensor<1x256x?x?xi32> | |
| %expanded_450 = tensor.expand_shape %cast_448 [[0], [1, 2], [3], [4]] output_shape [%c1, 256, %c1, %c34, %c34] : tensor<?x?x?x?xi8> into tensor<?x256x?x?x?xi8> | |
| %expanded_451 = tensor.expand_shape %447 [[0, 1], [2], [3], [4]] output_shape [256, 1, 1, 7, 7] : tensor<256x1x7x7xi8> into tensor<256x1x1x7x7xi8> | |
| %expanded_452 = tensor.expand_shape %cast_449 [[0], [1, 2], [3], [4]] output_shape [1, 256, 1, %c28, %c28] : tensor<1x256x?x?xi32> into tensor<1x256x1x?x?xi32> | |
| %452 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_450, %expanded_451, %c0_i64, %c0_i64 : tensor<?x256x?x?x?xi8>, tensor<256x1x1x7x7xi8>, i64, i64) outs(%expanded_452 : tensor<1x256x1x?x?xi32>) -> tensor<1x256x1x?x?xi32> | |
| %collapsed_453 = tensor.collapse_shape %452 [[0], [1, 2], [3], [4]] : tensor<1x256x1x?x?xi32> into tensor<1x256x?x?xi32> | |
| %cast_454 = tensor.cast %collapsed_453 : tensor<1x256x?x?xi32> to tensor<1x256x28x28xi32> | |
| %453 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_454 : tensor<1x256x28x28xi32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %454 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%453 : tensor<1x256x28x28xf32>) outs(%296 : tensor<1x256x28x28xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x256x28x28xi8> | |
| %455 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%454 : tensor<1x256x28x28xi8>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %456 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%455 : tensor<1x256x28x28xf32>) outs(%309 : tensor<1x28x256x28xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x256x28xf32> | |
| %457 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%456 : tensor<1x28x256x28xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %458 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_283 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %459 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%458 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %460 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_282 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %461 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%460 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %462 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%457 : tensor<1x28x28x256xf32>) outs(%318 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %463 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%462 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_21 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %464 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%463 : tensor<1x28x28x1xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %465 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%457, %464 : tensor<1x28x28x256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %466 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%465, %465 : tensor<1x28x28x256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %467 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%466 : tensor<1x28x28x256xf32>) outs(%318 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %468 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%467 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_21 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %469 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%468 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %470 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%469 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %471 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%470 : tensor<1x28x28x1xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %472 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%465, %471 : tensor<1x28x28x256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %473 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%472, %459 : tensor<1x28x28x256xf32>, tensor<256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %474 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%473, %461 : tensor<1x28x28x256xf32>, tensor<256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %475 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%474 : tensor<1x28x28x256xf32>) outs(%332 : tensor<1x28x28x256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x256xi8> | |
| %476 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_281 : tensor<1024x256xf32>) outs(%334 : tensor<1024x256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1024x256xi8> | |
| %477 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_280 : tensor<1024xf32>) outs(%336 : tensor<1024xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1024xi8> | |
| %478 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%477 : tensor<1024xi8>) outs(%338 : tensor<1024xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1024xf32> | |
| %479 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%476 : tensor<1024x256xi8>) outs(%340 : tensor<256x1024xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<256x1024xi8> | |
| %480 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%475 : tensor<1x28x28x256xi8>) outs(%332 : tensor<1x28x28x256xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x28x28x256xi8> | |
| %481 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%479 : tensor<256x1024xi8>) outs(%343 : tensor<1x28x256x1024xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x28x256x1024xi8> | |
| %collapsed_455 = tensor.collapse_shape %480 [[0, 1], [2], [3]] : tensor<1x28x28x256xi8> into tensor<28x28x256xi8> | |
| %collapsed_456 = tensor.collapse_shape %481 [[0, 1], [2], [3]] : tensor<1x28x256x1024xi8> into tensor<28x256x1024xi8> | |
| %482 = linalg.quantized_batch_matmul ins(%collapsed_455, %collapsed_456, %c0_i32, %c0_i32 : tensor<28x28x256xi8>, tensor<28x256x1024xi8>, i32, i32) outs(%346 : tensor<28x28x1024xi32>) -> tensor<28x28x1024xi32> | |
| %expanded_457 = tensor.expand_shape %482 [[0, 1], [2], [3]] output_shape [1, 28, 28, 1024] : tensor<28x28x1024xi32> into tensor<1x28x28x1024xi32> | |
| %483 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_457 : tensor<1x28x28x1024xi32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %484 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%478, %483 : tensor<1024xf32>, tensor<1x28x28x1024xf32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %485 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%484 : tensor<1x28x28x1024xf32>) outs(%351 : tensor<1x28x28x1024xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x1024xi8> | |
| %486 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%485 : tensor<1x28x28x1024xi8>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %487 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%486, %cst_370 : tensor<1x28x28x1024xf32>, tensor<f32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %488 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%487 : tensor<1x28x28x1024xf32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %489 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%488, %cst_371 : tensor<1x28x28x1024xf32>, tensor<f32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %490 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%486, %489 : tensor<1x28x28x1024xf32>, tensor<1x28x28x1024xf32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %491 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%490, %cst_372 : tensor<1x28x28x1024xf32>, tensor<f32>) outs(%348 : tensor<1x28x28x1024xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1024xf32> | |
| %492 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%491 : tensor<1x28x28x1024xf32>) outs(%351 : tensor<1x28x28x1024xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x1024xi8> | |
| %493 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_279 : tensor<256x1024xf32>) outs(%340 : tensor<256x1024xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256x1024xi8> | |
| %494 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_278 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %495 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%494 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %496 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%493 : tensor<256x1024xi8>) outs(%334 : tensor<1024x256xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1024x256xi8> | |
| %497 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%492 : tensor<1x28x28x1024xi8>) outs(%351 : tensor<1x28x28x1024xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x28x28x1024xi8> | |
| %498 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%496 : tensor<1024x256xi8>) outs(%365 : tensor<1x28x1024x256xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x28x1024x256xi8> | |
| %collapsed_458 = tensor.collapse_shape %497 [[0, 1], [2], [3]] : tensor<1x28x28x1024xi8> into tensor<28x28x1024xi8> | |
| %collapsed_459 = tensor.collapse_shape %498 [[0, 1], [2], [3]] : tensor<1x28x1024x256xi8> into tensor<28x1024x256xi8> | |
| %499 = linalg.quantized_batch_matmul ins(%collapsed_458, %collapsed_459, %c0_i32, %c0_i32 : tensor<28x28x1024xi8>, tensor<28x1024x256xi8>, i32, i32) outs(%368 : tensor<28x28x256xi32>) -> tensor<28x28x256xi32> | |
| %expanded_460 = tensor.expand_shape %499 [[0, 1], [2], [3]] output_shape [1, 28, 28, 256] : tensor<28x28x256xi32> into tensor<1x28x28x256xi32> | |
| %500 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_460 : tensor<1x28x28x256xi32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %501 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%495, %500 : tensor<256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %502 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%501 : tensor<1x28x28x256xf32>) outs(%332 : tensor<1x28x28x256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x256xi8> | |
| %503 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%502 : tensor<1x28x28x256xi8>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %504 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%503 : tensor<1x28x28x256xf32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %505 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%504 : tensor<1x256x28x28xf32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %506 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_364, %505 : tensor<256x1x1xf32>, tensor<1x256x28x28xf32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %507 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%506 : tensor<1x256x28x28xf32>) outs(%296 : tensor<1x256x28x28xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x256x28x28xi8> | |
| %508 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%507 : tensor<1x256x28x28xi8>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %509 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%508, %446 : tensor<1x256x28x28xf32>, tensor<1x256x28x28xf32>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %510 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%509 : tensor<1x256x28x28xf32>) outs(%296 : tensor<1x256x28x28xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x256x28x28xi8> | |
| %511 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%510 : tensor<1x256x28x28xi8>) outs(%294 : tensor<1x256x28x28xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x256x28x28xf32> | |
| %512 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%511 : tensor<1x256x28x28xf32>) outs(%309 : tensor<1x28x256x28xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x256x28xf32> | |
| %513 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%512 : tensor<1x28x256x28xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %514 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_277 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %515 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%514 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %516 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_276 : tensor<256xf32>) outs(%281 : tensor<256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_12 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<256xi8> | |
| %517 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%516 : tensor<256xi8>) outs(%283 : tensor<256xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_12 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<256xf32> | |
| %518 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%513 : tensor<1x28x28x256xf32>) outs(%318 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %519 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%518 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_21 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %520 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%519 : tensor<1x28x28x1xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %521 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%513, %520 : tensor<1x28x28x256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %522 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%521, %521 : tensor<1x28x28x256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %523 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%522 : tensor<1x28x28x256xf32>) outs(%318 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %524 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%523 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_21 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %525 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%524 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %526 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%525 : tensor<1x28x28x1xf32>) outs(%317 : tensor<1x28x28x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x1xf32> | |
| %527 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%526 : tensor<1x28x28x1xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %528 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%521, %527 : tensor<1x28x28x256xf32>, tensor<1x28x28x256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %529 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%528, %515 : tensor<1x28x28x256xf32>, tensor<256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %530 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%529, %517 : tensor<1x28x28x256xf32>, tensor<256xf32>) outs(%311 : tensor<1x28x28x256xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x28x28x256xf32> | |
| %531 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%530 : tensor<1x28x28x256xf32>) outs(%332 : tensor<1x28x28x256xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x28x28x256xi8> | |
| %532 = tensor.empty() : tensor<512x256x2x2xi8> | |
| %533 = linalg.generic {indexing_maps = [#map1, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_275 : tensor<512x256x2x2xf32>) outs(%532 : tensor<512x256x2x2xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x256x2x2xi8> | |
| %534 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_274 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %535 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%534 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %536 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%531 : tensor<1x28x28x256xi8>) outs(%296 : tensor<1x256x28x28xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x256x28x28xi8> | |
| %537 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%536 : tensor<1x256x28x28xi8>) outs(%296 : tensor<1x256x28x28xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x256x28x28xi8> | |
| %538 = tensor.empty() : tensor<512xi32> | |
| %539 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%535 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_22 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %540 = tensor.empty() : tensor<1x512x14x14xi32> | |
| %541 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%539 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %transposed_461 = linalg.transpose ins(%537 : tensor<1x256x28x28xi8>) outs(%332 : tensor<1x28x28x256xi8>) permutation = [0, 2, 3, 1] | |
| %542 = tensor.empty() : tensor<2x2x256x512xi8> | |
| %transposed_462 = linalg.transpose ins(%533 : tensor<512x256x2x2xi8>) outs(%542 : tensor<2x2x256x512xi8>) permutation = [2, 3, 1, 0] | |
| %543 = tensor.empty() : tensor<1x14x14x512xi32> | |
| %transposed_463 = linalg.transpose ins(%541 : tensor<1x512x14x14xi32>) outs(%543 : tensor<1x14x14x512xi32>) permutation = [0, 2, 3, 1] | |
| %544 = linalg.conv_2d_nhwc_hwcf_q {dilations = dense<1> : vector<2xi64>, strides = dense<2> : vector<2xi64>} ins(%transposed_461, %transposed_462, %c0_i64, %c0_i64 : tensor<1x28x28x256xi8>, tensor<2x2x256x512xi8>, i64, i64) outs(%transposed_463 : tensor<1x14x14x512xi32>) -> tensor<1x14x14x512xi32> | |
| %transposed_464 = linalg.transpose ins(%544 : tensor<1x14x14x512xi32>) outs(%540 : tensor<1x512x14x14xi32>) permutation = [0, 3, 1, 2] | |
| %545 = tensor.empty() : tensor<1x512x14x14xf32> | |
| %546 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%transposed_464 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_22 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %547 = tensor.empty() : tensor<1x512x14x14xi8> | |
| %548 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%546 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %549 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%548 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %550 = tensor.empty() : tensor<512x1x7x7xi8> | |
| %551 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_273 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %552 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_272 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %553 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%552 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %554 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%553 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_19 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_465 = tensor.pad %548 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_466 = tensor.cast %padded_465 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %555 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%554 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_467 = tensor.cast %555 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_468 = tensor.expand_shape %cast_466 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_469 = tensor.expand_shape %551 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_470 = tensor.expand_shape %cast_467 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %556 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_468, %expanded_469, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_470 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_471 = tensor.collapse_shape %556 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_472 = tensor.cast %collapsed_471 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %557 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_472 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_19 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %558 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%557 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %559 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%558 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %560 = tensor.empty() : tensor<1x14x512x14xf32> | |
| %561 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%559 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %562 = tensor.empty() : tensor<1x14x14x512xf32> | |
| %563 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%561 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %564 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_271 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %565 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%564 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %566 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_270 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %567 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%566 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %568 = tensor.empty() : tensor<1x14x14x1xf32> | |
| %569 = linalg.fill ins(%cst_4 : f32) outs(%568 : tensor<1x14x14x1xf32>) -> tensor<1x14x14x1xf32> | |
| %570 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%563 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %571 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%570 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %572 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%571 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %573 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%563, %572 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %574 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%573, %573 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %575 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%574 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %576 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%575 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %577 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%576 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %578 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%577 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %579 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%578 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %580 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%573, %579 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %581 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%580, %565 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %582 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%581, %567 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %583 = tensor.empty() : tensor<1x14x14x512xi8> | |
| %584 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%582 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_14 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %585 = tensor.empty() : tensor<2048x512xi8> | |
| %586 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_269 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %587 = tensor.empty() : tensor<2048xi8> | |
| %588 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_268 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %589 = tensor.empty() : tensor<2048xf32> | |
| %590 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%588 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %591 = tensor.empty() : tensor<512x2048xi8> | |
| %592 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%586 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %593 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%584 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %594 = tensor.empty() : tensor<1x14x512x2048xi8> | |
| %595 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%592 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_473 = tensor.collapse_shape %593 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_474 = tensor.collapse_shape %595 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %596 = tensor.empty() : tensor<14x14x2048xi32> | |
| %597 = linalg.fill ins(%c0_i32 : i32) outs(%596 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %598 = linalg.quantized_batch_matmul ins(%collapsed_473, %collapsed_474, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_475 = tensor.expand_shape %598 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %599 = tensor.empty() : tensor<1x14x14x2048xf32> | |
| %600 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_475 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_16 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %601 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%590, %600 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %602 = tensor.empty() : tensor<1x14x14x2048xi8> | |
| %603 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%601 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %604 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%603 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %605 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%604, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %606 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%605 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %607 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%606, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %608 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%604, %607 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %609 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%608, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %610 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%609 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %611 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_267 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %612 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_266 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %613 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%612 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %614 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%611 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %615 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%610 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %616 = tensor.empty() : tensor<1x14x2048x512xi8> | |
| %617 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%614 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_476 = tensor.collapse_shape %615 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_477 = tensor.collapse_shape %617 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %618 = tensor.empty() : tensor<14x14x512xi32> | |
| %619 = linalg.fill ins(%c0_i32 : i32) outs(%618 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %620 = linalg.quantized_batch_matmul ins(%collapsed_476, %collapsed_477, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_478 = tensor.expand_shape %620 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %621 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_478 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_24 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %622 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%613, %621 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %623 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%622 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %624 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%623 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %625 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%624 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %626 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%625 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %627 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_363, %626 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %628 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%627 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %629 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%628 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %630 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%629, %549 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %631 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%630 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %632 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%631 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %633 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_265 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %634 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_264 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %635 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%634 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %636 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%635 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_19 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_479 = tensor.pad %631 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_480 = tensor.cast %padded_479 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %637 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%636 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_481 = tensor.cast %637 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_482 = tensor.expand_shape %cast_480 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_483 = tensor.expand_shape %633 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_484 = tensor.expand_shape %cast_481 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %638 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_482, %expanded_483, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_484 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_485 = tensor.collapse_shape %638 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_486 = tensor.cast %collapsed_485 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %639 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_486 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_19 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %640 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%639 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %641 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%640 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %642 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%641 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %643 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%642 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %644 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_263 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %645 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%644 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %646 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_262 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %647 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%646 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %648 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%643 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %649 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%648 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %650 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%649 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %651 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%643, %650 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %652 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%651, %651 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %653 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%652 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %654 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%653 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %655 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%654 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %656 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%655 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %657 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%656 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %658 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%651, %657 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %659 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%658, %645 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %660 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%659, %647 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %661 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%660 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_14 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %662 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_261 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %663 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_260 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %664 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%663 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %665 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%662 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %666 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%661 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %667 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%665 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_487 = tensor.collapse_shape %666 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_488 = tensor.collapse_shape %667 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %668 = linalg.quantized_batch_matmul ins(%collapsed_487, %collapsed_488, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_489 = tensor.expand_shape %668 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %669 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_489 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_16 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %670 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%664, %669 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %671 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%670 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %672 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%671 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %673 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%672, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %674 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%673 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %675 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%674, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %676 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%672, %675 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %677 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%676, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %678 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%677 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %679 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_259 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %680 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_258 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %681 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%680 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %682 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%679 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %683 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%678 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %684 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%682 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_490 = tensor.collapse_shape %683 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_491 = tensor.collapse_shape %684 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %685 = linalg.quantized_batch_matmul ins(%collapsed_490, %collapsed_491, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_492 = tensor.expand_shape %685 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %686 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_492 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %687 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%681, %686 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %688 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%687 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %689 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%688 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %690 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%689 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %691 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%690 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %692 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_362, %691 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %693 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%692 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %694 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%693 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %695 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%694, %632 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %696 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%695 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %697 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%696 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %698 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_257 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %699 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_256 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %700 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%699 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %701 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%700 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_19 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_493 = tensor.pad %696 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_494 = tensor.cast %padded_493 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %702 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%701 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_495 = tensor.cast %702 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_496 = tensor.expand_shape %cast_494 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_497 = tensor.expand_shape %698 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_498 = tensor.expand_shape %cast_495 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %703 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_496, %expanded_497, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_498 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_499 = tensor.collapse_shape %703 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_500 = tensor.cast %collapsed_499 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %704 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_500 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_19 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %705 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%704 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %706 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%705 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %707 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%706 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %708 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%707 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %709 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_255 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %710 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%709 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %711 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_254 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %712 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%711 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %713 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%708 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %714 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%713 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %715 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%714 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %716 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%708, %715 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %717 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%716, %716 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %718 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%717 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %719 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%718 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %720 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%719 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %721 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%720 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %722 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%721 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %723 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%716, %722 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %724 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%723, %710 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %725 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%724, %712 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %726 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%725 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %727 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_253 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %728 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_252 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %729 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%728 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %730 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%727 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %731 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%726 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %732 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%730 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_501 = tensor.collapse_shape %731 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_502 = tensor.collapse_shape %732 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %733 = linalg.quantized_batch_matmul ins(%collapsed_501, %collapsed_502, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_503 = tensor.expand_shape %733 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %734 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_503 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %735 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%729, %734 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %736 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%735 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %737 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%736 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %738 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%737, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %739 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%738 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %740 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%739, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %741 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%737, %740 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %742 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%741, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %743 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%742 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %744 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_251 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %745 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_250 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %746 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%745 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %747 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%744 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %748 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%743 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %749 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%747 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_504 = tensor.collapse_shape %748 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_505 = tensor.collapse_shape %749 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %750 = linalg.quantized_batch_matmul ins(%collapsed_504, %collapsed_505, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_506 = tensor.expand_shape %750 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %751 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_506 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %752 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%746, %751 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %753 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%752 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %754 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%753 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %755 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%754 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %756 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%755 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %757 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_361, %756 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %758 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%757 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %759 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%758 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %760 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%759, %697 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %761 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%760 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %762 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%761 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %763 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_249 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %764 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_248 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %765 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%764 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %766 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%765 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_19 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_507 = tensor.pad %761 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_508 = tensor.cast %padded_507 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %767 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%766 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_509 = tensor.cast %767 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_510 = tensor.expand_shape %cast_508 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_511 = tensor.expand_shape %763 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_512 = tensor.expand_shape %cast_509 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %768 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_510, %expanded_511, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_512 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_513 = tensor.collapse_shape %768 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_514 = tensor.cast %collapsed_513 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %769 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_514 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_19 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %770 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%769 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %771 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%770 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %772 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%771 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %773 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%772 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %774 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_247 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %775 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%774 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %776 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_246 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %777 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%776 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %778 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%773 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %779 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%778 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %780 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%779 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %781 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%773, %780 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %782 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%781, %781 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %783 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%782 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %784 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%783 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %785 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%784 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %786 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%785 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %787 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%786 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %788 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%781, %787 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %789 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%788, %775 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %790 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%789, %777 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %791 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%790 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %792 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_245 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %793 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_244 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %794 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%793 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %795 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%792 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %796 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%791 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %797 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%795 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_515 = tensor.collapse_shape %796 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_516 = tensor.collapse_shape %797 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %798 = linalg.quantized_batch_matmul ins(%collapsed_515, %collapsed_516, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_517 = tensor.expand_shape %798 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %799 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_517 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %800 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%794, %799 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %801 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%800 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %802 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%801 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %803 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%802, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %804 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%803 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %805 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%804, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %806 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%802, %805 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %807 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%806, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %808 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%807 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %809 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_243 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %810 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_242 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %811 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%810 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %812 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%809 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %813 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%808 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %814 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%812 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_518 = tensor.collapse_shape %813 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_519 = tensor.collapse_shape %814 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %815 = linalg.quantized_batch_matmul ins(%collapsed_518, %collapsed_519, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_520 = tensor.expand_shape %815 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %816 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_520 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %817 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%811, %816 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %818 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%817 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %819 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%818 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %820 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%819 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %821 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%820 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %822 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_360, %821 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %823 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%822 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %824 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%823 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %825 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%824, %762 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %826 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%825 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %827 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%826 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %828 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_241 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %829 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_240 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %830 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%829 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %831 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%830 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_19 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_521 = tensor.pad %826 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_522 = tensor.cast %padded_521 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %832 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%831 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_523 = tensor.cast %832 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_524 = tensor.expand_shape %cast_522 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_525 = tensor.expand_shape %828 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_526 = tensor.expand_shape %cast_523 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %833 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_524, %expanded_525, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_526 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_527 = tensor.collapse_shape %833 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_528 = tensor.cast %collapsed_527 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %834 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_528 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_19 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %835 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%834 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %836 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%835 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %837 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%836 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %838 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%837 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %839 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_239 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %840 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%839 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %841 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_238 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %842 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%841 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %843 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%838 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %844 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%843 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %845 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%844 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %846 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%838, %845 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %847 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%846, %846 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %848 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%847 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %849 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%848 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %850 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%849 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %851 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%850 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %852 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%851 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %853 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%846, %852 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %854 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%853, %840 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %855 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%854, %842 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %856 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%855 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %857 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_237 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %858 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_236 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %859 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%858 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %860 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%857 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %861 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%856 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %862 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%860 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_529 = tensor.collapse_shape %861 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_530 = tensor.collapse_shape %862 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %863 = linalg.quantized_batch_matmul ins(%collapsed_529, %collapsed_530, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_531 = tensor.expand_shape %863 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %864 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_531 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %865 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%859, %864 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %866 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%865 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %867 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%866 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %868 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%867, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %869 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%868 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %870 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%869, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %871 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%867, %870 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %872 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%871, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %873 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%872 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %874 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_235 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %875 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_234 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %876 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%875 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %877 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%874 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %878 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%873 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %879 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%877 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_532 = tensor.collapse_shape %878 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_533 = tensor.collapse_shape %879 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %880 = linalg.quantized_batch_matmul ins(%collapsed_532, %collapsed_533, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_534 = tensor.expand_shape %880 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %881 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_534 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %882 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%876, %881 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %883 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%882 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %884 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%883 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %885 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%884 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %886 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%885 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %887 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_359, %886 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %888 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%887 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %889 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%888 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %890 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%889, %827 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %891 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%890 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %892 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%891 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %893 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_233 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %894 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_232 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_12 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %895 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%894 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_12 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %896 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%895 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_19 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_535 = tensor.pad %891 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_536 = tensor.cast %padded_535 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %897 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%896 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_537 = tensor.cast %897 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_538 = tensor.expand_shape %cast_536 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_539 = tensor.expand_shape %893 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_540 = tensor.expand_shape %cast_537 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %898 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_538, %expanded_539, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_540 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_541 = tensor.collapse_shape %898 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_542 = tensor.cast %collapsed_541 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %899 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_542 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_19 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %900 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%899 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %901 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%900 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %902 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%901 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %903 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%902 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %904 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_231 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %905 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%904 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %906 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_230 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %907 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%906 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %908 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%903 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %909 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%908 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %910 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%909 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %911 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%903, %910 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %912 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%911, %911 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %913 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%912 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %914 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%913 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %915 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%914 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %916 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%915 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %917 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%916 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %918 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%911, %917 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %919 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%918, %905 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %920 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%919, %907 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %921 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%920 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %922 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_229 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %923 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_228 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %924 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%923 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %925 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%922 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %926 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%921 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %927 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%925 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_543 = tensor.collapse_shape %926 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_544 = tensor.collapse_shape %927 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %928 = linalg.quantized_batch_matmul ins(%collapsed_543, %collapsed_544, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_545 = tensor.expand_shape %928 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %929 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_545 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %930 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%924, %929 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %931 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%930 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %932 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%931 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %933 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%932, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %934 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%933 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %935 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%934, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %936 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%932, %935 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %937 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%936, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %938 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%937 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %939 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_227 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %940 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_226 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %941 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%940 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %942 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%939 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %943 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%938 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %944 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%942 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_546 = tensor.collapse_shape %943 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_547 = tensor.collapse_shape %944 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %945 = linalg.quantized_batch_matmul ins(%collapsed_546, %collapsed_547, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_548 = tensor.expand_shape %945 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %946 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_548 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_24 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %947 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%941, %946 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %948 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%947 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %949 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%948 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %950 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%949 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %951 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%950 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %952 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_358, %951 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %953 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%952 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %954 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%953 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %955 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%954, %892 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %956 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%955 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %957 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%956 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %958 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_225 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %959 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_224 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %960 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%959 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %961 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%960 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_19 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_549 = tensor.pad %956 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_550 = tensor.cast %padded_549 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %962 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%961 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_551 = tensor.cast %962 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_552 = tensor.expand_shape %cast_550 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_553 = tensor.expand_shape %958 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_554 = tensor.expand_shape %cast_551 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %963 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_552, %expanded_553, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_554 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_555 = tensor.collapse_shape %963 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_556 = tensor.cast %collapsed_555 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %964 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_556 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_19 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %965 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%964 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %966 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%965 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %967 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%966 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %968 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%967 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %969 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_223 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %970 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%969 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %971 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_222 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %972 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%971 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %973 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%968 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %974 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%973 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %975 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%974 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %976 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%968, %975 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %977 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%976, %976 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %978 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%977 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %979 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%978 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %980 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%979 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %981 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%980 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %982 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%981 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %983 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%976, %982 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %984 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%983, %970 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %985 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%984, %972 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %986 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%985 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %987 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_221 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %988 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_220 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %989 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%988 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %990 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%987 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %991 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%986 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %992 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%990 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_557 = tensor.collapse_shape %991 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_558 = tensor.collapse_shape %992 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %993 = linalg.quantized_batch_matmul ins(%collapsed_557, %collapsed_558, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_559 = tensor.expand_shape %993 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %994 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_559 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %995 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%989, %994 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %996 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%995 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %997 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%996 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %998 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%997, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %999 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%998 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1000 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%999, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1001 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%997, %1000 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1002 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1001, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1003 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1002 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1004 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_219 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1005 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_218 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1006 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1005 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1007 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1004 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1008 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1003 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1009 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1007 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_560 = tensor.collapse_shape %1008 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_561 = tensor.collapse_shape %1009 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1010 = linalg.quantized_batch_matmul ins(%collapsed_560, %collapsed_561, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_562 = tensor.expand_shape %1010 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1011 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_562 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1012 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1006, %1011 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1013 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1012 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1014 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1013 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1015 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1014 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1016 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1015 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1017 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_357, %1016 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1018 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1017 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1019 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1018 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1020 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1019, %957 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1021 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1020 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1022 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1021 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1023 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_217 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1024 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_216 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1025 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1024 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1026 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1025 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_20 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_563 = tensor.pad %1021 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_564 = tensor.cast %padded_563 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1027 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1026 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_565 = tensor.cast %1027 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_566 = tensor.expand_shape %cast_564 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_567 = tensor.expand_shape %1023 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_568 = tensor.expand_shape %cast_565 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1028 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_566, %expanded_567, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_568 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_569 = tensor.collapse_shape %1028 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_570 = tensor.cast %collapsed_569 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1029 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_570 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_20 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1030 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1029 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1031 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1030 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1032 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1031 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1033 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1032 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1034 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_215 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1035 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1034 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1036 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_214 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1037 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1036 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1038 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1033 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1039 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1038 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1040 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1039 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1041 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1033, %1040 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1042 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1041, %1041 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1043 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1042 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1044 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1043 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1045 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1044 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1046 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1045 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1047 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1046 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1048 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1041, %1047 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1049 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1048, %1035 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1050 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1049, %1037 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1051 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1050 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1052 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_213 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1053 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_212 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1054 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1053 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1055 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1052 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1056 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1051 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1057 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1055 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_571 = tensor.collapse_shape %1056 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_572 = tensor.collapse_shape %1057 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1058 = linalg.quantized_batch_matmul ins(%collapsed_571, %collapsed_572, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_573 = tensor.expand_shape %1058 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1059 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_573 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1060 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1054, %1059 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1061 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1060 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1062 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1061 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1063 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1062, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1064 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1063 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1065 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1064, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1066 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1062, %1065 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1067 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1066, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1068 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1067 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1069 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_211 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1070 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_210 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1071 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1070 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1072 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1069 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1073 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1068 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1074 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1072 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_574 = tensor.collapse_shape %1073 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_575 = tensor.collapse_shape %1074 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1075 = linalg.quantized_batch_matmul ins(%collapsed_574, %collapsed_575, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_576 = tensor.expand_shape %1075 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1076 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_576 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1077 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1071, %1076 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1078 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1077 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1079 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1078 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1080 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1079 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1081 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1080 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1082 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_356, %1081 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1083 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1082 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1084 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1083 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1085 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1084, %1022 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1086 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1085 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1087 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1086 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1088 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_209 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1089 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_208 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1090 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1089 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1091 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1090 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_20 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_577 = tensor.pad %1086 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_578 = tensor.cast %padded_577 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1092 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1091 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_579 = tensor.cast %1092 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_580 = tensor.expand_shape %cast_578 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_581 = tensor.expand_shape %1088 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_582 = tensor.expand_shape %cast_579 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1093 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_580, %expanded_581, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_582 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_583 = tensor.collapse_shape %1093 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_584 = tensor.cast %collapsed_583 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1094 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_584 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_20 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1095 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1094 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1096 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1095 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1097 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1096 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1098 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1097 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1099 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_207 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1100 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1099 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1101 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_206 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1102 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1101 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1103 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1098 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1104 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1103 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1105 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1104 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1106 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1098, %1105 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1107 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1106, %1106 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1108 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1107 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1109 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1108 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1110 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1109 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1111 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1110 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1112 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1111 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1113 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1106, %1112 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1114 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1113, %1100 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1115 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1114, %1102 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1116 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1115 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1117 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_205 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1118 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_204 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1119 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1118 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1120 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1117 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1121 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1116 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1122 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1120 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_585 = tensor.collapse_shape %1121 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_586 = tensor.collapse_shape %1122 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1123 = linalg.quantized_batch_matmul ins(%collapsed_585, %collapsed_586, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_587 = tensor.expand_shape %1123 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1124 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_587 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1125 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1119, %1124 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1126 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1125 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1127 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1126 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1128 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1127, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1129 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1128 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1130 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1129, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1131 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1127, %1130 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1132 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1131, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1133 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1132 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1134 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_203 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1135 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_202 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1136 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1135 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1137 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1134 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1138 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1133 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1139 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1137 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_588 = tensor.collapse_shape %1138 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_589 = tensor.collapse_shape %1139 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1140 = linalg.quantized_batch_matmul ins(%collapsed_588, %collapsed_589, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_590 = tensor.expand_shape %1140 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1141 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_590 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1142 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1136, %1141 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1143 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1142 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1144 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1143 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1145 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1144 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1146 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1145 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1147 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_355, %1146 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1148 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1147 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1149 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1148 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1150 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1149, %1087 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1151 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1150 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1152 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1151 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1153 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_201 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1154 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_200 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1155 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1154 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1156 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1155 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_20 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_591 = tensor.pad %1151 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_592 = tensor.cast %padded_591 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1157 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1156 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_593 = tensor.cast %1157 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_594 = tensor.expand_shape %cast_592 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_595 = tensor.expand_shape %1153 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_596 = tensor.expand_shape %cast_593 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1158 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_594, %expanded_595, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_596 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_597 = tensor.collapse_shape %1158 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_598 = tensor.cast %collapsed_597 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1159 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_598 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_20 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1160 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1159 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1161 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1160 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1162 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1161 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1163 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1162 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1164 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_199 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1165 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1164 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1166 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_198 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1167 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1166 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1168 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1163 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1169 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1168 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1170 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1169 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1171 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1163, %1170 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1172 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1171, %1171 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1173 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1172 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1174 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1173 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1175 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1174 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1176 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1175 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1177 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1176 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1178 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1171, %1177 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1179 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1178, %1165 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1180 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1179, %1167 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1181 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1180 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1182 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_197 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1183 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_196 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1184 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1183 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1185 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1182 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1186 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1181 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1187 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1185 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_599 = tensor.collapse_shape %1186 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_600 = tensor.collapse_shape %1187 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1188 = linalg.quantized_batch_matmul ins(%collapsed_599, %collapsed_600, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_601 = tensor.expand_shape %1188 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1189 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_601 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1190 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1184, %1189 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1191 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1190 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1192 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1191 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1193 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1192, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1194 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1193 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1195 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1194, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1196 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1192, %1195 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1197 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1196, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1198 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1197 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1199 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_195 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1200 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_194 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1201 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1200 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1202 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1199 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1203 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1198 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1204 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1202 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_602 = tensor.collapse_shape %1203 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_603 = tensor.collapse_shape %1204 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1205 = linalg.quantized_batch_matmul ins(%collapsed_602, %collapsed_603, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_604 = tensor.expand_shape %1205 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1206 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_604 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1207 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1201, %1206 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1208 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1207 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1209 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1208 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1210 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1209 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1211 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1210 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1212 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_354, %1211 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1213 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1212 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1214 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1213 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1215 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1214, %1152 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1216 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1215 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1217 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1216 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1218 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_193 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1219 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_192 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1220 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1219 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1221 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1220 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_24 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_605 = tensor.pad %1216 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_606 = tensor.cast %padded_605 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1222 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1221 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_607 = tensor.cast %1222 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_608 = tensor.expand_shape %cast_606 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_609 = tensor.expand_shape %1218 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_610 = tensor.expand_shape %cast_607 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1223 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_608, %expanded_609, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_610 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_611 = tensor.collapse_shape %1223 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_612 = tensor.cast %collapsed_611 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1224 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_612 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_24 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1225 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1224 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1226 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1225 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1227 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1226 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1228 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1227 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1229 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_191 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1230 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1229 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1231 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_190 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1232 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1231 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1233 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1228 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1234 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1233 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1235 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1234 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1236 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1228, %1235 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1237 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1236, %1236 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1238 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1237 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1239 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1238 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1240 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1239 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1241 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1240 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1242 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1241 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1243 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1236, %1242 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1244 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1243, %1230 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1245 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1244, %1232 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1246 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1245 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1247 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_189 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1248 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_188 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1249 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1248 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1250 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1247 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1251 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1246 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1252 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1250 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_613 = tensor.collapse_shape %1251 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_614 = tensor.collapse_shape %1252 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1253 = linalg.quantized_batch_matmul ins(%collapsed_613, %collapsed_614, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_615 = tensor.expand_shape %1253 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1254 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_615 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1255 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1249, %1254 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1256 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1255 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1257 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1256 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1258 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1257, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1259 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1258 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1260 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1259, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1261 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1257, %1260 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1262 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1261, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1263 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1262 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1264 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_187 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1265 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_186 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1266 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1265 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1267 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1264 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1268 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1263 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1269 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1267 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_616 = tensor.collapse_shape %1268 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_617 = tensor.collapse_shape %1269 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1270 = linalg.quantized_batch_matmul ins(%collapsed_616, %collapsed_617, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_618 = tensor.expand_shape %1270 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1271 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_618 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1272 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1266, %1271 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1273 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1272 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1274 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1273 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1275 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1274 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1276 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1275 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1277 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_353, %1276 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1278 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1277 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1279 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1278 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1280 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1279, %1217 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1281 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1280 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1282 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1281 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1283 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_185 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1284 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_184 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1285 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1284 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1286 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1285 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_8 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_619 = tensor.pad %1281 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_620 = tensor.cast %padded_619 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1287 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1286 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_621 = tensor.cast %1287 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_622 = tensor.expand_shape %cast_620 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_623 = tensor.expand_shape %1283 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_624 = tensor.expand_shape %cast_621 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1288 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_622, %expanded_623, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_624 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_625 = tensor.collapse_shape %1288 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_626 = tensor.cast %collapsed_625 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1289 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_626 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1290 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1289 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1291 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1290 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1292 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1291 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1293 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1292 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1294 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_183 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1295 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1294 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1296 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_182 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1297 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1296 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1298 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1293 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1299 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1298 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1300 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1299 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1301 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1293, %1300 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1302 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1301, %1301 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1303 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1302 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1304 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1303 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1305 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1304 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1306 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1305 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1307 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1306 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1308 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1301, %1307 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1309 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1308, %1295 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1310 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1309, %1297 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1311 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1310 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1312 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_181 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1313 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_180 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1314 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1313 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1315 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1312 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1316 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1311 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1317 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1315 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_627 = tensor.collapse_shape %1316 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_628 = tensor.collapse_shape %1317 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1318 = linalg.quantized_batch_matmul ins(%collapsed_627, %collapsed_628, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_629 = tensor.expand_shape %1318 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1319 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_629 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1320 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1314, %1319 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1321 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1320 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1322 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1321 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1323 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1322, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1324 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1323 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1325 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1324, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1326 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1322, %1325 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1327 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1326, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1328 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1327 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1329 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_179 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1330 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_178 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1331 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1330 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1332 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1329 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1333 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1328 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1334 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1332 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_630 = tensor.collapse_shape %1333 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_631 = tensor.collapse_shape %1334 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1335 = linalg.quantized_batch_matmul ins(%collapsed_630, %collapsed_631, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_632 = tensor.expand_shape %1335 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1336 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_632 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1337 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1331, %1336 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1338 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1337 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1339 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1338 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1340 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1339 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1341 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1340 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1342 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_352, %1341 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1343 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1342 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1344 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1343 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1345 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1344, %1282 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1346 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1345 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1347 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1346 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1348 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_177 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1349 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_176 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1350 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1349 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1351 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1350 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_18 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_633 = tensor.pad %1346 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_634 = tensor.cast %padded_633 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1352 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1351 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_635 = tensor.cast %1352 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_636 = tensor.expand_shape %cast_634 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_637 = tensor.expand_shape %1348 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_638 = tensor.expand_shape %cast_635 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1353 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_636, %expanded_637, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_638 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_639 = tensor.collapse_shape %1353 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_640 = tensor.cast %collapsed_639 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1354 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_640 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1355 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1354 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1356 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1355 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1357 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1356 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1358 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1357 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1359 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_175 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1360 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1359 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1361 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_174 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1362 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1361 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1363 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1358 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1364 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1363 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1365 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1364 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1366 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1358, %1365 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1367 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1366, %1366 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1368 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1367 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1369 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1368 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1370 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1369 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1371 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1370 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1372 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1371 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1373 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1366, %1372 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1374 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1373, %1360 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1375 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1374, %1362 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1376 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1375 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1377 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_173 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1378 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_172 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1379 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1378 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1380 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1377 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1381 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1376 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1382 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1380 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_641 = tensor.collapse_shape %1381 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_642 = tensor.collapse_shape %1382 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1383 = linalg.quantized_batch_matmul ins(%collapsed_641, %collapsed_642, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_643 = tensor.expand_shape %1383 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1384 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_643 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1385 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1379, %1384 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1386 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1385 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1387 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1386 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1388 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1387, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1389 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1388 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1390 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1389, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1391 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1387, %1390 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1392 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1391, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1393 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1392 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1394 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_171 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1395 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_170 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1396 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1395 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1397 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1394 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1398 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1393 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1399 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1397 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_644 = tensor.collapse_shape %1398 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_645 = tensor.collapse_shape %1399 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1400 = linalg.quantized_batch_matmul ins(%collapsed_644, %collapsed_645, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_646 = tensor.expand_shape %1400 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1401 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_646 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1402 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1396, %1401 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1403 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1402 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1404 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1403 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1405 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1404 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1406 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1405 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1407 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_351, %1406 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1408 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1407 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1409 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1408 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1410 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1409, %1347 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1411 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1410 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1412 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1411 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1413 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_169 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1414 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_168 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1415 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1414 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1416 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1415 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_18 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_647 = tensor.pad %1411 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_648 = tensor.cast %padded_647 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1417 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1416 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_649 = tensor.cast %1417 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_650 = tensor.expand_shape %cast_648 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_651 = tensor.expand_shape %1413 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_652 = tensor.expand_shape %cast_649 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1418 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_650, %expanded_651, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_652 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_653 = tensor.collapse_shape %1418 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_654 = tensor.cast %collapsed_653 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1419 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_654 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1420 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1419 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1421 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1420 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1422 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1421 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1423 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1422 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1424 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_167 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1425 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1424 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1426 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_166 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1427 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1426 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1428 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1423 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1429 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1428 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1430 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1429 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1431 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1423, %1430 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1432 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1431, %1431 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1433 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1432 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1434 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1433 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1435 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1434 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1436 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1435 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1437 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1436 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1438 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1431, %1437 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1439 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1438, %1425 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1440 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1439, %1427 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1441 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1440 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1442 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_165 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1443 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_164 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1444 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1443 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1445 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1442 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1446 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1441 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1447 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1445 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_655 = tensor.collapse_shape %1446 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_656 = tensor.collapse_shape %1447 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1448 = linalg.quantized_batch_matmul ins(%collapsed_655, %collapsed_656, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_657 = tensor.expand_shape %1448 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1449 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_657 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1450 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1444, %1449 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1451 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1450 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1452 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1451 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1453 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1452, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1454 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1453 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1455 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1454, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1456 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1452, %1455 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1457 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1456, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1458 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1457 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1459 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_163 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1460 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_162 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1461 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1460 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1462 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1459 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1463 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1458 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1464 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1462 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_658 = tensor.collapse_shape %1463 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_659 = tensor.collapse_shape %1464 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1465 = linalg.quantized_batch_matmul ins(%collapsed_658, %collapsed_659, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_660 = tensor.expand_shape %1465 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1466 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_660 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1467 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1461, %1466 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1468 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1467 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1469 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1468 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1470 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1469 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1471 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1470 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1472 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_350, %1471 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1473 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1472 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1474 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1473 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1475 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1474, %1412 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1476 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1475 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1477 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1476 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1478 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_161 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1479 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_160 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1480 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1479 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1481 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1480 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_18 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_661 = tensor.pad %1476 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_662 = tensor.cast %padded_661 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1482 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1481 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_663 = tensor.cast %1482 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_664 = tensor.expand_shape %cast_662 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_665 = tensor.expand_shape %1478 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_666 = tensor.expand_shape %cast_663 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1483 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_664, %expanded_665, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_666 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_667 = tensor.collapse_shape %1483 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_668 = tensor.cast %collapsed_667 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1484 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_668 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1485 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1484 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1486 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1485 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1487 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1486 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1488 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1487 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1489 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_159 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1490 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1489 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1491 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_158 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1492 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1491 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1493 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1488 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1494 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1493 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1495 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1494 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1496 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1488, %1495 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1497 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1496, %1496 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1498 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1497 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1499 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1498 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1500 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1499 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1501 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1500 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1502 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1501 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1503 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1496, %1502 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1504 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1503, %1490 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1505 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1504, %1492 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1506 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1505 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1507 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_157 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1508 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_156 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1509 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1508 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1510 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1507 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1511 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1506 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1512 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1510 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_669 = tensor.collapse_shape %1511 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_670 = tensor.collapse_shape %1512 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1513 = linalg.quantized_batch_matmul ins(%collapsed_669, %collapsed_670, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_671 = tensor.expand_shape %1513 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1514 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_671 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1515 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1509, %1514 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1516 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1515 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1517 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1516 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1518 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1517, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1519 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1518 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1520 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1519, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1521 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1517, %1520 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1522 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1521, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1523 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1522 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1524 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_155 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1525 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_154 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1526 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1525 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1527 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1524 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1528 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1523 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1529 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1527 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_672 = tensor.collapse_shape %1528 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_673 = tensor.collapse_shape %1529 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1530 = linalg.quantized_batch_matmul ins(%collapsed_672, %collapsed_673, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_674 = tensor.expand_shape %1530 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1531 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_674 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1532 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1526, %1531 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1533 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1532 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1534 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1533 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1535 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1534 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1536 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1535 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1537 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_349, %1536 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1538 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1537 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1539 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1538 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1540 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1539, %1477 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1541 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1540 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1542 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1541 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_17 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1543 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_153 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1544 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_152 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1545 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1544 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1546 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1545 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_12 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_675 = tensor.pad %1541 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_676 = tensor.cast %padded_675 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1547 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1546 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_677 = tensor.cast %1547 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_678 = tensor.expand_shape %cast_676 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_679 = tensor.expand_shape %1543 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_680 = tensor.expand_shape %cast_677 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1548 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_678, %expanded_679, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_680 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_681 = tensor.collapse_shape %1548 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_682 = tensor.cast %collapsed_681 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1549 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_682 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1550 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1549 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1551 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1550 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1552 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1551 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1553 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1552 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1554 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_151 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1555 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1554 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1556 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_150 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1557 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1556 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1558 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1553 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1559 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1558 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1560 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1559 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1561 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1553, %1560 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1562 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1561, %1561 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1563 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1562 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1564 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1563 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1565 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1564 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1566 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1565 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1567 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1566 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1568 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1561, %1567 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1569 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1568, %1555 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1570 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1569, %1557 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1571 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1570 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1572 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_149 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1573 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_148 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_12 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1574 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1573 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_12 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1575 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1572 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1576 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1571 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1577 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1575 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_683 = tensor.collapse_shape %1576 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_684 = tensor.collapse_shape %1577 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1578 = linalg.quantized_batch_matmul ins(%collapsed_683, %collapsed_684, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_685 = tensor.expand_shape %1578 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1579 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_685 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1580 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1574, %1579 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1581 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1580 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1582 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1581 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1583 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1582, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1584 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1583 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1585 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1584, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1586 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1582, %1585 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1587 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1586, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1588 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1587 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1589 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_147 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1590 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_146 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1591 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1590 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1592 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1589 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1593 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1588 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1594 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1592 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_686 = tensor.collapse_shape %1593 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_687 = tensor.collapse_shape %1594 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1595 = linalg.quantized_batch_matmul ins(%collapsed_686, %collapsed_687, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_688 = tensor.expand_shape %1595 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1596 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_688 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_24 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1597 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1591, %1596 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1598 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1597 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1599 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1598 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1600 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1599 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1601 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1600 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1602 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_348, %1601 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1603 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1602 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1604 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1603 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1605 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1604, %1542 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1606 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1605 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1607 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1606 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_17 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1608 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_145 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1609 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_144 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1610 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1609 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1611 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1610 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_12 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_689 = tensor.pad %1606 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_690 = tensor.cast %padded_689 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1612 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1611 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_691 = tensor.cast %1612 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_692 = tensor.expand_shape %cast_690 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_693 = tensor.expand_shape %1608 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_694 = tensor.expand_shape %cast_691 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1613 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_692, %expanded_693, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_694 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_695 = tensor.collapse_shape %1613 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_696 = tensor.cast %collapsed_695 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1614 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_696 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1615 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1614 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1616 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1615 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1617 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1616 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1618 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1617 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1619 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_143 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1620 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1619 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1621 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_142 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1622 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1621 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1623 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1618 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1624 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1623 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1625 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1624 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1626 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1618, %1625 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1627 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1626, %1626 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1628 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1627 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1629 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1628 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1630 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1629 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1631 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1630 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1632 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1631 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1633 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1626, %1632 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1634 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1633, %1620 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1635 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1634, %1622 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1636 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1635 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1637 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_141 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1638 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_140 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1639 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1638 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1640 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1637 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1641 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1636 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1642 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1640 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_697 = tensor.collapse_shape %1641 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_698 = tensor.collapse_shape %1642 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1643 = linalg.quantized_batch_matmul ins(%collapsed_697, %collapsed_698, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_699 = tensor.expand_shape %1643 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1644 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_699 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1645 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1639, %1644 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1646 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1645 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1647 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1646 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1648 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1647, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1649 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1648 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1650 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1649, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1651 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1647, %1650 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1652 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1651, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1653 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1652 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1654 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_139 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1655 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_138 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1656 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1655 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1657 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1654 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1658 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1653 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1659 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1657 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_700 = tensor.collapse_shape %1658 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_701 = tensor.collapse_shape %1659 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1660 = linalg.quantized_batch_matmul ins(%collapsed_700, %collapsed_701, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_702 = tensor.expand_shape %1660 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1661 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_702 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1662 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1656, %1661 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1663 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1662 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1664 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1663 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1665 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1664 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1666 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1665 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1667 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_347, %1666 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1668 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1667 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1669 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1668 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1670 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1669, %1607 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1671 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1670 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1672 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1671 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_17 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1673 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_137 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1674 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_136 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1675 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1674 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1676 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1675 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_12 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_703 = tensor.pad %1671 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_704 = tensor.cast %padded_703 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1677 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1676 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_705 = tensor.cast %1677 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_706 = tensor.expand_shape %cast_704 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_707 = tensor.expand_shape %1673 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_708 = tensor.expand_shape %cast_705 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1678 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_706, %expanded_707, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_708 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_709 = tensor.collapse_shape %1678 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_710 = tensor.cast %collapsed_709 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1679 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_710 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1680 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1679 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1681 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1680 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1682 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1681 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1683 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1682 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1684 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_135 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1685 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1684 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1686 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_134 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1687 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1686 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1688 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1683 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1689 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1688 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1690 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1689 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1691 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1683, %1690 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1692 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1691, %1691 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1693 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1692 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1694 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1693 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1695 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1694 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1696 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1695 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1697 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1696 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1698 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1691, %1697 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1699 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1698, %1685 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1700 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1699, %1687 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1701 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1700 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1702 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_133 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1703 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_132 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1704 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1703 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1705 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1702 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1706 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1701 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1707 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1705 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_711 = tensor.collapse_shape %1706 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_712 = tensor.collapse_shape %1707 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1708 = linalg.quantized_batch_matmul ins(%collapsed_711, %collapsed_712, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_713 = tensor.expand_shape %1708 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1709 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_713 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1710 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1704, %1709 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1711 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1710 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1712 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1711 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1713 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1712, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1714 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1713 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1715 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1714, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1716 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1712, %1715 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1717 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1716, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1718 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1717 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1719 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_131 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1720 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_130 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1721 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1720 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1722 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1719 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1723 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1718 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1724 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1722 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_714 = tensor.collapse_shape %1723 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_715 = tensor.collapse_shape %1724 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1725 = linalg.quantized_batch_matmul ins(%collapsed_714, %collapsed_715, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_716 = tensor.expand_shape %1725 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1726 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_716 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_24 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1727 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1721, %1726 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1728 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1727 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1729 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1728 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1730 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1729 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1731 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1730 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1732 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_346, %1731 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1733 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1732 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1734 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1733 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1735 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1734, %1672 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1736 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1735 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1737 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1736 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_17 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1738 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_129 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1739 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_128 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1740 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1739 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1741 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1740 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_18 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_717 = tensor.pad %1736 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_718 = tensor.cast %padded_717 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1742 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1741 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_719 = tensor.cast %1742 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_720 = tensor.expand_shape %cast_718 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_721 = tensor.expand_shape %1738 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_722 = tensor.expand_shape %cast_719 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1743 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_720, %expanded_721, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_722 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_723 = tensor.collapse_shape %1743 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_724 = tensor.cast %collapsed_723 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1744 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_724 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1745 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1744 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1746 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1745 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1747 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1746 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1748 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1747 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1749 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_127 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1750 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1749 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1751 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_126 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1752 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1751 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1753 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1748 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1754 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1753 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1755 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1754 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1756 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1748, %1755 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1757 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1756, %1756 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1758 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1757 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1759 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1758 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1760 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1759 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1761 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1760 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1762 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1761 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1763 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1756, %1762 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1764 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1763, %1750 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1765 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1764, %1752 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1766 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1765 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1767 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_125 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1768 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_124 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1769 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1768 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1770 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1767 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1771 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1766 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1772 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1770 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_725 = tensor.collapse_shape %1771 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_726 = tensor.collapse_shape %1772 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1773 = linalg.quantized_batch_matmul ins(%collapsed_725, %collapsed_726, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_727 = tensor.expand_shape %1773 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1774 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_727 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1775 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1769, %1774 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1776 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1775 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1777 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1776 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1778 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1777, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1779 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1778 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1780 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1779, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1781 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1777, %1780 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1782 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1781, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1783 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1782 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1784 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_123 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1785 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_122 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1786 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1785 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1787 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1784 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1788 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1783 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1789 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1787 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_728 = tensor.collapse_shape %1788 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_729 = tensor.collapse_shape %1789 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1790 = linalg.quantized_batch_matmul ins(%collapsed_728, %collapsed_729, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_730 = tensor.expand_shape %1790 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1791 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_730 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1792 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1786, %1791 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1793 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1792 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1794 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1793 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1795 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1794 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1796 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1795 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1797 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_345, %1796 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1798 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1797 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1799 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1798 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1800 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1799, %1737 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1801 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1800 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_14 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1802 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1801 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_14 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1803 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_121 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1804 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_120 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1805 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1804 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1806 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1805 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_731 = tensor.pad %1801 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_732 = tensor.cast %padded_731 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1807 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1806 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_733 = tensor.cast %1807 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_734 = tensor.expand_shape %cast_732 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_735 = tensor.expand_shape %1803 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_736 = tensor.expand_shape %cast_733 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1808 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_734, %expanded_735, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_736 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_737 = tensor.collapse_shape %1808 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_738 = tensor.cast %collapsed_737 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1809 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_738 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_16 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1810 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1809 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1811 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1810 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1812 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1811 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1813 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1812 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1814 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_119 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1815 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1814 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1816 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_118 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1817 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1816 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1818 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1813 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1819 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1818 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1820 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1819 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1821 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1813, %1820 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1822 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1821, %1821 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1823 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1822 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1824 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1823 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1825 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1824 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1826 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1825 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1827 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1826 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1828 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1821, %1827 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1829 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1828, %1815 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1830 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1829, %1817 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1831 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1830 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1832 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_117 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1833 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_116 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1834 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1833 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1835 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1832 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1836 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1831 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1837 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1835 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_739 = tensor.collapse_shape %1836 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_740 = tensor.collapse_shape %1837 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1838 = linalg.quantized_batch_matmul ins(%collapsed_739, %collapsed_740, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_741 = tensor.expand_shape %1838 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1839 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_741 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1840 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1834, %1839 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1841 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1840 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1842 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1841 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1843 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1842, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1844 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1843 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1845 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1844, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1846 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1842, %1845 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1847 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1846, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1848 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1847 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1849 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_115 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1850 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_114 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1851 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1850 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1852 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1849 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1853 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1848 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1854 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1852 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_742 = tensor.collapse_shape %1853 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_743 = tensor.collapse_shape %1854 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1855 = linalg.quantized_batch_matmul ins(%collapsed_742, %collapsed_743, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_744 = tensor.expand_shape %1855 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1856 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_744 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_24 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1857 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1851, %1856 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1858 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1857 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1859 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1858 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1860 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1859 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1861 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1860 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1862 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_344, %1861 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1863 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1862 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1864 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1863 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1865 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1864, %1802 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1866 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1865 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_14 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1867 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1866 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_14 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1868 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_113 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1869 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_112 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1870 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1869 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1871 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1870 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_12 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_745 = tensor.pad %1866 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_746 = tensor.cast %padded_745 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1872 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1871 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_747 = tensor.cast %1872 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_748 = tensor.expand_shape %cast_746 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_749 = tensor.expand_shape %1868 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_750 = tensor.expand_shape %cast_747 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1873 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_748, %expanded_749, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_750 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_751 = tensor.collapse_shape %1873 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_752 = tensor.cast %collapsed_751 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1874 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_752 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1875 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1874 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1876 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1875 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1877 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1876 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1878 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1877 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1879 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_111 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1880 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1879 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1881 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_110 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1882 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1881 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1883 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1878 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1884 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1883 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1885 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1884 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1886 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1878, %1885 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1887 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1886, %1886 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1888 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1887 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1889 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1888 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1890 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1889 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1891 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1890 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1892 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1891 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1893 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1886, %1892 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1894 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1893, %1880 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1895 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1894, %1882 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1896 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1895 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1897 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_109 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1898 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_108 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1899 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1898 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1900 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1897 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1901 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1896 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1902 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1900 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_753 = tensor.collapse_shape %1901 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_754 = tensor.collapse_shape %1902 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1903 = linalg.quantized_batch_matmul ins(%collapsed_753, %collapsed_754, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_755 = tensor.expand_shape %1903 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1904 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_755 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1905 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1899, %1904 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1906 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1905 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1907 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1906 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1908 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1907, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1909 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1908 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1910 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1909, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1911 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1907, %1910 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1912 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1911, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1913 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1912 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1914 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_107 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1915 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_106 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1916 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1915 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_9 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1917 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1914 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1918 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1913 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1919 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1917 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_756 = tensor.collapse_shape %1918 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_757 = tensor.collapse_shape %1919 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1920 = linalg.quantized_batch_matmul ins(%collapsed_756, %collapsed_757, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_758 = tensor.expand_shape %1920 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1921 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_758 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_24 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1922 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1916, %1921 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1923 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1922 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1924 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1923 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1925 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1924 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1926 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1925 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1927 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_343, %1926 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1928 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1927 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1929 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1928 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1930 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1929, %1867 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1931 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1930 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_14 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1932 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1931 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_14 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1933 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_105 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1934 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_104 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1935 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1934 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_15 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1936 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1935 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_759 = tensor.pad %1931 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_760 = tensor.cast %padded_759 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %1937 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1936 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_761 = tensor.cast %1937 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_762 = tensor.expand_shape %cast_760 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_763 = tensor.expand_shape %1933 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_764 = tensor.expand_shape %cast_761 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %1938 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_762, %expanded_763, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_764 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_765 = tensor.collapse_shape %1938 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_766 = tensor.cast %collapsed_765 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %1939 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_766 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_16 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1940 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1939 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1941 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1940 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1942 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1941 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %1943 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1942 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1944 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_103 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1945 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1944 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1946 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_102 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1947 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1946 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1948 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1943 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1949 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1948 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1950 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1949 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1951 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1943, %1950 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1952 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1951, %1951 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1953 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%1952 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1954 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1953 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1955 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1954 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1956 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1955 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %1957 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1956 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1958 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1951, %1957 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1959 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1958, %1945 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1960 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1959, %1947 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1961 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1960 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1962 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_101 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %1963 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_100 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %1964 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1963 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %1965 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1962 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %1966 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1961 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1967 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1965 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_767 = tensor.collapse_shape %1966 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_768 = tensor.collapse_shape %1967 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %1968 = linalg.quantized_batch_matmul ins(%collapsed_767, %collapsed_768, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_769 = tensor.expand_shape %1968 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %1969 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_769 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_12 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1970 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1964, %1969 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1971 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1970 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1972 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1971 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1973 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1972, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1974 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1973 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1975 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1974, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1976 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1972, %1975 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1977 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1976, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %1978 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1977 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1979 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_99 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %1980 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_98 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %1981 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1980 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %1982 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%1979 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %1983 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1978 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %1984 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1982 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_770 = tensor.collapse_shape %1983 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_771 = tensor.collapse_shape %1984 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %1985 = linalg.quantized_batch_matmul ins(%collapsed_770, %collapsed_771, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_772 = tensor.expand_shape %1985 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %1986 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_772 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_8 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1987 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1981, %1986 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1988 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1987 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %1989 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1988 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %1990 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1989 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1991 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1990 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1992 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_342, %1991 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1993 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1992 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1994 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1993 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1995 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1994, %1932 : tensor<1x512x14x14xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1996 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1995 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_14 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %1997 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1996 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_14 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %1998 = linalg.generic {indexing_maps = [#map10, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_97 : tensor<512x1x7x7xf32>) outs(%550 : tensor<512x1x7x7xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x1x7x7xi8> | |
| %1999 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_96 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %2000 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%1999 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_6 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %2001 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%2000 : tensor<512xf32>) outs(%538 : tensor<512xi32>) { | |
| ^bb0(%in: f32, %out: i32): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_2 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_3 : f32 | |
| %2632 = arith.select %2630, %cst_2, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_3, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i32 | |
| linalg.yield %2634 : i32 | |
| } -> tensor<512xi32> | |
| %padded_773 = tensor.pad %1996 low[0, 0, 3, 3] high[0, 0, 3, 3] { | |
| ^bb0(%arg1: index, %arg2: index, %arg3: index, %arg4: index): | |
| tensor.yield %c0_i8 : i8 | |
| } : tensor<1x512x14x14xi8> to tensor<1x512x20x20xi8> | |
| %cast_774 = tensor.cast %padded_773 : tensor<1x512x20x20xi8> to tensor<?x?x?x?xi8> | |
| %2002 = linalg.generic {indexing_maps = [#map3, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2001 : tensor<512xi32>) outs(%540 : tensor<1x512x14x14xi32>) { | |
| ^bb0(%in: i32, %out: i32): | |
| linalg.yield %in : i32 | |
| } -> tensor<1x512x14x14xi32> | |
| %cast_775 = tensor.cast %2002 : tensor<1x512x14x14xi32> to tensor<1x512x?x?xi32> | |
| %expanded_776 = tensor.expand_shape %cast_774 [[0], [1, 2], [3], [4]] output_shape [%c1, 512, %c1, %c20, %c20] : tensor<?x?x?x?xi8> into tensor<?x512x?x?x?xi8> | |
| %expanded_777 = tensor.expand_shape %1998 [[0, 1], [2], [3], [4]] output_shape [512, 1, 1, 7, 7] : tensor<512x1x7x7xi8> into tensor<512x1x1x7x7xi8> | |
| %expanded_778 = tensor.expand_shape %cast_775 [[0], [1, 2], [3], [4]] output_shape [1, 512, 1, %c14, %c14] : tensor<1x512x?x?xi32> into tensor<1x512x1x?x?xi32> | |
| %2003 = linalg.conv_2d_ngchw_gfchw_q {dilations = dense<1> : vector<2xi64>, strides = dense<1> : vector<2xi64>} ins(%expanded_776, %expanded_777, %c0_i64, %c0_i64 : tensor<?x512x?x?x?xi8>, tensor<512x1x1x7x7xi8>, i64, i64) outs(%expanded_778 : tensor<1x512x1x?x?xi32>) -> tensor<1x512x1x?x?xi32> | |
| %collapsed_779 = tensor.collapse_shape %2003 [[0], [1, 2], [3], [4]] : tensor<1x512x1x?x?xi32> into tensor<1x512x?x?xi32> | |
| %cast_780 = tensor.cast %collapsed_779 : tensor<1x512x?x?xi32> to tensor<1x512x14x14xi32> | |
| %2004 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cast_780 : tensor<1x512x14x14xi32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_16 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %2005 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2004 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %2006 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2005 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %2007 = linalg.generic {indexing_maps = [#map1, #map4], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2006 : tensor<1x512x14x14xf32>) outs(%560 : tensor<1x14x512x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x512x14xf32> | |
| %2008 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2007 : tensor<1x14x512x14xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %2009 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_95 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %2010 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%2009 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %2011 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_94 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %2012 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%2011 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %2013 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%2008 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %2014 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2013 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %2015 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2014 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %2016 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2008, %2015 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.subf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %2017 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2016, %2016 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %2018 = linalg.generic {indexing_maps = [#map1, #map6], iterator_types = ["parallel", "parallel", "parallel", "reduction"]} ins(%2017 : tensor<1x14x14x512xf32>) outs(%569 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %out : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %2019 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2018 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.divf %in, %cst_23 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %2020 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2019 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = arith.addf %in, %cst_11 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %2021 = linalg.generic {indexing_maps = [#map7, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2020 : tensor<1x14x14x1xf32>) outs(%568 : tensor<1x14x14x1xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.rsqrt %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x1xf32> | |
| %2022 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2021 : tensor<1x14x14x1xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %2023 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2016, %2022 : tensor<1x14x14x512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %2024 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2023, %2010 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %2025 = linalg.generic {indexing_maps = [#map, #map8, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2024, %2012 : tensor<1x14x14x512xf32>, tensor<512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %2026 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2025 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_17 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %2027 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_93 : tensor<2048x512xf32>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_6 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048x512xi8> | |
| %2028 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_92 : tensor<2048xf32>) outs(%587 : tensor<2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_16 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<2048xi8> | |
| %2029 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%2028 : tensor<2048xi8>) outs(%589 : tensor<2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_16 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<2048xf32> | |
| %2030 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%2027 : tensor<2048x512xi8>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<512x2048xi8> | |
| %2031 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2026 : tensor<1x14x14x512xi8>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %2032 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2030 : tensor<512x2048xi8>) outs(%594 : tensor<1x14x512x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x512x2048xi8> | |
| %collapsed_781 = tensor.collapse_shape %2031 [[0, 1], [2], [3]] : tensor<1x14x14x512xi8> into tensor<14x14x512xi8> | |
| %collapsed_782 = tensor.collapse_shape %2032 [[0, 1], [2], [3]] : tensor<1x14x512x2048xi8> into tensor<14x512x2048xi8> | |
| %2033 = linalg.quantized_batch_matmul ins(%collapsed_781, %collapsed_782, %c0_i32, %c0_i32 : tensor<14x14x512xi8>, tensor<14x512x2048xi8>, i32, i32) outs(%597 : tensor<14x14x2048xi32>) -> tensor<14x14x2048xi32> | |
| %expanded_783 = tensor.expand_shape %2033 [[0, 1], [2], [3]] output_shape [1, 14, 14, 2048] : tensor<14x14x2048xi32> into tensor<1x14x14x2048xi32> | |
| %2034 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_783 : tensor<1x14x14x2048xi32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_18 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %2035 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2029, %2034 : tensor<2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %2036 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2035 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %2037 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2036 : tensor<1x14x14x2048xi8>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %2038 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2037, %cst_370 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.divf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %2039 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2038 : tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| %2627 = math.erf %in : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %2040 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2039, %cst_371 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %2041 = linalg.generic {indexing_maps = [#map, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2037, %2040 : tensor<1x14x14x2048xf32>, tensor<1x14x14x2048xf32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %2042 = linalg.generic {indexing_maps = [#map, #map14, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2041, %cst_372 : tensor<1x14x14x2048xf32>, tensor<f32>) outs(%599 : tensor<1x14x14x2048xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x2048xf32> | |
| %2043 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2042 : tensor<1x14x14x2048xf32>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_9 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %2044 = linalg.generic {indexing_maps = [#map11, #map11], iterator_types = ["parallel", "parallel"]} ins(%cst_91 : tensor<512x2048xf32>) outs(%591 : tensor<512x2048xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_15 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512x2048xi8> | |
| %2045 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%cst_90 : tensor<512xf32>) outs(%83 : tensor<512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_7 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<512xi8> | |
| %2046 = linalg.generic {indexing_maps = [#map2, #map2], iterator_types = ["parallel"]} ins(%2045 : tensor<512xi8>) outs(%85 : tensor<512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_7 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<512xf32> | |
| %2047 = linalg.generic {indexing_maps = [#map11, #map12], iterator_types = ["parallel", "parallel"]} ins(%2044 : tensor<512x2048xi8>) outs(%585 : tensor<2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<2048x512xi8> | |
| %2048 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2043 : tensor<1x14x14x2048xi8>) outs(%602 : tensor<1x14x14x2048xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x14x2048xi8> | |
| %2049 = linalg.generic {indexing_maps = [#map13, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2047 : tensor<2048x512xi8>) outs(%616 : tensor<1x14x2048x512xi8>) { | |
| ^bb0(%in: i8, %out: i8): | |
| linalg.yield %in : i8 | |
| } -> tensor<1x14x2048x512xi8> | |
| %collapsed_784 = tensor.collapse_shape %2048 [[0, 1], [2], [3]] : tensor<1x14x14x2048xi8> into tensor<14x14x2048xi8> | |
| %collapsed_785 = tensor.collapse_shape %2049 [[0, 1], [2], [3]] : tensor<1x14x2048x512xi8> into tensor<14x2048x512xi8> | |
| %2050 = linalg.quantized_batch_matmul ins(%collapsed_784, %collapsed_785, %c0_i32, %c0_i32 : tensor<14x14x2048xi8>, tensor<14x2048x512xi8>, i32, i32) outs(%619 : tensor<14x14x512xi32>) -> tensor<14x14x512xi32> | |
| %expanded_786 = tensor.expand_shape %2050 [[0, 1], [2], [3]] output_shape [1, 14, 14, 512] : tensor<14x14x512xi32> into tensor<1x14x14x512xi32> | |
| %2051 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%expanded_786 : tensor<1x14x14x512xi32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i32, %out: f32): | |
| %2627 = arith.sitofp %in : i32 to f32 | |
| %2628 = arith.mulf %2627, %cst_24 : f32 | |
| linalg.yield %2628 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %2052 = linalg.generic {indexing_maps = [#map8, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2046, %2051 : tensor<512xf32>, tensor<1x14x14x512xf32>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.addf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %2053 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2052 : tensor<1x14x14x512xf32>) outs(%583 : tensor<1x14x14x512xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_13 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x14x14x512xi8> | |
| %2054 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2053 : tensor<1x14x14x512xi8>) outs(%562 : tensor<1x14x14x512xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_13 : f32 | |
| linalg.yield %2629 : f32 | |
| } -> tensor<1x14x14x512xf32> | |
| %2055 = linalg.generic {indexing_maps = [#map1, #map9], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2054 : tensor<1x14x14x512xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %2056 = linalg.generic {indexing_maps = [#map1, #map5], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2055 : tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %out: f32): | |
| linalg.yield %in : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %2057 = linalg.generic {indexing_maps = [#map15, #map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%cst_341, %2056 : tensor<512x1x1xf32>, tensor<1x512x14x14xf32>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: f32, %in_890: f32, %out: f32): | |
| %2627 = arith.mulf %in, %in_890 : f32 | |
| linalg.yield %2627 : f32 | |
| } -> tensor<1x512x14x14xf32> | |
| %2058 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2057 : tensor<1x512x14x14xf32>) outs(%547 : tensor<1x512x14x14xi8>) { | |
| ^bb0(%in: f32, %out: i8): | |
| %2627 = arith.divf %in, %cst_5 : f32 | |
| %2628 = math.round %2627 : f32 | |
| %2629 = arith.addf %2628, %cst_4 : f32 | |
| %2630 = arith.cmpf ult, %2629, %cst_0 : f32 | |
| %2631 = arith.cmpf ugt, %2629, %cst_1 : f32 | |
| %2632 = arith.select %2630, %cst_0, %2629 : f32 | |
| %2633 = arith.select %2631, %cst_1, %2632 : f32 | |
| %2634 = arith.fptosi %2633 : f32 to i8 | |
| linalg.yield %2634 : i8 | |
| } -> tensor<1x512x14x14xi8> | |
| %2059 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2058 : tensor<1x512x14x14xi8>) outs(%545 : tensor<1x512x14x14xf32>) { | |
| ^bb0(%in: i8, %out: f32): | |
| %2627 = arith.extsi %in : i8 to i32 | |
| %2628 = arith.sitofp %2627 : i32 to f32 | |
| %2629 = arith.mulf %2628, %cst_5 : f32 | |
| lin |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment