Skip to content

Instantly share code, notes, and snippets.

@pashu123
Created October 10, 2024 16:15
Show Gist options
  • Save pashu123/7fb1509cf5e60a3c0965af6847375796 to your computer and use it in GitHub Desktop.
Save pashu123/7fb1509cf5e60a3c0965af6847375796 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
// -----// IR Dump After AutoInputConversionPipelinePass (iree-auto-input-conversion) ('builtin.module' operation) //----- //
#map = affine_map<(d0) -> (d0)>
module {
func.func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
%c0 = arith.constant 0 : index
%c3 = arith.constant 3 : index
%c2 = arith.constant 2 : index
%c3528531795_i64 = arith.constant 3528531795 : i64
%c3449720151_i64 = arith.constant 3449720151 : i64
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c1 = arith.constant 1 : index
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c32_i64 = arith.constant 32 : i64
%c64 = arith.constant 64 : index
%c128 = arith.constant 128 : index
%c192 = arith.constant 192 : index
%0 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %arg0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %arg0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %arg0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %arg0[%c1] : tensor<4xi32>
%1 = arith.extui %extracted_1 : i32 to i64
%2 = arith.extui %extracted : i32 to i64
%3 = arith.shli %2, %c32_i64 : i64
%4 = arith.ori %1, %3 : i64
%5:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%0, %0, %0, %0 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%6 = linalg.index 0 : index
%7 = arith.index_cast %6 : index to i64
%8 = arith.addi %7, %4 : i64
%9 = arith.trunci %8 : i64 to i32
%10 = arith.shrui %8, %c32_i64 : i64
%11 = arith.trunci %10 : i64 to i32
%12 = arith.extui %9 : i32 to i64
%13 = arith.muli %12, %c3528531795_i64 : i64
%14 = arith.shrui %13, %c32_i64 : i64
%15 = arith.trunci %14 : i64 to i32
%16 = arith.trunci %13 : i64 to i32
%17 = arith.extui %extracted_0 : i32 to i64
%18 = arith.muli %17, %c3449720151_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.xori %20, %11 : i32
%23 = arith.xori %22, %extracted_0 : i32
%24 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%25 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%26 = arith.extui %23 : i32 to i64
%27 = arith.muli %26, %c3528531795_i64 : i64
%28 = arith.shrui %27, %c32_i64 : i64
%29 = arith.trunci %28 : i64 to i32
%30 = arith.trunci %27 : i64 to i32
%31 = arith.extui %15 : i32 to i64
%32 = arith.muli %31, %c3449720151_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.xori %34, %21 : i32
%37 = arith.xori %36, %24 : i32
%38 = arith.xori %29, %16 : i32
%39 = arith.xori %38, %25 : i32
%40 = arith.addi %extracted_0, %c1013904242_i32 : i32
%41 = arith.addi %extracted_2, %c1993301258_i32 : i32
%42 = arith.extui %37 : i32 to i64
%43 = arith.muli %42, %c3528531795_i64 : i64
%44 = arith.shrui %43, %c32_i64 : i64
%45 = arith.trunci %44 : i64 to i32
%46 = arith.trunci %43 : i64 to i32
%47 = arith.extui %39 : i32 to i64
%48 = arith.muli %47, %c3449720151_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.xori %50, %35 : i32
%53 = arith.xori %52, %40 : i32
%54 = arith.xori %45, %30 : i32
%55 = arith.xori %54, %41 : i32
%56 = arith.addi %extracted_0, %c-626627285_i32 : i32
%57 = arith.addi %extracted_2, %c842468239_i32 : i32
%58 = arith.extui %53 : i32 to i64
%59 = arith.muli %58, %c3528531795_i64 : i64
%60 = arith.shrui %59, %c32_i64 : i64
%61 = arith.trunci %60 : i64 to i32
%62 = arith.trunci %59 : i64 to i32
%63 = arith.extui %55 : i32 to i64
%64 = arith.muli %63, %c3449720151_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.xori %66, %51 : i32
%69 = arith.xori %68, %56 : i32
%70 = arith.xori %61, %46 : i32
%71 = arith.xori %70, %57 : i32
%72 = arith.addi %extracted_0, %c2027808484_i32 : i32
%73 = arith.addi %extracted_2, %c-308364780_i32 : i32
%74 = arith.extui %69 : i32 to i64
%75 = arith.muli %74, %c3528531795_i64 : i64
%76 = arith.shrui %75, %c32_i64 : i64
%77 = arith.trunci %76 : i64 to i32
%78 = arith.trunci %75 : i64 to i32
%79 = arith.extui %71 : i32 to i64
%80 = arith.muli %79, %c3449720151_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.xori %82, %67 : i32
%85 = arith.xori %84, %72 : i32
%86 = arith.xori %77, %62 : i32
%87 = arith.xori %86, %73 : i32
%88 = arith.addi %extracted_0, %c387276957_i32 : i32
%89 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%90 = arith.extui %85 : i32 to i64
%91 = arith.muli %90, %c3528531795_i64 : i64
%92 = arith.shrui %91, %c32_i64 : i64
%93 = arith.trunci %92 : i64 to i32
%94 = arith.trunci %91 : i64 to i32
%95 = arith.extui %87 : i32 to i64
%96 = arith.muli %95, %c3449720151_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.xori %98, %83 : i32
%101 = arith.xori %100, %88 : i32
%102 = arith.xori %93, %78 : i32
%103 = arith.xori %102, %89 : i32
%104 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%105 = arith.addi %extracted_2, %c1684936478_i32 : i32
%106 = arith.extui %101 : i32 to i64
%107 = arith.muli %106, %c3528531795_i64 : i64
%108 = arith.shrui %107, %c32_i64 : i64
%109 = arith.trunci %108 : i64 to i32
%110 = arith.trunci %107 : i64 to i32
%111 = arith.extui %103 : i32 to i64
%112 = arith.muli %111, %c3449720151_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.xori %114, %99 : i32
%117 = arith.xori %116, %104 : i32
%118 = arith.xori %109, %94 : i32
%119 = arith.xori %118, %105 : i32
%120 = arith.addi %extracted_0, %c1401181199_i32 : i32
%121 = arith.addi %extracted_2, %c534103459_i32 : i32
%122 = arith.extui %117 : i32 to i64
%123 = arith.muli %122, %c3528531795_i64 : i64
%124 = arith.shrui %123, %c32_i64 : i64
%125 = arith.trunci %124 : i64 to i32
%126 = arith.trunci %123 : i64 to i32
%127 = arith.extui %119 : i32 to i64
%128 = arith.muli %127, %c3449720151_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.xori %130, %115 : i32
%133 = arith.xori %132, %120 : i32
%134 = arith.xori %125, %110 : i32
%135 = arith.xori %134, %121 : i32
%136 = arith.addi %extracted_0, %c-239350328_i32 : i32
%137 = arith.addi %extracted_2, %c-616729560_i32 : i32
%138 = arith.extui %133 : i32 to i64
%139 = arith.muli %138, %c3528531795_i64 : i64
%140 = arith.shrui %139, %c32_i64 : i64
%141 = arith.trunci %140 : i64 to i32
%142 = arith.trunci %139 : i64 to i32
%143 = arith.extui %135 : i32 to i64
%144 = arith.muli %143, %c3449720151_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.xori %146, %131 : i32
%149 = arith.xori %148, %136 : i32
%150 = arith.xori %141, %126 : i32
%151 = arith.xori %150, %137 : i32
%152 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%153 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%154 = arith.extui %149 : i32 to i64
%155 = arith.muli %154, %c3528531795_i64 : i64
%156 = arith.shrui %155, %c32_i64 : i64
%157 = arith.trunci %156 : i64 to i32
%158 = arith.trunci %155 : i64 to i32
%159 = arith.extui %151 : i32 to i64
%160 = arith.muli %159, %c3449720151_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.xori %162, %147 : i32
%165 = arith.xori %164, %152 : i32
%166 = arith.xori %157, %142 : i32
%167 = arith.xori %166, %153 : i32
linalg.yield %165, %163, %167, %158 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
return %5#0, %5#1, %5#2, %5#3 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>
}
}
// -----// IR Dump After IREEImportPublicPass (iree-import-public) ('builtin.module' operation) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
%c0 = arith.constant 0 : index
%c3 = arith.constant 3 : index
%c2 = arith.constant 2 : index
%c3528531795_i64 = arith.constant 3528531795 : i64
%c3449720151_i64 = arith.constant 3449720151 : i64
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c1 = arith.constant 1 : index
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c32_i64 = arith.constant 32 : i64
%c64 = arith.constant 64 : index
%c128 = arith.constant 128 : index
%c192 = arith.constant 192 : index
%0 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %arg0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %arg0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %arg0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %arg0[%c1] : tensor<4xi32>
%1 = arith.extui %extracted_1 : i32 to i64
%2 = arith.extui %extracted : i32 to i64
%3 = arith.shli %2, %c32_i64 : i64
%4 = arith.ori %1, %3 : i64
%5:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%0, %0, %0, %0 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%6 = linalg.index 0 : index
%7 = arith.index_cast %6 : index to i64
%8 = arith.addi %7, %4 : i64
%9 = arith.trunci %8 : i64 to i32
%10 = arith.shrui %8, %c32_i64 : i64
%11 = arith.trunci %10 : i64 to i32
%12 = arith.extui %9 : i32 to i64
%13 = arith.muli %12, %c3528531795_i64 : i64
%14 = arith.shrui %13, %c32_i64 : i64
%15 = arith.trunci %14 : i64 to i32
%16 = arith.trunci %13 : i64 to i32
%17 = arith.extui %extracted_0 : i32 to i64
%18 = arith.muli %17, %c3449720151_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.xori %20, %11 : i32
%23 = arith.xori %22, %extracted_0 : i32
%24 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%25 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%26 = arith.extui %23 : i32 to i64
%27 = arith.muli %26, %c3528531795_i64 : i64
%28 = arith.shrui %27, %c32_i64 : i64
%29 = arith.trunci %28 : i64 to i32
%30 = arith.trunci %27 : i64 to i32
%31 = arith.extui %15 : i32 to i64
%32 = arith.muli %31, %c3449720151_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.xori %34, %21 : i32
%37 = arith.xori %36, %24 : i32
%38 = arith.xori %29, %16 : i32
%39 = arith.xori %38, %25 : i32
%40 = arith.addi %extracted_0, %c1013904242_i32 : i32
%41 = arith.addi %extracted_2, %c1993301258_i32 : i32
%42 = arith.extui %37 : i32 to i64
%43 = arith.muli %42, %c3528531795_i64 : i64
%44 = arith.shrui %43, %c32_i64 : i64
%45 = arith.trunci %44 : i64 to i32
%46 = arith.trunci %43 : i64 to i32
%47 = arith.extui %39 : i32 to i64
%48 = arith.muli %47, %c3449720151_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.xori %50, %35 : i32
%53 = arith.xori %52, %40 : i32
%54 = arith.xori %45, %30 : i32
%55 = arith.xori %54, %41 : i32
%56 = arith.addi %extracted_0, %c-626627285_i32 : i32
%57 = arith.addi %extracted_2, %c842468239_i32 : i32
%58 = arith.extui %53 : i32 to i64
%59 = arith.muli %58, %c3528531795_i64 : i64
%60 = arith.shrui %59, %c32_i64 : i64
%61 = arith.trunci %60 : i64 to i32
%62 = arith.trunci %59 : i64 to i32
%63 = arith.extui %55 : i32 to i64
%64 = arith.muli %63, %c3449720151_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.xori %66, %51 : i32
%69 = arith.xori %68, %56 : i32
%70 = arith.xori %61, %46 : i32
%71 = arith.xori %70, %57 : i32
%72 = arith.addi %extracted_0, %c2027808484_i32 : i32
%73 = arith.addi %extracted_2, %c-308364780_i32 : i32
%74 = arith.extui %69 : i32 to i64
%75 = arith.muli %74, %c3528531795_i64 : i64
%76 = arith.shrui %75, %c32_i64 : i64
%77 = arith.trunci %76 : i64 to i32
%78 = arith.trunci %75 : i64 to i32
%79 = arith.extui %71 : i32 to i64
%80 = arith.muli %79, %c3449720151_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.xori %82, %67 : i32
%85 = arith.xori %84, %72 : i32
%86 = arith.xori %77, %62 : i32
%87 = arith.xori %86, %73 : i32
%88 = arith.addi %extracted_0, %c387276957_i32 : i32
%89 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%90 = arith.extui %85 : i32 to i64
%91 = arith.muli %90, %c3528531795_i64 : i64
%92 = arith.shrui %91, %c32_i64 : i64
%93 = arith.trunci %92 : i64 to i32
%94 = arith.trunci %91 : i64 to i32
%95 = arith.extui %87 : i32 to i64
%96 = arith.muli %95, %c3449720151_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.xori %98, %83 : i32
%101 = arith.xori %100, %88 : i32
%102 = arith.xori %93, %78 : i32
%103 = arith.xori %102, %89 : i32
%104 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%105 = arith.addi %extracted_2, %c1684936478_i32 : i32
%106 = arith.extui %101 : i32 to i64
%107 = arith.muli %106, %c3528531795_i64 : i64
%108 = arith.shrui %107, %c32_i64 : i64
%109 = arith.trunci %108 : i64 to i32
%110 = arith.trunci %107 : i64 to i32
%111 = arith.extui %103 : i32 to i64
%112 = arith.muli %111, %c3449720151_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.xori %114, %99 : i32
%117 = arith.xori %116, %104 : i32
%118 = arith.xori %109, %94 : i32
%119 = arith.xori %118, %105 : i32
%120 = arith.addi %extracted_0, %c1401181199_i32 : i32
%121 = arith.addi %extracted_2, %c534103459_i32 : i32
%122 = arith.extui %117 : i32 to i64
%123 = arith.muli %122, %c3528531795_i64 : i64
%124 = arith.shrui %123, %c32_i64 : i64
%125 = arith.trunci %124 : i64 to i32
%126 = arith.trunci %123 : i64 to i32
%127 = arith.extui %119 : i32 to i64
%128 = arith.muli %127, %c3449720151_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.xori %130, %115 : i32
%133 = arith.xori %132, %120 : i32
%134 = arith.xori %125, %110 : i32
%135 = arith.xori %134, %121 : i32
%136 = arith.addi %extracted_0, %c-239350328_i32 : i32
%137 = arith.addi %extracted_2, %c-616729560_i32 : i32
%138 = arith.extui %133 : i32 to i64
%139 = arith.muli %138, %c3528531795_i64 : i64
%140 = arith.shrui %139, %c32_i64 : i64
%141 = arith.trunci %140 : i64 to i32
%142 = arith.trunci %139 : i64 to i32
%143 = arith.extui %135 : i32 to i64
%144 = arith.muli %143, %c3449720151_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.xori %146, %131 : i32
%149 = arith.xori %148, %136 : i32
%150 = arith.xori %141, %126 : i32
%151 = arith.xori %150, %137 : i32
%152 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%153 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%154 = arith.extui %149 : i32 to i64
%155 = arith.muli %154, %c3528531795_i64 : i64
%156 = arith.shrui %155, %c32_i64 : i64
%157 = arith.trunci %156 : i64 to i32
%158 = arith.trunci %155 : i64 to i32
%159 = arith.extui %151 : i32 to i64
%160 = arith.muli %159, %c3449720151_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.xori %162, %147 : i32
%165 = arith.xori %164, %152 : i32
%166 = arith.xori %157, %142 : i32
%167 = arith.xori %166, %153 : i32
linalg.yield %165, %163, %167, %158 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
util.return %5#0, %5#1, %5#2, %5#3 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>
}
}
// -----// IR Dump After ImportMLProgramPass (iree-import-ml-program) ('builtin.module' operation) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
%c0 = arith.constant 0 : index
%c3 = arith.constant 3 : index
%c2 = arith.constant 2 : index
%c3528531795_i64 = arith.constant 3528531795 : i64
%c3449720151_i64 = arith.constant 3449720151 : i64
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c1 = arith.constant 1 : index
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c32_i64 = arith.constant 32 : i64
%c64 = arith.constant 64 : index
%c128 = arith.constant 128 : index
%c192 = arith.constant 192 : index
%0 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %arg0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %arg0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %arg0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %arg0[%c1] : tensor<4xi32>
%1 = arith.extui %extracted_1 : i32 to i64
%2 = arith.extui %extracted : i32 to i64
%3 = arith.shli %2, %c32_i64 : i64
%4 = arith.ori %1, %3 : i64
%5:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%0, %0, %0, %0 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%6 = linalg.index 0 : index
%7 = arith.index_cast %6 : index to i64
%8 = arith.addi %7, %4 : i64
%9 = arith.trunci %8 : i64 to i32
%10 = arith.shrui %8, %c32_i64 : i64
%11 = arith.trunci %10 : i64 to i32
%12 = arith.extui %9 : i32 to i64
%13 = arith.muli %12, %c3528531795_i64 : i64
%14 = arith.shrui %13, %c32_i64 : i64
%15 = arith.trunci %14 : i64 to i32
%16 = arith.trunci %13 : i64 to i32
%17 = arith.extui %extracted_0 : i32 to i64
%18 = arith.muli %17, %c3449720151_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.xori %20, %11 : i32
%23 = arith.xori %22, %extracted_0 : i32
%24 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%25 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%26 = arith.extui %23 : i32 to i64
%27 = arith.muli %26, %c3528531795_i64 : i64
%28 = arith.shrui %27, %c32_i64 : i64
%29 = arith.trunci %28 : i64 to i32
%30 = arith.trunci %27 : i64 to i32
%31 = arith.extui %15 : i32 to i64
%32 = arith.muli %31, %c3449720151_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.xori %34, %21 : i32
%37 = arith.xori %36, %24 : i32
%38 = arith.xori %29, %16 : i32
%39 = arith.xori %38, %25 : i32
%40 = arith.addi %extracted_0, %c1013904242_i32 : i32
%41 = arith.addi %extracted_2, %c1993301258_i32 : i32
%42 = arith.extui %37 : i32 to i64
%43 = arith.muli %42, %c3528531795_i64 : i64
%44 = arith.shrui %43, %c32_i64 : i64
%45 = arith.trunci %44 : i64 to i32
%46 = arith.trunci %43 : i64 to i32
%47 = arith.extui %39 : i32 to i64
%48 = arith.muli %47, %c3449720151_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.xori %50, %35 : i32
%53 = arith.xori %52, %40 : i32
%54 = arith.xori %45, %30 : i32
%55 = arith.xori %54, %41 : i32
%56 = arith.addi %extracted_0, %c-626627285_i32 : i32
%57 = arith.addi %extracted_2, %c842468239_i32 : i32
%58 = arith.extui %53 : i32 to i64
%59 = arith.muli %58, %c3528531795_i64 : i64
%60 = arith.shrui %59, %c32_i64 : i64
%61 = arith.trunci %60 : i64 to i32
%62 = arith.trunci %59 : i64 to i32
%63 = arith.extui %55 : i32 to i64
%64 = arith.muli %63, %c3449720151_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.xori %66, %51 : i32
%69 = arith.xori %68, %56 : i32
%70 = arith.xori %61, %46 : i32
%71 = arith.xori %70, %57 : i32
%72 = arith.addi %extracted_0, %c2027808484_i32 : i32
%73 = arith.addi %extracted_2, %c-308364780_i32 : i32
%74 = arith.extui %69 : i32 to i64
%75 = arith.muli %74, %c3528531795_i64 : i64
%76 = arith.shrui %75, %c32_i64 : i64
%77 = arith.trunci %76 : i64 to i32
%78 = arith.trunci %75 : i64 to i32
%79 = arith.extui %71 : i32 to i64
%80 = arith.muli %79, %c3449720151_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.xori %82, %67 : i32
%85 = arith.xori %84, %72 : i32
%86 = arith.xori %77, %62 : i32
%87 = arith.xori %86, %73 : i32
%88 = arith.addi %extracted_0, %c387276957_i32 : i32
%89 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%90 = arith.extui %85 : i32 to i64
%91 = arith.muli %90, %c3528531795_i64 : i64
%92 = arith.shrui %91, %c32_i64 : i64
%93 = arith.trunci %92 : i64 to i32
%94 = arith.trunci %91 : i64 to i32
%95 = arith.extui %87 : i32 to i64
%96 = arith.muli %95, %c3449720151_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.xori %98, %83 : i32
%101 = arith.xori %100, %88 : i32
%102 = arith.xori %93, %78 : i32
%103 = arith.xori %102, %89 : i32
%104 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%105 = arith.addi %extracted_2, %c1684936478_i32 : i32
%106 = arith.extui %101 : i32 to i64
%107 = arith.muli %106, %c3528531795_i64 : i64
%108 = arith.shrui %107, %c32_i64 : i64
%109 = arith.trunci %108 : i64 to i32
%110 = arith.trunci %107 : i64 to i32
%111 = arith.extui %103 : i32 to i64
%112 = arith.muli %111, %c3449720151_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.xori %114, %99 : i32
%117 = arith.xori %116, %104 : i32
%118 = arith.xori %109, %94 : i32
%119 = arith.xori %118, %105 : i32
%120 = arith.addi %extracted_0, %c1401181199_i32 : i32
%121 = arith.addi %extracted_2, %c534103459_i32 : i32
%122 = arith.extui %117 : i32 to i64
%123 = arith.muli %122, %c3528531795_i64 : i64
%124 = arith.shrui %123, %c32_i64 : i64
%125 = arith.trunci %124 : i64 to i32
%126 = arith.trunci %123 : i64 to i32
%127 = arith.extui %119 : i32 to i64
%128 = arith.muli %127, %c3449720151_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.xori %130, %115 : i32
%133 = arith.xori %132, %120 : i32
%134 = arith.xori %125, %110 : i32
%135 = arith.xori %134, %121 : i32
%136 = arith.addi %extracted_0, %c-239350328_i32 : i32
%137 = arith.addi %extracted_2, %c-616729560_i32 : i32
%138 = arith.extui %133 : i32 to i64
%139 = arith.muli %138, %c3528531795_i64 : i64
%140 = arith.shrui %139, %c32_i64 : i64
%141 = arith.trunci %140 : i64 to i32
%142 = arith.trunci %139 : i64 to i32
%143 = arith.extui %135 : i32 to i64
%144 = arith.muli %143, %c3449720151_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.xori %146, %131 : i32
%149 = arith.xori %148, %136 : i32
%150 = arith.xori %141, %126 : i32
%151 = arith.xori %150, %137 : i32
%152 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%153 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%154 = arith.extui %149 : i32 to i64
%155 = arith.muli %154, %c3528531795_i64 : i64
%156 = arith.shrui %155, %c32_i64 : i64
%157 = arith.trunci %156 : i64 to i32
%158 = arith.trunci %155 : i64 to i32
%159 = arith.extui %151 : i32 to i64
%160 = arith.muli %159, %c3449720151_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.xori %162, %147 : i32
%165 = arith.xori %164, %152 : i32
%166 = arith.xori %157, %142 : i32
%167 = arith.xori %166, %153 : i32
linalg.yield %165, %163, %167, %158 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
util.return %5#0, %5#1, %5#2, %5#3 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>
}
}
// -----// IR Dump After SanitizeModuleNamesPass (iree-sanitize-module-names) ('builtin.module' operation) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
%c0 = arith.constant 0 : index
%c3 = arith.constant 3 : index
%c2 = arith.constant 2 : index
%c3528531795_i64 = arith.constant 3528531795 : i64
%c3449720151_i64 = arith.constant 3449720151 : i64
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c1 = arith.constant 1 : index
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c32_i64 = arith.constant 32 : i64
%c64 = arith.constant 64 : index
%c128 = arith.constant 128 : index
%c192 = arith.constant 192 : index
%0 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %arg0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %arg0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %arg0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %arg0[%c1] : tensor<4xi32>
%1 = arith.extui %extracted_1 : i32 to i64
%2 = arith.extui %extracted : i32 to i64
%3 = arith.shli %2, %c32_i64 : i64
%4 = arith.ori %1, %3 : i64
%5:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%0, %0, %0, %0 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%6 = linalg.index 0 : index
%7 = arith.index_cast %6 : index to i64
%8 = arith.addi %7, %4 : i64
%9 = arith.trunci %8 : i64 to i32
%10 = arith.shrui %8, %c32_i64 : i64
%11 = arith.trunci %10 : i64 to i32
%12 = arith.extui %9 : i32 to i64
%13 = arith.muli %12, %c3528531795_i64 : i64
%14 = arith.shrui %13, %c32_i64 : i64
%15 = arith.trunci %14 : i64 to i32
%16 = arith.trunci %13 : i64 to i32
%17 = arith.extui %extracted_0 : i32 to i64
%18 = arith.muli %17, %c3449720151_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.xori %20, %11 : i32
%23 = arith.xori %22, %extracted_0 : i32
%24 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%25 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%26 = arith.extui %23 : i32 to i64
%27 = arith.muli %26, %c3528531795_i64 : i64
%28 = arith.shrui %27, %c32_i64 : i64
%29 = arith.trunci %28 : i64 to i32
%30 = arith.trunci %27 : i64 to i32
%31 = arith.extui %15 : i32 to i64
%32 = arith.muli %31, %c3449720151_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.xori %34, %21 : i32
%37 = arith.xori %36, %24 : i32
%38 = arith.xori %29, %16 : i32
%39 = arith.xori %38, %25 : i32
%40 = arith.addi %extracted_0, %c1013904242_i32 : i32
%41 = arith.addi %extracted_2, %c1993301258_i32 : i32
%42 = arith.extui %37 : i32 to i64
%43 = arith.muli %42, %c3528531795_i64 : i64
%44 = arith.shrui %43, %c32_i64 : i64
%45 = arith.trunci %44 : i64 to i32
%46 = arith.trunci %43 : i64 to i32
%47 = arith.extui %39 : i32 to i64
%48 = arith.muli %47, %c3449720151_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.xori %50, %35 : i32
%53 = arith.xori %52, %40 : i32
%54 = arith.xori %45, %30 : i32
%55 = arith.xori %54, %41 : i32
%56 = arith.addi %extracted_0, %c-626627285_i32 : i32
%57 = arith.addi %extracted_2, %c842468239_i32 : i32
%58 = arith.extui %53 : i32 to i64
%59 = arith.muli %58, %c3528531795_i64 : i64
%60 = arith.shrui %59, %c32_i64 : i64
%61 = arith.trunci %60 : i64 to i32
%62 = arith.trunci %59 : i64 to i32
%63 = arith.extui %55 : i32 to i64
%64 = arith.muli %63, %c3449720151_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.xori %66, %51 : i32
%69 = arith.xori %68, %56 : i32
%70 = arith.xori %61, %46 : i32
%71 = arith.xori %70, %57 : i32
%72 = arith.addi %extracted_0, %c2027808484_i32 : i32
%73 = arith.addi %extracted_2, %c-308364780_i32 : i32
%74 = arith.extui %69 : i32 to i64
%75 = arith.muli %74, %c3528531795_i64 : i64
%76 = arith.shrui %75, %c32_i64 : i64
%77 = arith.trunci %76 : i64 to i32
%78 = arith.trunci %75 : i64 to i32
%79 = arith.extui %71 : i32 to i64
%80 = arith.muli %79, %c3449720151_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.xori %82, %67 : i32
%85 = arith.xori %84, %72 : i32
%86 = arith.xori %77, %62 : i32
%87 = arith.xori %86, %73 : i32
%88 = arith.addi %extracted_0, %c387276957_i32 : i32
%89 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%90 = arith.extui %85 : i32 to i64
%91 = arith.muli %90, %c3528531795_i64 : i64
%92 = arith.shrui %91, %c32_i64 : i64
%93 = arith.trunci %92 : i64 to i32
%94 = arith.trunci %91 : i64 to i32
%95 = arith.extui %87 : i32 to i64
%96 = arith.muli %95, %c3449720151_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.xori %98, %83 : i32
%101 = arith.xori %100, %88 : i32
%102 = arith.xori %93, %78 : i32
%103 = arith.xori %102, %89 : i32
%104 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%105 = arith.addi %extracted_2, %c1684936478_i32 : i32
%106 = arith.extui %101 : i32 to i64
%107 = arith.muli %106, %c3528531795_i64 : i64
%108 = arith.shrui %107, %c32_i64 : i64
%109 = arith.trunci %108 : i64 to i32
%110 = arith.trunci %107 : i64 to i32
%111 = arith.extui %103 : i32 to i64
%112 = arith.muli %111, %c3449720151_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.xori %114, %99 : i32
%117 = arith.xori %116, %104 : i32
%118 = arith.xori %109, %94 : i32
%119 = arith.xori %118, %105 : i32
%120 = arith.addi %extracted_0, %c1401181199_i32 : i32
%121 = arith.addi %extracted_2, %c534103459_i32 : i32
%122 = arith.extui %117 : i32 to i64
%123 = arith.muli %122, %c3528531795_i64 : i64
%124 = arith.shrui %123, %c32_i64 : i64
%125 = arith.trunci %124 : i64 to i32
%126 = arith.trunci %123 : i64 to i32
%127 = arith.extui %119 : i32 to i64
%128 = arith.muli %127, %c3449720151_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.xori %130, %115 : i32
%133 = arith.xori %132, %120 : i32
%134 = arith.xori %125, %110 : i32
%135 = arith.xori %134, %121 : i32
%136 = arith.addi %extracted_0, %c-239350328_i32 : i32
%137 = arith.addi %extracted_2, %c-616729560_i32 : i32
%138 = arith.extui %133 : i32 to i64
%139 = arith.muli %138, %c3528531795_i64 : i64
%140 = arith.shrui %139, %c32_i64 : i64
%141 = arith.trunci %140 : i64 to i32
%142 = arith.trunci %139 : i64 to i32
%143 = arith.extui %135 : i32 to i64
%144 = arith.muli %143, %c3449720151_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.xori %146, %131 : i32
%149 = arith.xori %148, %136 : i32
%150 = arith.xori %141, %126 : i32
%151 = arith.xori %150, %137 : i32
%152 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%153 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%154 = arith.extui %149 : i32 to i64
%155 = arith.muli %154, %c3528531795_i64 : i64
%156 = arith.shrui %155, %c32_i64 : i64
%157 = arith.trunci %156 : i64 to i32
%158 = arith.trunci %155 : i64 to i32
%159 = arith.extui %151 : i32 to i64
%160 = arith.muli %159, %c3449720151_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.xori %162, %147 : i32
%165 = arith.xori %164, %152 : i32
%166 = arith.xori %157, %142 : i32
%167 = arith.xori %166, %153 : i32
linalg.yield %165, %163, %167, %158 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
util.return %5#0, %5#1, %5#2, %5#3 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>
}
}
// -----// IR Dump After ConvertMeshToFlowPass (iree-convert-mesh-to-flow) ('builtin.module' operation) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
%c0 = arith.constant 0 : index
%c3 = arith.constant 3 : index
%c2 = arith.constant 2 : index
%c3528531795_i64 = arith.constant 3528531795 : i64
%c3449720151_i64 = arith.constant 3449720151 : i64
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c1 = arith.constant 1 : index
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c32_i64 = arith.constant 32 : i64
%0 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %arg0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %arg0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %arg0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %arg0[%c1] : tensor<4xi32>
%1 = arith.extui %extracted_1 : i32 to i64
%2 = arith.extui %extracted : i32 to i64
%3 = arith.shli %2, %c32_i64 : i64
%4 = arith.ori %1, %3 : i64
%5:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%0, %0, %0, %0 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%6 = linalg.index 0 : index
%7 = arith.index_cast %6 : index to i64
%8 = arith.addi %7, %4 : i64
%9 = arith.trunci %8 : i64 to i32
%10 = arith.shrui %8, %c32_i64 : i64
%11 = arith.trunci %10 : i64 to i32
%12 = arith.extui %9 : i32 to i64
%13 = arith.muli %12, %c3528531795_i64 : i64
%14 = arith.shrui %13, %c32_i64 : i64
%15 = arith.trunci %14 : i64 to i32
%16 = arith.trunci %13 : i64 to i32
%17 = arith.extui %extracted_0 : i32 to i64
%18 = arith.muli %17, %c3449720151_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.xori %20, %11 : i32
%23 = arith.xori %22, %extracted_0 : i32
%24 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%25 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%26 = arith.extui %23 : i32 to i64
%27 = arith.muli %26, %c3528531795_i64 : i64
%28 = arith.shrui %27, %c32_i64 : i64
%29 = arith.trunci %28 : i64 to i32
%30 = arith.trunci %27 : i64 to i32
%31 = arith.extui %15 : i32 to i64
%32 = arith.muli %31, %c3449720151_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.xori %34, %21 : i32
%37 = arith.xori %36, %24 : i32
%38 = arith.xori %29, %16 : i32
%39 = arith.xori %38, %25 : i32
%40 = arith.addi %extracted_0, %c1013904242_i32 : i32
%41 = arith.addi %extracted_2, %c1993301258_i32 : i32
%42 = arith.extui %37 : i32 to i64
%43 = arith.muli %42, %c3528531795_i64 : i64
%44 = arith.shrui %43, %c32_i64 : i64
%45 = arith.trunci %44 : i64 to i32
%46 = arith.trunci %43 : i64 to i32
%47 = arith.extui %39 : i32 to i64
%48 = arith.muli %47, %c3449720151_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.xori %50, %35 : i32
%53 = arith.xori %52, %40 : i32
%54 = arith.xori %45, %30 : i32
%55 = arith.xori %54, %41 : i32
%56 = arith.addi %extracted_0, %c-626627285_i32 : i32
%57 = arith.addi %extracted_2, %c842468239_i32 : i32
%58 = arith.extui %53 : i32 to i64
%59 = arith.muli %58, %c3528531795_i64 : i64
%60 = arith.shrui %59, %c32_i64 : i64
%61 = arith.trunci %60 : i64 to i32
%62 = arith.trunci %59 : i64 to i32
%63 = arith.extui %55 : i32 to i64
%64 = arith.muli %63, %c3449720151_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.xori %66, %51 : i32
%69 = arith.xori %68, %56 : i32
%70 = arith.xori %61, %46 : i32
%71 = arith.xori %70, %57 : i32
%72 = arith.addi %extracted_0, %c2027808484_i32 : i32
%73 = arith.addi %extracted_2, %c-308364780_i32 : i32
%74 = arith.extui %69 : i32 to i64
%75 = arith.muli %74, %c3528531795_i64 : i64
%76 = arith.shrui %75, %c32_i64 : i64
%77 = arith.trunci %76 : i64 to i32
%78 = arith.trunci %75 : i64 to i32
%79 = arith.extui %71 : i32 to i64
%80 = arith.muli %79, %c3449720151_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.xori %82, %67 : i32
%85 = arith.xori %84, %72 : i32
%86 = arith.xori %77, %62 : i32
%87 = arith.xori %86, %73 : i32
%88 = arith.addi %extracted_0, %c387276957_i32 : i32
%89 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%90 = arith.extui %85 : i32 to i64
%91 = arith.muli %90, %c3528531795_i64 : i64
%92 = arith.shrui %91, %c32_i64 : i64
%93 = arith.trunci %92 : i64 to i32
%94 = arith.trunci %91 : i64 to i32
%95 = arith.extui %87 : i32 to i64
%96 = arith.muli %95, %c3449720151_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.xori %98, %83 : i32
%101 = arith.xori %100, %88 : i32
%102 = arith.xori %93, %78 : i32
%103 = arith.xori %102, %89 : i32
%104 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%105 = arith.addi %extracted_2, %c1684936478_i32 : i32
%106 = arith.extui %101 : i32 to i64
%107 = arith.muli %106, %c3528531795_i64 : i64
%108 = arith.shrui %107, %c32_i64 : i64
%109 = arith.trunci %108 : i64 to i32
%110 = arith.trunci %107 : i64 to i32
%111 = arith.extui %103 : i32 to i64
%112 = arith.muli %111, %c3449720151_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.xori %114, %99 : i32
%117 = arith.xori %116, %104 : i32
%118 = arith.xori %109, %94 : i32
%119 = arith.xori %118, %105 : i32
%120 = arith.addi %extracted_0, %c1401181199_i32 : i32
%121 = arith.addi %extracted_2, %c534103459_i32 : i32
%122 = arith.extui %117 : i32 to i64
%123 = arith.muli %122, %c3528531795_i64 : i64
%124 = arith.shrui %123, %c32_i64 : i64
%125 = arith.trunci %124 : i64 to i32
%126 = arith.trunci %123 : i64 to i32
%127 = arith.extui %119 : i32 to i64
%128 = arith.muli %127, %c3449720151_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.xori %130, %115 : i32
%133 = arith.xori %132, %120 : i32
%134 = arith.xori %125, %110 : i32
%135 = arith.xori %134, %121 : i32
%136 = arith.addi %extracted_0, %c-239350328_i32 : i32
%137 = arith.addi %extracted_2, %c-616729560_i32 : i32
%138 = arith.extui %133 : i32 to i64
%139 = arith.muli %138, %c3528531795_i64 : i64
%140 = arith.shrui %139, %c32_i64 : i64
%141 = arith.trunci %140 : i64 to i32
%142 = arith.trunci %139 : i64 to i32
%143 = arith.extui %135 : i32 to i64
%144 = arith.muli %143, %c3449720151_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.xori %146, %131 : i32
%149 = arith.xori %148, %136 : i32
%150 = arith.xori %141, %126 : i32
%151 = arith.xori %150, %137 : i32
%152 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%153 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%154 = arith.extui %149 : i32 to i64
%155 = arith.muli %154, %c3528531795_i64 : i64
%156 = arith.shrui %155, %c32_i64 : i64
%157 = arith.trunci %156 : i64 to i32
%158 = arith.trunci %155 : i64 to i32
%159 = arith.extui %151 : i32 to i64
%160 = arith.muli %159, %c3449720151_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.xori %162, %147 : i32
%165 = arith.xori %164, %152 : i32
%166 = arith.xori %157, %142 : i32
%167 = arith.xori %166, %153 : i32
linalg.yield %165, %163, %167, %158 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
util.return %5#0, %5#1, %5#2, %5#3 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>
}
}
// -----// IR Dump After DemoteF64ToF32Pass (iree-input-conversion-demote-f64-to-f32) ('builtin.module' operation) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
%c0 = arith.constant 0 : index
%c3 = arith.constant 3 : index
%c2 = arith.constant 2 : index
%c3528531795_i64 = arith.constant 3528531795 : i64
%c3449720151_i64 = arith.constant 3449720151 : i64
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c1 = arith.constant 1 : index
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c32_i64 = arith.constant 32 : i64
%0 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %arg0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %arg0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %arg0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %arg0[%c1] : tensor<4xi32>
%1 = arith.extui %extracted_1 : i32 to i64
%2 = arith.extui %extracted : i32 to i64
%3 = arith.shli %2, %c32_i64 : i64
%4 = arith.ori %1, %3 : i64
%5:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%0, %0, %0, %0 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%6 = linalg.index 0 : index
%7 = arith.index_cast %6 : index to i64
%8 = arith.addi %7, %4 : i64
%9 = arith.trunci %8 : i64 to i32
%10 = arith.shrui %8, %c32_i64 : i64
%11 = arith.trunci %10 : i64 to i32
%12 = arith.extui %9 : i32 to i64
%13 = arith.muli %12, %c3528531795_i64 : i64
%14 = arith.shrui %13, %c32_i64 : i64
%15 = arith.trunci %14 : i64 to i32
%16 = arith.trunci %13 : i64 to i32
%17 = arith.extui %extracted_0 : i32 to i64
%18 = arith.muli %17, %c3449720151_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.xori %20, %11 : i32
%23 = arith.xori %22, %extracted_0 : i32
%24 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%25 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%26 = arith.extui %23 : i32 to i64
%27 = arith.muli %26, %c3528531795_i64 : i64
%28 = arith.shrui %27, %c32_i64 : i64
%29 = arith.trunci %28 : i64 to i32
%30 = arith.trunci %27 : i64 to i32
%31 = arith.extui %15 : i32 to i64
%32 = arith.muli %31, %c3449720151_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.xori %34, %21 : i32
%37 = arith.xori %36, %24 : i32
%38 = arith.xori %29, %16 : i32
%39 = arith.xori %38, %25 : i32
%40 = arith.addi %extracted_0, %c1013904242_i32 : i32
%41 = arith.addi %extracted_2, %c1993301258_i32 : i32
%42 = arith.extui %37 : i32 to i64
%43 = arith.muli %42, %c3528531795_i64 : i64
%44 = arith.shrui %43, %c32_i64 : i64
%45 = arith.trunci %44 : i64 to i32
%46 = arith.trunci %43 : i64 to i32
%47 = arith.extui %39 : i32 to i64
%48 = arith.muli %47, %c3449720151_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.xori %50, %35 : i32
%53 = arith.xori %52, %40 : i32
%54 = arith.xori %45, %30 : i32
%55 = arith.xori %54, %41 : i32
%56 = arith.addi %extracted_0, %c-626627285_i32 : i32
%57 = arith.addi %extracted_2, %c842468239_i32 : i32
%58 = arith.extui %53 : i32 to i64
%59 = arith.muli %58, %c3528531795_i64 : i64
%60 = arith.shrui %59, %c32_i64 : i64
%61 = arith.trunci %60 : i64 to i32
%62 = arith.trunci %59 : i64 to i32
%63 = arith.extui %55 : i32 to i64
%64 = arith.muli %63, %c3449720151_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.xori %66, %51 : i32
%69 = arith.xori %68, %56 : i32
%70 = arith.xori %61, %46 : i32
%71 = arith.xori %70, %57 : i32
%72 = arith.addi %extracted_0, %c2027808484_i32 : i32
%73 = arith.addi %extracted_2, %c-308364780_i32 : i32
%74 = arith.extui %69 : i32 to i64
%75 = arith.muli %74, %c3528531795_i64 : i64
%76 = arith.shrui %75, %c32_i64 : i64
%77 = arith.trunci %76 : i64 to i32
%78 = arith.trunci %75 : i64 to i32
%79 = arith.extui %71 : i32 to i64
%80 = arith.muli %79, %c3449720151_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.xori %82, %67 : i32
%85 = arith.xori %84, %72 : i32
%86 = arith.xori %77, %62 : i32
%87 = arith.xori %86, %73 : i32
%88 = arith.addi %extracted_0, %c387276957_i32 : i32
%89 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%90 = arith.extui %85 : i32 to i64
%91 = arith.muli %90, %c3528531795_i64 : i64
%92 = arith.shrui %91, %c32_i64 : i64
%93 = arith.trunci %92 : i64 to i32
%94 = arith.trunci %91 : i64 to i32
%95 = arith.extui %87 : i32 to i64
%96 = arith.muli %95, %c3449720151_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.xori %98, %83 : i32
%101 = arith.xori %100, %88 : i32
%102 = arith.xori %93, %78 : i32
%103 = arith.xori %102, %89 : i32
%104 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%105 = arith.addi %extracted_2, %c1684936478_i32 : i32
%106 = arith.extui %101 : i32 to i64
%107 = arith.muli %106, %c3528531795_i64 : i64
%108 = arith.shrui %107, %c32_i64 : i64
%109 = arith.trunci %108 : i64 to i32
%110 = arith.trunci %107 : i64 to i32
%111 = arith.extui %103 : i32 to i64
%112 = arith.muli %111, %c3449720151_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.xori %114, %99 : i32
%117 = arith.xori %116, %104 : i32
%118 = arith.xori %109, %94 : i32
%119 = arith.xori %118, %105 : i32
%120 = arith.addi %extracted_0, %c1401181199_i32 : i32
%121 = arith.addi %extracted_2, %c534103459_i32 : i32
%122 = arith.extui %117 : i32 to i64
%123 = arith.muli %122, %c3528531795_i64 : i64
%124 = arith.shrui %123, %c32_i64 : i64
%125 = arith.trunci %124 : i64 to i32
%126 = arith.trunci %123 : i64 to i32
%127 = arith.extui %119 : i32 to i64
%128 = arith.muli %127, %c3449720151_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.xori %130, %115 : i32
%133 = arith.xori %132, %120 : i32
%134 = arith.xori %125, %110 : i32
%135 = arith.xori %134, %121 : i32
%136 = arith.addi %extracted_0, %c-239350328_i32 : i32
%137 = arith.addi %extracted_2, %c-616729560_i32 : i32
%138 = arith.extui %133 : i32 to i64
%139 = arith.muli %138, %c3528531795_i64 : i64
%140 = arith.shrui %139, %c32_i64 : i64
%141 = arith.trunci %140 : i64 to i32
%142 = arith.trunci %139 : i64 to i32
%143 = arith.extui %135 : i32 to i64
%144 = arith.muli %143, %c3449720151_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.xori %146, %131 : i32
%149 = arith.xori %148, %136 : i32
%150 = arith.xori %141, %126 : i32
%151 = arith.xori %150, %137 : i32
%152 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%153 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%154 = arith.extui %149 : i32 to i64
%155 = arith.muli %154, %c3528531795_i64 : i64
%156 = arith.shrui %155, %c32_i64 : i64
%157 = arith.trunci %156 : i64 to i32
%158 = arith.trunci %155 : i64 to i32
%159 = arith.extui %151 : i32 to i64
%160 = arith.muli %159, %c3449720151_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.xori %162, %147 : i32
%165 = arith.xori %164, %152 : i32
%166 = arith.xori %157, %142 : i32
%167 = arith.xori %166, %153 : i32
linalg.yield %165, %163, %167, %158 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
util.return %5#0, %5#1, %5#2, %5#3 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>
}
}
// -----// IR Dump After mlir::iree_compiler::IREE::ABI::ConvertStreamableOpsPass (iree-abi-convert-streamable-ops) ('builtin.module' operation) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
%c0 = arith.constant 0 : index
%c3 = arith.constant 3 : index
%c2 = arith.constant 2 : index
%c3528531795_i64 = arith.constant 3528531795 : i64
%c3449720151_i64 = arith.constant 3449720151 : i64
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c1 = arith.constant 1 : index
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c32_i64 = arith.constant 32 : i64
%0 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %arg0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %arg0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %arg0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %arg0[%c1] : tensor<4xi32>
%1 = arith.extui %extracted_1 : i32 to i64
%2 = arith.extui %extracted : i32 to i64
%3 = arith.shli %2, %c32_i64 : i64
%4 = arith.ori %1, %3 : i64
%5:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%0, %0, %0, %0 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%6 = linalg.index 0 : index
%7 = arith.index_cast %6 : index to i64
%8 = arith.addi %7, %4 : i64
%9 = arith.trunci %8 : i64 to i32
%10 = arith.shrui %8, %c32_i64 : i64
%11 = arith.trunci %10 : i64 to i32
%12 = arith.extui %9 : i32 to i64
%13 = arith.muli %12, %c3528531795_i64 : i64
%14 = arith.shrui %13, %c32_i64 : i64
%15 = arith.trunci %14 : i64 to i32
%16 = arith.trunci %13 : i64 to i32
%17 = arith.extui %extracted_0 : i32 to i64
%18 = arith.muli %17, %c3449720151_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.xori %20, %11 : i32
%23 = arith.xori %22, %extracted_0 : i32
%24 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%25 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%26 = arith.extui %23 : i32 to i64
%27 = arith.muli %26, %c3528531795_i64 : i64
%28 = arith.shrui %27, %c32_i64 : i64
%29 = arith.trunci %28 : i64 to i32
%30 = arith.trunci %27 : i64 to i32
%31 = arith.extui %15 : i32 to i64
%32 = arith.muli %31, %c3449720151_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.xori %34, %21 : i32
%37 = arith.xori %36, %24 : i32
%38 = arith.xori %29, %16 : i32
%39 = arith.xori %38, %25 : i32
%40 = arith.addi %extracted_0, %c1013904242_i32 : i32
%41 = arith.addi %extracted_2, %c1993301258_i32 : i32
%42 = arith.extui %37 : i32 to i64
%43 = arith.muli %42, %c3528531795_i64 : i64
%44 = arith.shrui %43, %c32_i64 : i64
%45 = arith.trunci %44 : i64 to i32
%46 = arith.trunci %43 : i64 to i32
%47 = arith.extui %39 : i32 to i64
%48 = arith.muli %47, %c3449720151_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.xori %50, %35 : i32
%53 = arith.xori %52, %40 : i32
%54 = arith.xori %45, %30 : i32
%55 = arith.xori %54, %41 : i32
%56 = arith.addi %extracted_0, %c-626627285_i32 : i32
%57 = arith.addi %extracted_2, %c842468239_i32 : i32
%58 = arith.extui %53 : i32 to i64
%59 = arith.muli %58, %c3528531795_i64 : i64
%60 = arith.shrui %59, %c32_i64 : i64
%61 = arith.trunci %60 : i64 to i32
%62 = arith.trunci %59 : i64 to i32
%63 = arith.extui %55 : i32 to i64
%64 = arith.muli %63, %c3449720151_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.xori %66, %51 : i32
%69 = arith.xori %68, %56 : i32
%70 = arith.xori %61, %46 : i32
%71 = arith.xori %70, %57 : i32
%72 = arith.addi %extracted_0, %c2027808484_i32 : i32
%73 = arith.addi %extracted_2, %c-308364780_i32 : i32
%74 = arith.extui %69 : i32 to i64
%75 = arith.muli %74, %c3528531795_i64 : i64
%76 = arith.shrui %75, %c32_i64 : i64
%77 = arith.trunci %76 : i64 to i32
%78 = arith.trunci %75 : i64 to i32
%79 = arith.extui %71 : i32 to i64
%80 = arith.muli %79, %c3449720151_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.xori %82, %67 : i32
%85 = arith.xori %84, %72 : i32
%86 = arith.xori %77, %62 : i32
%87 = arith.xori %86, %73 : i32
%88 = arith.addi %extracted_0, %c387276957_i32 : i32
%89 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%90 = arith.extui %85 : i32 to i64
%91 = arith.muli %90, %c3528531795_i64 : i64
%92 = arith.shrui %91, %c32_i64 : i64
%93 = arith.trunci %92 : i64 to i32
%94 = arith.trunci %91 : i64 to i32
%95 = arith.extui %87 : i32 to i64
%96 = arith.muli %95, %c3449720151_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.xori %98, %83 : i32
%101 = arith.xori %100, %88 : i32
%102 = arith.xori %93, %78 : i32
%103 = arith.xori %102, %89 : i32
%104 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%105 = arith.addi %extracted_2, %c1684936478_i32 : i32
%106 = arith.extui %101 : i32 to i64
%107 = arith.muli %106, %c3528531795_i64 : i64
%108 = arith.shrui %107, %c32_i64 : i64
%109 = arith.trunci %108 : i64 to i32
%110 = arith.trunci %107 : i64 to i32
%111 = arith.extui %103 : i32 to i64
%112 = arith.muli %111, %c3449720151_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.xori %114, %99 : i32
%117 = arith.xori %116, %104 : i32
%118 = arith.xori %109, %94 : i32
%119 = arith.xori %118, %105 : i32
%120 = arith.addi %extracted_0, %c1401181199_i32 : i32
%121 = arith.addi %extracted_2, %c534103459_i32 : i32
%122 = arith.extui %117 : i32 to i64
%123 = arith.muli %122, %c3528531795_i64 : i64
%124 = arith.shrui %123, %c32_i64 : i64
%125 = arith.trunci %124 : i64 to i32
%126 = arith.trunci %123 : i64 to i32
%127 = arith.extui %119 : i32 to i64
%128 = arith.muli %127, %c3449720151_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.xori %130, %115 : i32
%133 = arith.xori %132, %120 : i32
%134 = arith.xori %125, %110 : i32
%135 = arith.xori %134, %121 : i32
%136 = arith.addi %extracted_0, %c-239350328_i32 : i32
%137 = arith.addi %extracted_2, %c-616729560_i32 : i32
%138 = arith.extui %133 : i32 to i64
%139 = arith.muli %138, %c3528531795_i64 : i64
%140 = arith.shrui %139, %c32_i64 : i64
%141 = arith.trunci %140 : i64 to i32
%142 = arith.trunci %139 : i64 to i32
%143 = arith.extui %135 : i32 to i64
%144 = arith.muli %143, %c3449720151_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.xori %146, %131 : i32
%149 = arith.xori %148, %136 : i32
%150 = arith.xori %141, %126 : i32
%151 = arith.xori %150, %137 : i32
%152 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%153 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%154 = arith.extui %149 : i32 to i64
%155 = arith.muli %154, %c3528531795_i64 : i64
%156 = arith.shrui %155, %c32_i64 : i64
%157 = arith.trunci %156 : i64 to i32
%158 = arith.trunci %155 : i64 to i32
%159 = arith.extui %151 : i32 to i64
%160 = arith.muli %159, %c3449720151_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.xori %162, %147 : i32
%165 = arith.xori %164, %152 : i32
%166 = arith.xori %157, %142 : i32
%167 = arith.xori %166, %153 : i32
linalg.yield %165, %163, %167, %158 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
util.return %5#0, %5#1, %5#2, %5#3 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>
}
}
// -----// IR Dump After mlir::iree_compiler::IREE::ABI::WrapEntryPointsPass (iree-abi-wrap-entry-points) ('builtin.module' operation) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1:4 = util.call @_philox_i32_dispatch_0_elementwise_broadcast_2_i32(%0) : (tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%2 = hal.tensor.export %1#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%3 = hal.tensor.export %1#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%4 = hal.tensor.export %1#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%5 = hal.tensor.export %1#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %2, %3, %4, %5 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
util.func private @_philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
%c0 = arith.constant 0 : index
%c3 = arith.constant 3 : index
%c2 = arith.constant 2 : index
%c3528531795_i64 = arith.constant 3528531795 : i64
%c3449720151_i64 = arith.constant 3449720151 : i64
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c1 = arith.constant 1 : index
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c32_i64 = arith.constant 32 : i64
%0 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %arg0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %arg0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %arg0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %arg0[%c1] : tensor<4xi32>
%1 = arith.extui %extracted_1 : i32 to i64
%2 = arith.extui %extracted : i32 to i64
%3 = arith.shli %2, %c32_i64 : i64
%4 = arith.ori %1, %3 : i64
%5:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%0, %0, %0, %0 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%6 = linalg.index 0 : index
%7 = arith.index_cast %6 : index to i64
%8 = arith.addi %7, %4 : i64
%9 = arith.trunci %8 : i64 to i32
%10 = arith.shrui %8, %c32_i64 : i64
%11 = arith.trunci %10 : i64 to i32
%12 = arith.extui %9 : i32 to i64
%13 = arith.muli %12, %c3528531795_i64 : i64
%14 = arith.shrui %13, %c32_i64 : i64
%15 = arith.trunci %14 : i64 to i32
%16 = arith.trunci %13 : i64 to i32
%17 = arith.extui %extracted_0 : i32 to i64
%18 = arith.muli %17, %c3449720151_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.xori %20, %11 : i32
%23 = arith.xori %22, %extracted_0 : i32
%24 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%25 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%26 = arith.extui %23 : i32 to i64
%27 = arith.muli %26, %c3528531795_i64 : i64
%28 = arith.shrui %27, %c32_i64 : i64
%29 = arith.trunci %28 : i64 to i32
%30 = arith.trunci %27 : i64 to i32
%31 = arith.extui %15 : i32 to i64
%32 = arith.muli %31, %c3449720151_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.xori %34, %21 : i32
%37 = arith.xori %36, %24 : i32
%38 = arith.xori %29, %16 : i32
%39 = arith.xori %38, %25 : i32
%40 = arith.addi %extracted_0, %c1013904242_i32 : i32
%41 = arith.addi %extracted_2, %c1993301258_i32 : i32
%42 = arith.extui %37 : i32 to i64
%43 = arith.muli %42, %c3528531795_i64 : i64
%44 = arith.shrui %43, %c32_i64 : i64
%45 = arith.trunci %44 : i64 to i32
%46 = arith.trunci %43 : i64 to i32
%47 = arith.extui %39 : i32 to i64
%48 = arith.muli %47, %c3449720151_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.xori %50, %35 : i32
%53 = arith.xori %52, %40 : i32
%54 = arith.xori %45, %30 : i32
%55 = arith.xori %54, %41 : i32
%56 = arith.addi %extracted_0, %c-626627285_i32 : i32
%57 = arith.addi %extracted_2, %c842468239_i32 : i32
%58 = arith.extui %53 : i32 to i64
%59 = arith.muli %58, %c3528531795_i64 : i64
%60 = arith.shrui %59, %c32_i64 : i64
%61 = arith.trunci %60 : i64 to i32
%62 = arith.trunci %59 : i64 to i32
%63 = arith.extui %55 : i32 to i64
%64 = arith.muli %63, %c3449720151_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.xori %66, %51 : i32
%69 = arith.xori %68, %56 : i32
%70 = arith.xori %61, %46 : i32
%71 = arith.xori %70, %57 : i32
%72 = arith.addi %extracted_0, %c2027808484_i32 : i32
%73 = arith.addi %extracted_2, %c-308364780_i32 : i32
%74 = arith.extui %69 : i32 to i64
%75 = arith.muli %74, %c3528531795_i64 : i64
%76 = arith.shrui %75, %c32_i64 : i64
%77 = arith.trunci %76 : i64 to i32
%78 = arith.trunci %75 : i64 to i32
%79 = arith.extui %71 : i32 to i64
%80 = arith.muli %79, %c3449720151_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.xori %82, %67 : i32
%85 = arith.xori %84, %72 : i32
%86 = arith.xori %77, %62 : i32
%87 = arith.xori %86, %73 : i32
%88 = arith.addi %extracted_0, %c387276957_i32 : i32
%89 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%90 = arith.extui %85 : i32 to i64
%91 = arith.muli %90, %c3528531795_i64 : i64
%92 = arith.shrui %91, %c32_i64 : i64
%93 = arith.trunci %92 : i64 to i32
%94 = arith.trunci %91 : i64 to i32
%95 = arith.extui %87 : i32 to i64
%96 = arith.muli %95, %c3449720151_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.xori %98, %83 : i32
%101 = arith.xori %100, %88 : i32
%102 = arith.xori %93, %78 : i32
%103 = arith.xori %102, %89 : i32
%104 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%105 = arith.addi %extracted_2, %c1684936478_i32 : i32
%106 = arith.extui %101 : i32 to i64
%107 = arith.muli %106, %c3528531795_i64 : i64
%108 = arith.shrui %107, %c32_i64 : i64
%109 = arith.trunci %108 : i64 to i32
%110 = arith.trunci %107 : i64 to i32
%111 = arith.extui %103 : i32 to i64
%112 = arith.muli %111, %c3449720151_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.xori %114, %99 : i32
%117 = arith.xori %116, %104 : i32
%118 = arith.xori %109, %94 : i32
%119 = arith.xori %118, %105 : i32
%120 = arith.addi %extracted_0, %c1401181199_i32 : i32
%121 = arith.addi %extracted_2, %c534103459_i32 : i32
%122 = arith.extui %117 : i32 to i64
%123 = arith.muli %122, %c3528531795_i64 : i64
%124 = arith.shrui %123, %c32_i64 : i64
%125 = arith.trunci %124 : i64 to i32
%126 = arith.trunci %123 : i64 to i32
%127 = arith.extui %119 : i32 to i64
%128 = arith.muli %127, %c3449720151_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.xori %130, %115 : i32
%133 = arith.xori %132, %120 : i32
%134 = arith.xori %125, %110 : i32
%135 = arith.xori %134, %121 : i32
%136 = arith.addi %extracted_0, %c-239350328_i32 : i32
%137 = arith.addi %extracted_2, %c-616729560_i32 : i32
%138 = arith.extui %133 : i32 to i64
%139 = arith.muli %138, %c3528531795_i64 : i64
%140 = arith.shrui %139, %c32_i64 : i64
%141 = arith.trunci %140 : i64 to i32
%142 = arith.trunci %139 : i64 to i32
%143 = arith.extui %135 : i32 to i64
%144 = arith.muli %143, %c3449720151_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.xori %146, %131 : i32
%149 = arith.xori %148, %136 : i32
%150 = arith.xori %141, %126 : i32
%151 = arith.xori %150, %137 : i32
%152 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%153 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%154 = arith.extui %149 : i32 to i64
%155 = arith.muli %154, %c3528531795_i64 : i64
%156 = arith.shrui %155, %c32_i64 : i64
%157 = arith.trunci %156 : i64 to i32
%158 = arith.trunci %155 : i64 to i32
%159 = arith.extui %151 : i32 to i64
%160 = arith.muli %159, %c3449720151_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.xori %162, %147 : i32
%165 = arith.xori %164, %152 : i32
%166 = arith.xori %157, %142 : i32
%167 = arith.xori %166, %153 : i32
linalg.yield %165, %163, %167, %158 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
util.return %5#0, %5#1, %5#2, %5#3 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>
}
}
// -----// IR Dump After Canonicalizer (canonicalize) ('util.func' operation: @_philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1:4 = util.call @_philox_i32_dispatch_0_elementwise_broadcast_2_i32(%0) : (tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%2 = hal.tensor.export %1#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%3 = hal.tensor.export %1#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%4 = hal.tensor.export %1#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%5 = hal.tensor.export %1#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %2, %3, %4, %5 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
util.func private @_philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
%c0 = arith.constant 0 : index
%c3 = arith.constant 3 : index
%c2 = arith.constant 2 : index
%c3528531795_i64 = arith.constant 3528531795 : i64
%c3449720151_i64 = arith.constant 3449720151 : i64
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c1 = arith.constant 1 : index
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c32_i64 = arith.constant 32 : i64
%0 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %arg0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %arg0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %arg0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %arg0[%c1] : tensor<4xi32>
%1 = arith.extui %extracted_1 : i32 to i64
%2 = arith.extui %extracted : i32 to i64
%3 = arith.shli %2, %c32_i64 : i64
%4 = arith.ori %1, %3 : i64
%5:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%0, %0, %0, %0 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%6 = linalg.index 0 : index
%7 = arith.index_cast %6 : index to i64
%8 = arith.addi %7, %4 : i64
%9 = arith.trunci %8 : i64 to i32
%10 = arith.shrui %8, %c32_i64 : i64
%11 = arith.trunci %10 : i64 to i32
%12 = arith.extui %9 : i32 to i64
%13 = arith.muli %12, %c3528531795_i64 : i64
%14 = arith.shrui %13, %c32_i64 : i64
%15 = arith.trunci %14 : i64 to i32
%16 = arith.trunci %13 : i64 to i32
%17 = arith.extui %extracted_0 : i32 to i64
%18 = arith.muli %17, %c3449720151_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.xori %20, %11 : i32
%23 = arith.xori %22, %extracted_0 : i32
%24 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%25 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%26 = arith.extui %23 : i32 to i64
%27 = arith.muli %26, %c3528531795_i64 : i64
%28 = arith.shrui %27, %c32_i64 : i64
%29 = arith.trunci %28 : i64 to i32
%30 = arith.trunci %27 : i64 to i32
%31 = arith.extui %15 : i32 to i64
%32 = arith.muli %31, %c3449720151_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.xori %34, %21 : i32
%37 = arith.xori %36, %24 : i32
%38 = arith.xori %29, %16 : i32
%39 = arith.xori %38, %25 : i32
%40 = arith.addi %extracted_0, %c1013904242_i32 : i32
%41 = arith.addi %extracted_2, %c1993301258_i32 : i32
%42 = arith.extui %37 : i32 to i64
%43 = arith.muli %42, %c3528531795_i64 : i64
%44 = arith.shrui %43, %c32_i64 : i64
%45 = arith.trunci %44 : i64 to i32
%46 = arith.trunci %43 : i64 to i32
%47 = arith.extui %39 : i32 to i64
%48 = arith.muli %47, %c3449720151_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.xori %50, %35 : i32
%53 = arith.xori %52, %40 : i32
%54 = arith.xori %45, %30 : i32
%55 = arith.xori %54, %41 : i32
%56 = arith.addi %extracted_0, %c-626627285_i32 : i32
%57 = arith.addi %extracted_2, %c842468239_i32 : i32
%58 = arith.extui %53 : i32 to i64
%59 = arith.muli %58, %c3528531795_i64 : i64
%60 = arith.shrui %59, %c32_i64 : i64
%61 = arith.trunci %60 : i64 to i32
%62 = arith.trunci %59 : i64 to i32
%63 = arith.extui %55 : i32 to i64
%64 = arith.muli %63, %c3449720151_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.xori %66, %51 : i32
%69 = arith.xori %68, %56 : i32
%70 = arith.xori %61, %46 : i32
%71 = arith.xori %70, %57 : i32
%72 = arith.addi %extracted_0, %c2027808484_i32 : i32
%73 = arith.addi %extracted_2, %c-308364780_i32 : i32
%74 = arith.extui %69 : i32 to i64
%75 = arith.muli %74, %c3528531795_i64 : i64
%76 = arith.shrui %75, %c32_i64 : i64
%77 = arith.trunci %76 : i64 to i32
%78 = arith.trunci %75 : i64 to i32
%79 = arith.extui %71 : i32 to i64
%80 = arith.muli %79, %c3449720151_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.xori %82, %67 : i32
%85 = arith.xori %84, %72 : i32
%86 = arith.xori %77, %62 : i32
%87 = arith.xori %86, %73 : i32
%88 = arith.addi %extracted_0, %c387276957_i32 : i32
%89 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%90 = arith.extui %85 : i32 to i64
%91 = arith.muli %90, %c3528531795_i64 : i64
%92 = arith.shrui %91, %c32_i64 : i64
%93 = arith.trunci %92 : i64 to i32
%94 = arith.trunci %91 : i64 to i32
%95 = arith.extui %87 : i32 to i64
%96 = arith.muli %95, %c3449720151_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.xori %98, %83 : i32
%101 = arith.xori %100, %88 : i32
%102 = arith.xori %93, %78 : i32
%103 = arith.xori %102, %89 : i32
%104 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%105 = arith.addi %extracted_2, %c1684936478_i32 : i32
%106 = arith.extui %101 : i32 to i64
%107 = arith.muli %106, %c3528531795_i64 : i64
%108 = arith.shrui %107, %c32_i64 : i64
%109 = arith.trunci %108 : i64 to i32
%110 = arith.trunci %107 : i64 to i32
%111 = arith.extui %103 : i32 to i64
%112 = arith.muli %111, %c3449720151_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.xori %114, %99 : i32
%117 = arith.xori %116, %104 : i32
%118 = arith.xori %109, %94 : i32
%119 = arith.xori %118, %105 : i32
%120 = arith.addi %extracted_0, %c1401181199_i32 : i32
%121 = arith.addi %extracted_2, %c534103459_i32 : i32
%122 = arith.extui %117 : i32 to i64
%123 = arith.muli %122, %c3528531795_i64 : i64
%124 = arith.shrui %123, %c32_i64 : i64
%125 = arith.trunci %124 : i64 to i32
%126 = arith.trunci %123 : i64 to i32
%127 = arith.extui %119 : i32 to i64
%128 = arith.muli %127, %c3449720151_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.xori %130, %115 : i32
%133 = arith.xori %132, %120 : i32
%134 = arith.xori %125, %110 : i32
%135 = arith.xori %134, %121 : i32
%136 = arith.addi %extracted_0, %c-239350328_i32 : i32
%137 = arith.addi %extracted_2, %c-616729560_i32 : i32
%138 = arith.extui %133 : i32 to i64
%139 = arith.muli %138, %c3528531795_i64 : i64
%140 = arith.shrui %139, %c32_i64 : i64
%141 = arith.trunci %140 : i64 to i32
%142 = arith.trunci %139 : i64 to i32
%143 = arith.extui %135 : i32 to i64
%144 = arith.muli %143, %c3449720151_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.xori %146, %131 : i32
%149 = arith.xori %148, %136 : i32
%150 = arith.xori %141, %126 : i32
%151 = arith.xori %150, %137 : i32
%152 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%153 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%154 = arith.extui %149 : i32 to i64
%155 = arith.muli %154, %c3528531795_i64 : i64
%156 = arith.shrui %155, %c32_i64 : i64
%157 = arith.trunci %156 : i64 to i32
%158 = arith.trunci %155 : i64 to i32
%159 = arith.extui %151 : i32 to i64
%160 = arith.muli %159, %c3449720151_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.xori %162, %147 : i32
%165 = arith.xori %164, %152 : i32
%166 = arith.xori %157, %142 : i32
%167 = arith.xori %166, %153 : i32
linalg.yield %165, %163, %167, %158 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
util.return %5#0, %5#1, %5#2, %5#3 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>
}
}
// -----// IR Dump After Canonicalizer (canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1:4 = util.call @_philox_i32_dispatch_0_elementwise_broadcast_2_i32(%0) : (tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%2 = hal.tensor.export %1#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%3 = hal.tensor.export %1#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%4 = hal.tensor.export %1#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%5 = hal.tensor.export %1#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %2, %3, %4, %5 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
util.func private @_philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
%c0 = arith.constant 0 : index
%c3 = arith.constant 3 : index
%c2 = arith.constant 2 : index
%c3528531795_i64 = arith.constant 3528531795 : i64
%c3449720151_i64 = arith.constant 3449720151 : i64
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c1 = arith.constant 1 : index
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c32_i64 = arith.constant 32 : i64
%0 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %arg0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %arg0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %arg0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %arg0[%c1] : tensor<4xi32>
%1 = arith.extui %extracted_1 : i32 to i64
%2 = arith.extui %extracted : i32 to i64
%3 = arith.shli %2, %c32_i64 : i64
%4 = arith.ori %1, %3 : i64
%5:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%0, %0, %0, %0 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%6 = linalg.index 0 : index
%7 = arith.index_cast %6 : index to i64
%8 = arith.addi %7, %4 : i64
%9 = arith.trunci %8 : i64 to i32
%10 = arith.shrui %8, %c32_i64 : i64
%11 = arith.trunci %10 : i64 to i32
%12 = arith.extui %9 : i32 to i64
%13 = arith.muli %12, %c3528531795_i64 : i64
%14 = arith.shrui %13, %c32_i64 : i64
%15 = arith.trunci %14 : i64 to i32
%16 = arith.trunci %13 : i64 to i32
%17 = arith.extui %extracted_0 : i32 to i64
%18 = arith.muli %17, %c3449720151_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.xori %20, %11 : i32
%23 = arith.xori %22, %extracted_0 : i32
%24 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%25 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%26 = arith.extui %23 : i32 to i64
%27 = arith.muli %26, %c3528531795_i64 : i64
%28 = arith.shrui %27, %c32_i64 : i64
%29 = arith.trunci %28 : i64 to i32
%30 = arith.trunci %27 : i64 to i32
%31 = arith.extui %15 : i32 to i64
%32 = arith.muli %31, %c3449720151_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.xori %34, %21 : i32
%37 = arith.xori %36, %24 : i32
%38 = arith.xori %29, %16 : i32
%39 = arith.xori %38, %25 : i32
%40 = arith.addi %extracted_0, %c1013904242_i32 : i32
%41 = arith.addi %extracted_2, %c1993301258_i32 : i32
%42 = arith.extui %37 : i32 to i64
%43 = arith.muli %42, %c3528531795_i64 : i64
%44 = arith.shrui %43, %c32_i64 : i64
%45 = arith.trunci %44 : i64 to i32
%46 = arith.trunci %43 : i64 to i32
%47 = arith.extui %39 : i32 to i64
%48 = arith.muli %47, %c3449720151_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.xori %50, %35 : i32
%53 = arith.xori %52, %40 : i32
%54 = arith.xori %45, %30 : i32
%55 = arith.xori %54, %41 : i32
%56 = arith.addi %extracted_0, %c-626627285_i32 : i32
%57 = arith.addi %extracted_2, %c842468239_i32 : i32
%58 = arith.extui %53 : i32 to i64
%59 = arith.muli %58, %c3528531795_i64 : i64
%60 = arith.shrui %59, %c32_i64 : i64
%61 = arith.trunci %60 : i64 to i32
%62 = arith.trunci %59 : i64 to i32
%63 = arith.extui %55 : i32 to i64
%64 = arith.muli %63, %c3449720151_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.xori %66, %51 : i32
%69 = arith.xori %68, %56 : i32
%70 = arith.xori %61, %46 : i32
%71 = arith.xori %70, %57 : i32
%72 = arith.addi %extracted_0, %c2027808484_i32 : i32
%73 = arith.addi %extracted_2, %c-308364780_i32 : i32
%74 = arith.extui %69 : i32 to i64
%75 = arith.muli %74, %c3528531795_i64 : i64
%76 = arith.shrui %75, %c32_i64 : i64
%77 = arith.trunci %76 : i64 to i32
%78 = arith.trunci %75 : i64 to i32
%79 = arith.extui %71 : i32 to i64
%80 = arith.muli %79, %c3449720151_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.xori %82, %67 : i32
%85 = arith.xori %84, %72 : i32
%86 = arith.xori %77, %62 : i32
%87 = arith.xori %86, %73 : i32
%88 = arith.addi %extracted_0, %c387276957_i32 : i32
%89 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%90 = arith.extui %85 : i32 to i64
%91 = arith.muli %90, %c3528531795_i64 : i64
%92 = arith.shrui %91, %c32_i64 : i64
%93 = arith.trunci %92 : i64 to i32
%94 = arith.trunci %91 : i64 to i32
%95 = arith.extui %87 : i32 to i64
%96 = arith.muli %95, %c3449720151_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.xori %98, %83 : i32
%101 = arith.xori %100, %88 : i32
%102 = arith.xori %93, %78 : i32
%103 = arith.xori %102, %89 : i32
%104 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%105 = arith.addi %extracted_2, %c1684936478_i32 : i32
%106 = arith.extui %101 : i32 to i64
%107 = arith.muli %106, %c3528531795_i64 : i64
%108 = arith.shrui %107, %c32_i64 : i64
%109 = arith.trunci %108 : i64 to i32
%110 = arith.trunci %107 : i64 to i32
%111 = arith.extui %103 : i32 to i64
%112 = arith.muli %111, %c3449720151_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.xori %114, %99 : i32
%117 = arith.xori %116, %104 : i32
%118 = arith.xori %109, %94 : i32
%119 = arith.xori %118, %105 : i32
%120 = arith.addi %extracted_0, %c1401181199_i32 : i32
%121 = arith.addi %extracted_2, %c534103459_i32 : i32
%122 = arith.extui %117 : i32 to i64
%123 = arith.muli %122, %c3528531795_i64 : i64
%124 = arith.shrui %123, %c32_i64 : i64
%125 = arith.trunci %124 : i64 to i32
%126 = arith.trunci %123 : i64 to i32
%127 = arith.extui %119 : i32 to i64
%128 = arith.muli %127, %c3449720151_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.xori %130, %115 : i32
%133 = arith.xori %132, %120 : i32
%134 = arith.xori %125, %110 : i32
%135 = arith.xori %134, %121 : i32
%136 = arith.addi %extracted_0, %c-239350328_i32 : i32
%137 = arith.addi %extracted_2, %c-616729560_i32 : i32
%138 = arith.extui %133 : i32 to i64
%139 = arith.muli %138, %c3528531795_i64 : i64
%140 = arith.shrui %139, %c32_i64 : i64
%141 = arith.trunci %140 : i64 to i32
%142 = arith.trunci %139 : i64 to i32
%143 = arith.extui %135 : i32 to i64
%144 = arith.muli %143, %c3449720151_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.xori %146, %131 : i32
%149 = arith.xori %148, %136 : i32
%150 = arith.xori %141, %126 : i32
%151 = arith.xori %150, %137 : i32
%152 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%153 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%154 = arith.extui %149 : i32 to i64
%155 = arith.muli %154, %c3528531795_i64 : i64
%156 = arith.shrui %155, %c32_i64 : i64
%157 = arith.trunci %156 : i64 to i32
%158 = arith.trunci %155 : i64 to i32
%159 = arith.extui %151 : i32 to i64
%160 = arith.muli %159, %c3449720151_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.xori %162, %147 : i32
%165 = arith.xori %164, %152 : i32
%166 = arith.xori %157, %142 : i32
%167 = arith.xori %166, %153 : i32
linalg.yield %165, %163, %167, %158 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
util.return %5#0, %5#1, %5#2, %5#3 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>
}
}
// -----// IR Dump After Canonicalizer (canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
util.func private @_philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: tensor<4xi32>) -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
}
// -----// IR Dump After Inliner (inline) ('builtin.module' operation) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After Canonicalizer (canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CSE (cse) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After SymbolDCE (symbol-dce) ('builtin.module' operation) //----- //
#map = affine_map<(d0) -> (d0)>
module {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After AssignLegacyTargetDevicesPass (iree-hal-assign-legacy-target-devices) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {hal.device.targets = [#device_target_local]} {
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After MaterializeTargetDevicesPass (iree-hal-materialize-target-devices) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After ResolveDevicePromisesPass (iree-hal-resolve-device-promises) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After ResolveDeviceAliasesPass (iree-hal-resolve-device-aliases) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After VerifyDevicesPass (iree-hal-verify-devices) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After LinalgQuantizedConvToConvPass (iree-global-opt-quantized-conv-to-conv) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After LinalgQuantizedMatmulToMatmulPass (iree-global-opt-quantized-matmul-to-matmul) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CanonicalizerPass (iree-flow-canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After RemoveZeroExtentTensorsPass (iree-global-opt-remove-zero-extent-tensors) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After DetachElementwiseFromNamedOpsPass (iree-global-opt-detach-elementwise-from-named-ops) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After LinalgNamedOpConversionPass (linalg-named-op-conversion) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After Convert1X1FilterConv2DToMatmulPass (iree-global-opt-convert-1x1-filter-conv2d-to-matmul) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After EraseUnusedLinalgOperandsPass (iree-global-opt-erase-unused-linalg-operands) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After ExpandTensorShapesPass (iree-global-opt-expand-tensor-shapes) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After ConvertElementwiseToLinalgPass (convert-elementwise-to-linalg) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After RaiseSpecialOpsPass (iree-global-opt-raise-special-ops) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After DecomposeConcatPass (iree-global-opt-decompose-concat) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After GeneralizeLinalgNamedOpsPass (iree-global-opt-generalize-linalg-named-ops) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After FoldUnitExtentDimsPass (iree-dispatch-creation-fold-unit-extent-dims) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After DemoteContractionInputsToBF16Pass (iree-global-opt-demote-contraction-inputs-to-bf16) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CanonicalizerPass (iree-flow-canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CSE (cse) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CanonicalizerPass (iree-flow-canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CSE (cse) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After SetEncodingPass (iree-dispatch-creation-set-encoding) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CPUMaterializeHostEncodingPass (iree-codegen-cpu-materialize-host-encoding) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After MaterializeHomogeneousEncodingsPass (iree-global-opt-materialize-homogeneous-encodings) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CanonicalizerPass (iree-flow-canonicalize) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CSE (cse) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After SimplifyPackUnpackPass (iree-global-opt-simplify-pack-unpack) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After DataLayoutPropagationPass (iree-global-opt-data-layout-propagation) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After GeneralizeLinalgNamedOpsPass (iree-global-opt-generalize-linalg-named-ops) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After GlobalLoopInvariantCodeMotionPass (iree-global-opt-loop-invariant-code-motion) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CanonicalizerPass (iree-flow-canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CSE (cse) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After SimplifyGlobalAccesses (iree-util-simplify-global-accesses) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After ApplyPatterns (iree-util-apply-patterns) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After FoldGlobals (iree-util-fold-globals) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After IPO (iree-util-ipo) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CanonicalizerPass (iree-flow-canonicalize) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CSE (cse) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After HoistIntoGlobals (iree-util-hoist-into-globals) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After JitGlobalsPass (iree-consteval-jit-globals) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CanonicalizerPass (iree-flow-canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CSE (cse) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After RaiseSpecialOpsPass (iree-global-opt-raise-special-ops) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After InjectTensorTracingPass (iree-flow-inject-tensor-tracing) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After TensorPadToTensorInsertSlicePass (iree-dispatch-creation-tensor-pad-to-tensor-insert-slice) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CanonicalizerPass (iree-flow-canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {iree.fixedpoint.iteration = 0 : index, stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CSE (cse) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {iree.fixedpoint.iteration = 0 : index, stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After SimplifyGlobalAccesses (iree-util-simplify-global-accesses) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {iree.fixedpoint.iteration = 0 : index, stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After ApplyPatterns (iree-util-apply-patterns) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {iree.fixedpoint.iteration = 0 : index, stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After FoldGlobals (iree-util-fold-globals) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {iree.fixedpoint.iteration = 0 : index, stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After FuseGlobals (iree-util-fuse-globals) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {iree.fixedpoint.iteration = 0 : index, stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After IPO (iree-util-ipo) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {iree.fixedpoint.iteration = 0 : index, stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After FixedPointIterator (iree-util-fixed-point-iterator) ('builtin.module' operation) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After FusionPreprocessingPass (iree-dispatch-creation-fusion-preprocessing) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CanonicalizerPass (iree-flow-canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CSE (cse) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After ElementwiseOpFusionPass (iree-dispatch-creation-elementwise-op-fusion) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CanonicalizerPass (iree-flow-canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CSE (cse) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After BubbleUpExpandShapesPass (iree-dispatch-creation-bubble-up-expand-shapes) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After BubbleUpExtractSlicesPass (iree-dispatch-creation-bubble-up-extract-slices) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CanonicalizerPass (iree-flow-canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CSE (cse) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After ElementwiseOpFusionPass (iree-dispatch-creation-elementwise-op-fusion) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CanonicalizerPass (iree-flow-canonicalize) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 = arith.trunci %161 : i64 to i32
%163 = arith.trunci %160 : i64 to i32
%164 = arith.extui %156 : i32 to i64
%165 = arith.muli %164, %c3449720151_i64 : i64
%166 = arith.shrui %165, %c32_i64 : i64
%167 = arith.trunci %166 : i64 to i32
%168 = arith.trunci %165 : i64 to i32
%169 = arith.xori %167, %152 : i32
%170 = arith.xori %169, %157 : i32
%171 = arith.xori %162, %147 : i32
%172 = arith.xori %171, %158 : i32
linalg.yield %170, %168, %172, %163 : i32, i32, i32, i32
} -> (tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>)
%7 = hal.tensor.export %6#0 "output0" : tensor<2xi32> -> !hal.buffer_view
%8 = hal.tensor.export %6#1 "output1" : tensor<2xi32> -> !hal.buffer_view
%9 = hal.tensor.export %6#2 "output2" : tensor<2xi32> -> !hal.buffer_view
%10 = hal.tensor.export %6#3 "output3" : tensor<2xi32> -> !hal.buffer_view
util.return %7, %8, %9, %10 : !hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view
}
}
// -----// IR Dump After CSE (cse) ('util.func' operation: @philox_i32_dispatch_0_elementwise_broadcast_2_i32) //----- //
#executable_target_embedded_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "embedded-elf-x86_64", {cpu = "generic", cpu_features = "", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", native_vector_size = 16 : i64, target_triple = "x86_64-unknown-unknown-eabi-elf"}>
#map = affine_map<(d0) -> (d0)>
#device_target_local = #hal.device.target<"local", [#executable_target_embedded_elf_x86_64_]> : !hal.device
module attributes {stream.affinity.default = #hal.device.affinity<@__device_0>} {
util.global private @__device_0 = #device_target_local
util.func public @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%arg0: !hal.buffer_view) -> (!hal.buffer_view, !hal.buffer_view, !hal.buffer_view, !hal.buffer_view) attributes {iree.abi.stub, iree.reflection = {iree.abi.declaration = "sync func @philox_i32_dispatch_0_elementwise_broadcast_2_i32(%input0: tensor<4xi32>) -> (%output0: tensor<2xi32>, %output1: tensor<2xi32>, %output2: tensor<2xi32>, %output3: tensor<2xi32>)"}} {
%c32_i64 = arith.constant 32 : i64
%c-1767562579_i32 = arith.constant -1767562579 : i32
%c-1879881855_i32 = arith.constant -1879881855 : i32
%c-616729560_i32 = arith.constant -616729560 : i32
%c-239350328_i32 = arith.constant -239350328 : i32
%c534103459_i32 = arith.constant 534103459 : i32
%c1401181199_i32 = arith.constant 1401181199 : i32
%c1684936478_i32 = arith.constant 1684936478 : i32
%c-1253254570_i32 = arith.constant -1253254570 : i32
%c-1459197799_i32 = arith.constant -1459197799 : i32
%c387276957_i32 = arith.constant 387276957 : i32
%c-308364780_i32 = arith.constant -308364780 : i32
%c2027808484_i32 = arith.constant 2027808484 : i32
%c842468239_i32 = arith.constant 842468239 : i32
%c-626627285_i32 = arith.constant -626627285 : i32
%c1993301258_i32 = arith.constant 1993301258 : i32
%c1013904242_i32 = arith.constant 1013904242 : i32
%c-1150833019_i32 = arith.constant -1150833019 : i32
%c1 = arith.constant 1 : index
%c-1640531527_i32 = arith.constant -1640531527 : i32
%c3449720151_i64 = arith.constant 3449720151 : i64
%c3528531795_i64 = arith.constant 3528531795 : i64
%c2 = arith.constant 2 : index
%c3 = arith.constant 3 : index
%c0 = arith.constant 0 : index
%0 = hal.tensor.import %arg0 "input0" : !hal.buffer_view -> tensor<4xi32>
%1 = tensor.empty() : tensor<2xi32>
%extracted = tensor.extract %0[%c2] : tensor<4xi32>
%extracted_0 = tensor.extract %0[%c0] : tensor<4xi32>
%extracted_1 = tensor.extract %0[%c3] : tensor<4xi32>
%extracted_2 = tensor.extract %0[%c1] : tensor<4xi32>
%2 = arith.extui %extracted_1 : i32 to i64
%3 = arith.extui %extracted : i32 to i64
%4 = arith.shli %3, %c32_i64 : i64
%5 = arith.ori %2, %4 : i64
%6:4 = linalg.generic {indexing_maps = [#map, #map, #map, #map], iterator_types = ["parallel"]} outs(%1, %1, %1, %1 : tensor<2xi32>, tensor<2xi32>, tensor<2xi32>, tensor<2xi32>) {
^bb0(%out: i32, %out_3: i32, %out_4: i32, %out_5: i32):
%11 = linalg.index 0 : index
%12 = arith.index_cast %11 : index to i64
%13 = arith.addi %12, %5 : i64
%14 = arith.trunci %13 : i64 to i32
%15 = arith.shrui %13, %c32_i64 : i64
%16 = arith.trunci %15 : i64 to i32
%17 = arith.extui %14 : i32 to i64
%18 = arith.muli %17, %c3528531795_i64 : i64
%19 = arith.shrui %18, %c32_i64 : i64
%20 = arith.trunci %19 : i64 to i32
%21 = arith.trunci %18 : i64 to i32
%22 = arith.extui %extracted_0 : i32 to i64
%23 = arith.muli %22, %c3449720151_i64 : i64
%24 = arith.shrui %23, %c32_i64 : i64
%25 = arith.trunci %24 : i64 to i32
%26 = arith.trunci %23 : i64 to i32
%27 = arith.xori %25, %16 : i32
%28 = arith.xori %27, %extracted_0 : i32
%29 = arith.addi %extracted_0, %c-1640531527_i32 : i32
%30 = arith.addi %extracted_2, %c-1150833019_i32 : i32
%31 = arith.extui %28 : i32 to i64
%32 = arith.muli %31, %c3528531795_i64 : i64
%33 = arith.shrui %32, %c32_i64 : i64
%34 = arith.trunci %33 : i64 to i32
%35 = arith.trunci %32 : i64 to i32
%36 = arith.extui %20 : i32 to i64
%37 = arith.muli %36, %c3449720151_i64 : i64
%38 = arith.shrui %37, %c32_i64 : i64
%39 = arith.trunci %38 : i64 to i32
%40 = arith.trunci %37 : i64 to i32
%41 = arith.xori %39, %26 : i32
%42 = arith.xori %41, %29 : i32
%43 = arith.xori %34, %21 : i32
%44 = arith.xori %43, %30 : i32
%45 = arith.addi %extracted_0, %c1013904242_i32 : i32
%46 = arith.addi %extracted_2, %c1993301258_i32 : i32
%47 = arith.extui %42 : i32 to i64
%48 = arith.muli %47, %c3528531795_i64 : i64
%49 = arith.shrui %48, %c32_i64 : i64
%50 = arith.trunci %49 : i64 to i32
%51 = arith.trunci %48 : i64 to i32
%52 = arith.extui %44 : i32 to i64
%53 = arith.muli %52, %c3449720151_i64 : i64
%54 = arith.shrui %53, %c32_i64 : i64
%55 = arith.trunci %54 : i64 to i32
%56 = arith.trunci %53 : i64 to i32
%57 = arith.xori %55, %40 : i32
%58 = arith.xori %57, %45 : i32
%59 = arith.xori %50, %35 : i32
%60 = arith.xori %59, %46 : i32
%61 = arith.addi %extracted_0, %c-626627285_i32 : i32
%62 = arith.addi %extracted_2, %c842468239_i32 : i32
%63 = arith.extui %58 : i32 to i64
%64 = arith.muli %63, %c3528531795_i64 : i64
%65 = arith.shrui %64, %c32_i64 : i64
%66 = arith.trunci %65 : i64 to i32
%67 = arith.trunci %64 : i64 to i32
%68 = arith.extui %60 : i32 to i64
%69 = arith.muli %68, %c3449720151_i64 : i64
%70 = arith.shrui %69, %c32_i64 : i64
%71 = arith.trunci %70 : i64 to i32
%72 = arith.trunci %69 : i64 to i32
%73 = arith.xori %71, %56 : i32
%74 = arith.xori %73, %61 : i32
%75 = arith.xori %66, %51 : i32
%76 = arith.xori %75, %62 : i32
%77 = arith.addi %extracted_0, %c2027808484_i32 : i32
%78 = arith.addi %extracted_2, %c-308364780_i32 : i32
%79 = arith.extui %74 : i32 to i64
%80 = arith.muli %79, %c3528531795_i64 : i64
%81 = arith.shrui %80, %c32_i64 : i64
%82 = arith.trunci %81 : i64 to i32
%83 = arith.trunci %80 : i64 to i32
%84 = arith.extui %76 : i32 to i64
%85 = arith.muli %84, %c3449720151_i64 : i64
%86 = arith.shrui %85, %c32_i64 : i64
%87 = arith.trunci %86 : i64 to i32
%88 = arith.trunci %85 : i64 to i32
%89 = arith.xori %87, %72 : i32
%90 = arith.xori %89, %77 : i32
%91 = arith.xori %82, %67 : i32
%92 = arith.xori %91, %78 : i32
%93 = arith.addi %extracted_0, %c387276957_i32 : i32
%94 = arith.addi %extracted_2, %c-1459197799_i32 : i32
%95 = arith.extui %90 : i32 to i64
%96 = arith.muli %95, %c3528531795_i64 : i64
%97 = arith.shrui %96, %c32_i64 : i64
%98 = arith.trunci %97 : i64 to i32
%99 = arith.trunci %96 : i64 to i32
%100 = arith.extui %92 : i32 to i64
%101 = arith.muli %100, %c3449720151_i64 : i64
%102 = arith.shrui %101, %c32_i64 : i64
%103 = arith.trunci %102 : i64 to i32
%104 = arith.trunci %101 : i64 to i32
%105 = arith.xori %103, %88 : i32
%106 = arith.xori %105, %93 : i32
%107 = arith.xori %98, %83 : i32
%108 = arith.xori %107, %94 : i32
%109 = arith.addi %extracted_0, %c-1253254570_i32 : i32
%110 = arith.addi %extracted_2, %c1684936478_i32 : i32
%111 = arith.extui %106 : i32 to i64
%112 = arith.muli %111, %c3528531795_i64 : i64
%113 = arith.shrui %112, %c32_i64 : i64
%114 = arith.trunci %113 : i64 to i32
%115 = arith.trunci %112 : i64 to i32
%116 = arith.extui %108 : i32 to i64
%117 = arith.muli %116, %c3449720151_i64 : i64
%118 = arith.shrui %117, %c32_i64 : i64
%119 = arith.trunci %118 : i64 to i32
%120 = arith.trunci %117 : i64 to i32
%121 = arith.xori %119, %104 : i32
%122 = arith.xori %121, %109 : i32
%123 = arith.xori %114, %99 : i32
%124 = arith.xori %123, %110 : i32
%125 = arith.addi %extracted_0, %c1401181199_i32 : i32
%126 = arith.addi %extracted_2, %c534103459_i32 : i32
%127 = arith.extui %122 : i32 to i64
%128 = arith.muli %127, %c3528531795_i64 : i64
%129 = arith.shrui %128, %c32_i64 : i64
%130 = arith.trunci %129 : i64 to i32
%131 = arith.trunci %128 : i64 to i32
%132 = arith.extui %124 : i32 to i64
%133 = arith.muli %132, %c3449720151_i64 : i64
%134 = arith.shrui %133, %c32_i64 : i64
%135 = arith.trunci %134 : i64 to i32
%136 = arith.trunci %133 : i64 to i32
%137 = arith.xori %135, %120 : i32
%138 = arith.xori %137, %125 : i32
%139 = arith.xori %130, %115 : i32
%140 = arith.xori %139, %126 : i32
%141 = arith.addi %extracted_0, %c-239350328_i32 : i32
%142 = arith.addi %extracted_2, %c-616729560_i32 : i32
%143 = arith.extui %138 : i32 to i64
%144 = arith.muli %143, %c3528531795_i64 : i64
%145 = arith.shrui %144, %c32_i64 : i64
%146 = arith.trunci %145 : i64 to i32
%147 = arith.trunci %144 : i64 to i32
%148 = arith.extui %140 : i32 to i64
%149 = arith.muli %148, %c3449720151_i64 : i64
%150 = arith.shrui %149, %c32_i64 : i64
%151 = arith.trunci %150 : i64 to i32
%152 = arith.trunci %149 : i64 to i32
%153 = arith.xori %151, %136 : i32
%154 = arith.xori %153, %141 : i32
%155 = arith.xori %146, %131 : i32
%156 = arith.xori %155, %142 : i32
%157 = arith.addi %extracted_0, %c-1879881855_i32 : i32
%158 = arith.addi %extracted_2, %c-1767562579_i32 : i32
%159 = arith.extui %154 : i32 to i64
%160 = arith.muli %159, %c3528531795_i64 : i64
%161 = arith.shrui %160, %c32_i64 : i64
%162 =
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment