brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.5 KiB · adb47cd Raw
501 lines · plain
1================================================================================2affine_map with indexing and sum3================================================================================4#inline_map_minmax_loop2 = affine_map<()[s0] -> (100, s0 + 1)>5#map0 = affine_map<(i) -> ()>6#bound_map1 = affine_map<(i, j)[s] -> (i + j + s)>7--------------------------------------------------------------------------------8 9(toplevel10  (attribute_alias_def11    (attribute_value12      (builtin_attribute13        (affine_map14          (bare_id)15          (integer_literal)16          (bare_id)17          (integer_literal)))))18  (attribute_alias_def19    (attribute_value20      (builtin_attribute21        (affine_map22          (bare_id)))))23  (attribute_alias_def24    (attribute_value25      (builtin_attribute26        (affine_map27          (bare_id)28          (bare_id)29          (bare_id)30          (bare_id)31          (bare_id)32          (bare_id))))))33 34================================================================================35affine_set expression36================================================================================37#set0 = affine_set<(i)[N, M] : (i >= 0, -i + N >= 0, N - 5 == 0, -i + M + 1 >= 0)>38--------------------------------------------------------------------------------39 40(toplevel41  (attribute_alias_def42    (attribute_value43      (builtin_attribute44        (affine_set45          (bare_id)46          (bare_id)47          (bare_id)48          (bare_id)49          (integer_literal)50          (bare_id)51          (bare_id)52          (integer_literal)53          (bare_id)54          (integer_literal)55          (integer_literal)56          (bare_id)57          (bare_id)58          (integer_literal)59          (integer_literal))))))60 61================================================================================62affine.min and affine.max with non-trivial affine maps63================================================================================64func.func @affine_min(%arg0 : index, %arg1 : index, %arg2 : index) {65  %0 = affine.min affine_map<(d0)[s0] -> (1000, d0 + 512, s0)> (%arg0)[%arg1]66  %1 = affine.min affine_map<(d0, d1)[s0] -> (d0 - d1, s0 + 512)> (%arg0, %arg1)[%arg2]67  %2 = affine.min affine_map<()[s0, s1] -> (s0 - s1, 11)> ()[%arg1, %arg2]68  %3 = affine.min affine_map<()[] -> (77, 78, 79)> ()[]69  return70}71 72func.func @affine_max(%arg0 : index, %arg1 : index, %arg2 : index) {73  %0 = affine.max affine_map<(d0)[s0] -> (1000, d0 + 512, s0)> (%arg0)[%arg1]74  %1 = affine.max affine_map<(d0, d1)[s0] -> (d0 - d1, s0 + 512)> (%arg0, %arg1)[%arg2]75  %2 = affine.max affine_map<()[s0, s1] -> (s0 - s1, 11)> ()[%arg1, %arg2]76  %3 = affine.max affine_map<()[] -> (77, 78, 79)> ()[]77  return78}79--------------------------------------------------------------------------------80 81(toplevel82  (operation83    (custom_operation84      (func_dialect85        (symbol_ref_id)86        (func_arg_list87          (value_use)88          (type89            (builtin_type90              (index_type)))91          (value_use)92          (type93            (builtin_type94              (index_type)))95          (value_use)96          (type97            (builtin_type98              (index_type))))99        (region100          (entry_block101            (operation102              (op_result103                (value_use))104              (custom_operation105                (affine_dialect106                  (attribute107                    (builtin_attribute108                      (affine_map109                        (bare_id)110                        (bare_id)111                        (integer_literal)112                        (bare_id)113                        (integer_literal)114                        (bare_id))))115                  (value_use)116                  (value_use))))117            (operation118              (op_result119                (value_use))120              (custom_operation121                (affine_dialect122                  (attribute123                    (builtin_attribute124                      (affine_map125                        (bare_id)126                        (bare_id)127                        (bare_id)128                        (bare_id)129                        (bare_id)130                        (bare_id)131                        (integer_literal))))132                  (value_use)133                  (value_use)134                  (value_use))))135            (operation136              (op_result137                (value_use))138              (custom_operation139                (affine_dialect140                  (attribute141                    (builtin_attribute142                      (affine_map143                        (bare_id)144                        (bare_id)145                        (bare_id)146                        (bare_id)147                        (integer_literal))))148                  (value_use)149                  (value_use))))150            (operation151              (op_result152                (value_use))153              (custom_operation154                (affine_dialect155                  (attribute156                    (builtin_attribute157                      (affine_map158                        (integer_literal)159                        (integer_literal)160                        (integer_literal)))))))161            (operation162              (custom_operation163                (func_dialect))))))))164  (operation165    (custom_operation166      (func_dialect167        (symbol_ref_id)168        (func_arg_list169          (value_use)170          (type171            (builtin_type172              (index_type)))173          (value_use)174          (type175            (builtin_type176              (index_type)))177          (value_use)178          (type179            (builtin_type180              (index_type))))181        (region182          (entry_block183            (operation184              (op_result185                (value_use))186              (custom_operation187                (affine_dialect188                  (attribute189                    (builtin_attribute190                      (affine_map191                        (bare_id)192                        (bare_id)193                        (integer_literal)194                        (bare_id)195                        (integer_literal)196                        (bare_id))))197                  (value_use)198                  (value_use))))199            (operation200              (op_result201                (value_use))202              (custom_operation203                (affine_dialect204                  (attribute205                    (builtin_attribute206                      (affine_map207                        (bare_id)208                        (bare_id)209                        (bare_id)210                        (bare_id)211                        (bare_id)212                        (bare_id)213                        (integer_literal))))214                  (value_use)215                  (value_use)216                  (value_use))))217            (operation218              (op_result219                (value_use))220              (custom_operation221                (affine_dialect222                  (attribute223                    (builtin_attribute224                      (affine_map225                        (bare_id)226                        (bare_id)227                        (bare_id)228                        (bare_id)229                        (integer_literal))))230                  (value_use)231                  (value_use))))232            (operation233              (op_result234                (value_use))235              (custom_operation236                (affine_dialect237                  (attribute238                    (builtin_attribute239                      (affine_map240                        (integer_literal)241                        (integer_literal)242                        (integer_literal)))))))243            (operation244              (custom_operation245                (func_dialect)))))))))246 247================================================================================248affine.dma_start and affine.dma_wait with complicated affine expressions249================================================================================250func.func @test4(%arg0 : index, %arg1 : index) {251  %0 = memref.alloc() : memref<100x100xf32>252  %1 = memref.alloc() : memref<100x100xf32, 2>253  %2 = memref.alloc() : memref<1xi32>254  %c64 = arith.constant 64 : index255  affine.for %i0 = 0 to 10 {256    affine.for %i1 = 0 to 10 {257      affine.dma_start %0[(%i0 + symbol(%arg0)) floordiv 3, %i1],258                       %1[%i0, (%i1 + symbol(%arg1)) mod 9 + 7],259                       %2[%i0 + %i1 + 11], %c64260        : memref<100x100xf32>, memref<100x100xf32, 2>, memref<1xi32>261      affine.dma_wait %2[%i0 + %i1 + 11], %c64 : memref<1xi32>262    }263  }264  return265}266--------------------------------------------------------------------------------267 268(toplevel269  (operation270    (custom_operation271      (func_dialect272        (symbol_ref_id)273        (func_arg_list274          (value_use)275          (type276            (builtin_type277              (index_type)))278          (value_use)279          (type280            (builtin_type281              (index_type))))282        (region283          (entry_block284            (operation285              (op_result286                (value_use))287              (custom_operation288                (memref_dialect289                  (type290                    (builtin_type291                      (memref_type292                        (dim_list293                          (float_type))))))))294            (operation295              (op_result296                (value_use))297              (custom_operation298                (memref_dialect299                  (type300                    (builtin_type301                      (memref_type302                        (dim_list303                          (float_type))304                        (attribute_value305                          (integer_literal))))))))306            (operation307              (op_result308                (value_use))309              (custom_operation310                (memref_dialect311                  (type312                    (builtin_type313                      (memref_type314                        (dim_list315                          (integer_type))))))))316            (operation317              (op_result318                (value_use))319              (custom_operation320                (arith_dialect321                  (integer_literal)322                  (type323                    (builtin_type324                      (index_type))))))325            (operation326              (custom_operation327                (affine_dialect328                  (value_use)329                  (integer_literal)330                  (integer_literal)331                  (region332                    (entry_block333                      (operation334                        (custom_operation335                          (affine_dialect336                            (value_use)337                            (integer_literal)338                            (integer_literal)339                            (region340                              (entry_block341                                (operation342                                  (custom_operation343                                    (affine_dialect344                                      (value_use)345                                      (value_use)346                                      (value_use)347                                      (integer_literal)348                                      (value_use)349                                      (value_use)350                                      (value_use)351                                      (value_use)352                                      (value_use)353                                      (integer_literal)354                                      (integer_literal)355                                      (value_use)356                                      (value_use)357                                      (value_use)358                                      (integer_literal)359                                      (value_use)360                                      (type361                                        (builtin_type362                                          (memref_type363                                            (dim_list364                                              (float_type)))))365                                      (type366                                        (builtin_type367                                          (memref_type368                                            (dim_list369                                              (float_type))370                                            (attribute_value371                                              (integer_literal)))))372                                      (type373                                        (builtin_type374                                          (memref_type375                                            (dim_list376                                              (integer_type))))))))377                                (operation378                                  (custom_operation379                                    (affine_dialect380                                      (value_use)381                                      (value_use)382                                      (value_use)383                                      (integer_literal)384                                      (value_use)385                                      (type386                                        (builtin_type387                                          (memref_type388                                            (dim_list389                                              (integer_type))))))))))))))))))390            (operation391              (custom_operation392                (func_dialect)))))))))393 394================================================================================395affine_map with complex affine expression396================================================================================397func.func @semiaffine_mod(%arg0: index, %arg1: index) -> index {398  %a = affine.apply affine_map<(d0)[s0] ->((-((d0 floordiv s0) * s0) + s0 * s0) mod s0)> (%arg0)[%arg1]399  return %a : index400}401 402func.func @semiaffine_floordiv(%arg0: index, %arg1: index) -> index {403  %a = affine.apply affine_map<(d0)[s0] ->((-((d0 floordiv s0) * s0) + ((2 * s0) mod (3 * s0))) floordiv s0)> (%arg0)[%arg1]404  return %a : index405}406--------------------------------------------------------------------------------407 408(toplevel409  (operation410    (custom_operation411      (func_dialect412        (symbol_ref_id)413        (func_arg_list414          (value_use)415          (type416            (builtin_type417              (index_type)))418          (value_use)419          (type420            (builtin_type421              (index_type))))422        (func_return423          (type_list_attr_parens424            (type425              (builtin_type426                (index_type)))))427        (region428          (entry_block429            (operation430              (op_result431                (value_use))432              (custom_operation433                (affine_dialect434                  (attribute435                    (builtin_attribute436                      (affine_map437                        (bare_id)438                        (bare_id)439                        (bare_id)440                        (bare_id)441                        (bare_id)442                        (bare_id)443                        (bare_id)444                        (bare_id))))445                  (value_use)446                  (value_use))))447            (operation448              (custom_operation449                (func_dialect450                  (value_use)451                  (type452                    (builtin_type453                      (index_type)))))))))))454  (operation455    (custom_operation456      (func_dialect457        (symbol_ref_id)458        (func_arg_list459          (value_use)460          (type461            (builtin_type462              (index_type)))463          (value_use)464          (type465            (builtin_type466              (index_type))))467        (func_return468          (type_list_attr_parens469            (type470              (builtin_type471                (index_type)))))472        (region473          (entry_block474            (operation475              (op_result476                (value_use))477              (custom_operation478                (affine_dialect479                  (attribute480                    (builtin_attribute481                      (affine_map482                        (bare_id)483                        (bare_id)484                        (bare_id)485                        (bare_id)486                        (bare_id)487                        (integer_literal)488                        (bare_id)489                        (integer_literal)490                        (bare_id)491                        (bare_id))))492                  (value_use)493                  (value_use))))494            (operation495              (custom_operation496                (func_dialect497                  (value_use)498                  (type499                    (builtin_type500                      (index_type))))))))))))501