%0 = make_token : token
%1, %2, %3 = get_num_tile_blocks : tile<i32>
%4 = constant <i32: 128> : tile<i32>
%5 = muli %1, %4 : tile<i32>
%6 = assume div_by<16>, %arg0 : tile<ptr<f64>>
%7 = make_tensor_view %6, shape = [%5], strides = [1] : tile<i32> -> tensor_view<?xf64, strides=[1]>
%8 = make_partition_view %7 : partition_view<tile=(128), padding_value = zero, tensor_view<?xf64, strides=[1]>, dim_map=[0]>
%9, %10, %11 = get_tile_block_id : tile<i32>
%12, %13 = load_view_tko weak %8[%9] token=%0 : partition_view<tile=(128), padding_value = zero, tensor_view<?xf64, strides=[1]>, dim_map=[0]>, tile<i32> -> tile<128xf64>, token
%14 = assume div_by<16>, %arg1 : tile<ptr<f64>>
%15 = make_tensor_view %14, shape = [%5], strides = [1] : tile<i32> -> tensor_view<?xf64, strides=[1]>
%16 = make_partition_view %15 : partition_view<tile=(128), padding_value = zero, tensor_view<?xf64, strides=[1]>, dim_map=[0]>
%0 = make_token : token
%1 = assume div_by<16>, %arg0 : tile<ptr<f64>>
%2 = make_tensor_view %1, shape = [100], strides = [1] : tensor_view<100xf64, strides=[1]>
%3 = make_partition_view %2 : partition_view<tile=(128), padding_value = zero, tensor_view<100xf64, strides=[1]>, dim_map=[0]>
%4, %5, %6 = get_tile_block_id : tile<i32>
%7, %8 = load_view_tko weak %3[%4] token=%0 : partition_view<tile=(128), padding_value = zero, tensor_view<100xf64, strides=[1]>, dim_map=[0]>, tile<i32> -> tile<128xf64>, token
%9 = scan %7 dim=0 reverse=false identities=[0.0 : f64] : tile<128xf64> -> tile<128xf64> (%10: tile<f64>, %11: tile<f64>) {
%12 = addf %10, %11 rounding<nearest_even> : tile<f64>
%13 = assume div_by<16>, %arg1 : tile<ptr<f64>>
%14 = make_tensor_view %13, shape = [100], strides = [1] : tensor_view<100xf64, strides=[1]>
%15 = make_partition_view %14 : partition_view<tile=(128), padding_value = zero, tensor_view<100xf64, strides=[1]>, dim_map=[0]>
%16 = store_view_tko weak %9, %15[%4] token=%8 : tile<128xf64>, partition_view<tile=(128), padding_value = zero, tensor_view<100xf64, strides=[1]>, dim_map=[0]>, tile<i32> -> token
%0 = make_token : token
%1 = assume div_by<16>, %arg0 : tile<ptr<f64>>
%2 = make_tensor_view %1, shape = [1000], strides = [1] : tensor_view<1000xf64, strides=[1]>
%3 = make_partition_view %2 : partition_view<tile=(1024), padding_value = neg_inf, tensor_view<1000xf64, strides=[1]>, dim_map=[0]>
%4, %5, %6 = get_tile_block_id : tile<i32>
%7, %8 = load_view_tko weak %3[%4] token=%0 : partition_view<tile=(1024), padding_value = neg_inf, tensor_view<1000xf64, strides=[1]>, dim_map=[0]>, tile<i32> -> tile<1024xf64>, token
%9 = reduce %7 dim=0 identities=[-Infinity : f64] : tile<1024xf64> -> tile<f64> (%10: tile<f64>, %11: tile<f64>) {
%12 = maxf %10, %11 : tile<f64>
%13 = reshape %9 : tile<f64> -> tile<1xf64>
%14 = broadcast %13 : tile<1xf64> -> tile<1024xf64>
%15 = subf %7, %14 rounding<nearest_even> : tile<1024xf64>
%16 = exp %15 : tile<1024xf64>
%0 = make_token : token
%1 = constant <i32: 0> : tile<i32>
%2, %3, %4 = get_num_tile_blocks : tile<i32>
%5 = constant <i32: 256> : tile<i32>
%6 = muli %2, %5 : tile<i32>
%7 = assume div_by<16>, %arg0 : tile<ptr<f64>>
%8 = make_tensor_view %7, shape = [%6], strides = [1] : tile<i32> -> tensor_view<?xf64, strides=[1]>
%9 = make_partition_view %8 : partition_view<tile=(256), padding_value = zero, tensor_view<?xf64, strides=[1]>, dim_map=[0]>
%10, %11, %12 = get_tile_block_id : tile<i32>
%13, %14 = load_view_tko weak %9[%10] token=%0 : partition_view<tile=(256), padding_value = zero, tensor_view<?xf64, strides=[1]>, dim_map=[0]>, tile<i32> -> tile<256xf64>, token
%15 = reduce %13 dim=0 identities=[0.0 : f64] : tile<256xf64> -> tile<f64> (%16: tile<f64>, %17: tile<f64>) {
%18 = addf %16, %17 rounding<nearest_even> : tile<f64>
%0 = make_token : token
%1 = constant <f64: 0.0> : tile<64x64xf64>
%2 = constant <i32: 0> : tile<i32>
%3 = constant <i32: 8> : tile<i32>
%4 = constant <i32: 1> : tile<i32>
%5, %6 = for %7 in (%2 to %3, step %4) : tile<i32> iter_values(%8 = %1, %9 = %0) -> (tile<64x64xf64>, token) {
%10 = assume div_by<16>, %arg0 : tile<ptr<f64>>
%11 = make_tensor_view %10, shape = [256, 256], strides = [256, 1] : tensor_view<256x256xf64, strides=[256, 1]>
%12 = make_partition_view %11 : partition_view<tile=(64x32), padding_value = zero, tensor_view<256x256xf64, strides=[256, 1]>, dim_map=[0, 1]>
%13, %14, %15 = get_tile_block_id : tile<i32>
%16, %17 = load_view_tko weak %12[%13, %7] token=%9 : partition_view<tile=(64x32), padding_value = zero, tensor_view<256x256xf64, strides=[256, 1]>, dim_map=[0, 1]>, tile<i32> -> tile<64x32xf64>, token
%18 = assume div_by<16>, %arg1 : tile<ptr<f64>>
%0 = make_token : token
%1, %2, %3 = get_num_tile_blocks : tile<i32>
%4 = constant <i32: 128> : tile<i32>
%5 = muli %1, %4 : tile<i32>
%6 = assume div_by<16>, %arg0 : tile<ptr<f64>>
%7 = make_tensor_view %6, shape = [%5], strides = [1] : tile<i32> -> tensor_view<?xf64, strides=[1]>
%8 = make_partition_view %7 : partition_view<tile=(128), padding_value = zero, tensor_view<?xf64, strides=[1]>, dim_map=[0]>
%9, %10, %11 = get_tile_block_id : tile<i32>
%12, %13 = load_view_tko weak %8[%9] token=%0 : partition_view<tile=(128), padding_value = zero, tensor_view<?xf64, strides=[1]>, dim_map=[0]>, tile<i32> -> tile<128xf64>, token
%14 = assume div_by<16>, %arg1 : tile<ptr<f64>>
%15 = make_tensor_view %14, shape = [%5], strides = [1] : tile<i32> -> tensor_view<?xf64, strides=[1]>
%16 = make_partition_view %15 : partition_view<tile=(128), padding_value = zero, tensor_view<?xf64, strides=[1]>, dim_map=[0]>
%0 = make_token : token
%1 = assume div_by<16>, %arg0 : tile<ptr<f64>>
%2 = make_tensor_view %1, shape = [100], strides = [1] : tensor_view<100xf64, strides=[1]>
%3 = make_partition_view %2 : partition_view<tile=(128), padding_value = zero, tensor_view<100xf64, strides=[1]>, dim_map=[0]>
%4, %5, %6 = get_tile_block_id : tile<i32>
%7, %8 = load_view_tko weak %3[%4] token=%0 : partition_view<tile=(128), padding_value = zero, tensor_view<100xf64, strides=[1]>, dim_map=[0]>, tile<i32> -> tile<128xf64>, token
%9 = scan %7 dim=0 reverse=false identities=[0.0 : f64] : tile<128xf64> -> tile<128xf64> (%10: tile<f64>, %11: tile<f64>) {
%12 = addf %10, %11 rounding<nearest_even> : tile<f64>
%13 = assume div_by<16>, %arg1 : tile<ptr<f64>>
%14 = make_tensor_view %13, shape = [100], strides = [1] : tensor_view<100xf64, strides=[1]>
%15 = make_partition_view %14 : partition_view<tile=(128), padding_value = zero, tensor_view<100xf64, strides=[1]>, dim_map=[0]>
%16 = store_view_tko weak %9, %15[%4] token=%8 : tile<128xf64>, partition_view<tile=(128), padding_value = zero, tensor_view<100xf64, strides=[1]>, dim_map=[0]>, tile<i32> -> token
%0 = make_token : token
%1 = assume div_by<16>, %arg0 : tile<ptr<f64>>
%2 = make_tensor_view %1, shape = [1000], strides = [1] : tensor_view<1000xf64, strides=[1]>
%3 = make_partition_view %2 : partition_view<tile=(1024), padding_value = neg_inf, tensor_view<1000xf64, strides=[1]>, dim_map=[0]>
%4, %5, %6 = get_tile_block_id : tile<i32>
%7, %8 = load_view_tko weak %3[%4] token=%0 : partition_view<tile=(1024), padding_value = neg_inf, tensor_view<1000xf64, strides=[1]>, dim_map=[0]>, tile<i32> -> tile<1024xf64>, token
%9 = reduce %7 dim=0 identities=[-Infinity : f64] : tile<1024xf64> -> tile<f64> (%10: tile<f64>, %11: tile<f64>) {
%12 = maxf %10, %11 : tile<f64>
%13 = reshape %9 : tile<f64> -> tile<1xf64>
%14 = broadcast %13 : tile<1xf64> -> tile<1024xf64>
%15 = subf %7, %14 rounding<nearest_even> : tile<1024xf64>
%16 = exp %15 : tile<1024xf64>
%0 = make_token : token
%1 = constant <i32: 0> : tile<i32>
%2, %3, %4 = get_num_tile_blocks : tile<i32>
%5 = constant <i32: 256> : tile<i32>
%6 = muli %2, %5 : tile<i32>
%7 = assume div_by<16>, %arg0 : tile<ptr<f64>>
%8 = make_tensor_view %7, shape = [%6], strides = [1] : tile<i32> -> tensor_view<?xf64, strides=[1]>
%9 = make_partition_view %8 : partition_view<tile=(256), padding_value = zero, tensor_view<?xf64, strides=[1]>, dim_map=[0]>
%10, %11, %12 = get_tile_block_id : tile<i32>
%13, %14 = load_view_tko weak %9[%10] token=%0 : partition_view<tile=(256), padding_value = zero, tensor_view<?xf64, strides=[1]>, dim_map=[0]>, tile<i32> -> tile<256xf64>, token
%15 = reduce %13 dim=0 identities=[0.0 : f64] : tile<256xf64> -> tile<f64> (%16: tile<f64>, %17: tile<f64>) {
%18 = addf %16, %17 rounding<nearest_even> : tile<f64>
%0 = make_token : token
%1 = constant <f64: 0.0> : tile<64x64xf64>
%2 = constant <i32: 0> : tile<i32>
%3 = constant <i32: 8> : tile<i32>
%4 = constant <i32: 1> : tile<i32>
%5, %6 = for %7 in (%2 to %3, step %4) : tile<i32> iter_values(%8 = %1, %9 = %0) -> (tile<64x64xf64>, token) {
%10 = assume div_by<16>, %arg0 : tile<ptr<f64>>
%11 = make_tensor_view %10, shape = [256, 256], strides = [256, 1] : tensor_view<256x256xf64, strides=[256, 1]>
%12 = make_partition_view %11 : partition_view<tile=(64x32), padding_value = zero, tensor_view<256x256xf64, strides=[256, 1]>, dim_map=[0, 1]>
%13, %14, %15 = get_tile_block_id : tile<i32>
%16, %17 = load_view_tko weak %12[%13, %7] token=%9 : partition_view<tile=(64x32), padding_value = zero, tensor_view<256x256xf64, strides=[256, 1]>, dim_map=[0, 1]>, tile<i32> -> tile<64x32xf64>, token
%18 = assume div_by<16>, %arg1 : tile<ptr<f64>>