Created
April 3, 2025 18:08
-
-
Save makslevental/8d59fcbe30c6e9d203926cbb44dea592 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| test.mlir:4:13: remark: unsigned : [1, 1] signed : [-1, -1] | |
| %true = arith.constant true | |
| ^ | |
| test.mlir:6:14: remark: unsigned : [0, 0] signed : [0, 0] | |
| %cst_1 = arith.constant dense<0> : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:6:14: remark: non-neg | |
| %cst_1 = arith.constant dense<0> : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:8:15: remark: unsigned : [1, 1] signed : [1, 1] | |
| %c1_i32 = arith.constant 1 : i32 | |
| ^ | |
| test.mlir:8:15: remark: non-neg | |
| %c1_i32 = arith.constant 1 : i32 | |
| ^ | |
| test.mlir:9:17: remark: unsigned : [304, 304] signed : [304, 304] | |
| %c304_i32 = arith.constant 304 : i32 | |
| ^ | |
| test.mlir:9:17: remark: non-neg | |
| %c304_i32 = arith.constant 304 : i32 | |
| ^ | |
| test.mlir:10:16: remark: unsigned : [64, 64] signed : [64, 64] | |
| %c64_i32 = arith.constant 64 : i32 | |
| ^ | |
| test.mlir:10:16: remark: non-neg | |
| %c64_i32 = arith.constant 64 : i32 | |
| ^ | |
| test.mlir:11:16: remark: unsigned : [63, 63] signed : [63, 63] | |
| %c63_i32 = arith.constant 63 : i32 | |
| ^ | |
| test.mlir:11:16: remark: non-neg | |
| %c63_i32 = arith.constant 63 : i32 | |
| ^ | |
| test.mlir:12:14: remark: unsigned : [0, 0] signed : [0, 0] | |
| %cst_3 = arith.constant dense<0> : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:12:14: remark: non-neg | |
| %cst_3 = arith.constant dense<0> : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:13:17: remark: unsigned : [128, 128] signed : [128, 128] | |
| %c128_i32 = arith.constant 128 : i32 | |
| ^ | |
| test.mlir:13:17: remark: non-neg | |
| %c128_i32 = arith.constant 128 : i32 | |
| ^ | |
| test.mlir:14:17: remark: unsigned : [127, 127] signed : [127, 127] | |
| %c127_i32 = arith.constant 127 : i32 | |
| ^ | |
| test.mlir:14:17: remark: non-neg | |
| %c127_i32 = arith.constant 127 : i32 | |
| ^ | |
| test.mlir:15:15: remark: unsigned : [8, 8] signed : [8, 8] | |
| %c8_i32 = arith.constant 8 : i32 | |
| ^ | |
| test.mlir:15:15: remark: non-neg | |
| %c8_i32 = arith.constant 8 : i32 | |
| ^ | |
| test.mlir:16:17: remark: unsigned : [256, 256] signed : [256, 256] | |
| %c256_i32 = arith.constant 256 : i32 | |
| ^ | |
| test.mlir:16:17: remark: non-neg | |
| %c256_i32 = arith.constant 256 : i32 | |
| ^ | |
| test.mlir:17:17: remark: unsigned : [255, 255] signed : [255, 255] | |
| %c255_i32 = arith.constant 255 : i32 | |
| ^ | |
| test.mlir:17:17: remark: non-neg | |
| %c255_i32 = arith.constant 255 : i32 | |
| ^ | |
| test.mlir:18:15: remark: unsigned : [0, 0] signed : [0, 0] | |
| %c0_i32 = arith.constant 0 : i32 | |
| ^ | |
| test.mlir:18:15: remark: non-neg | |
| %c0_i32 = arith.constant 0 : i32 | |
| ^ | |
| test.mlir:19:10: remark: unsigned : [0, 128] signed : [0, 128] | |
| %0 = tt.make_range {end = 128 : i32, start = 0 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:19:10: remark: non-neg | |
| %0 = tt.make_range {end = 128 : i32, start = 0 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:20:10: remark: unsigned : [0, 65535] signed : [0, 65535] | |
| %1 = tt.get_program_id x : i32 | |
| ^ | |
| test.mlir:20:10: remark: non-neg | |
| %1 = tt.get_program_id x : i32 | |
| ^ | |
| test.mlir:21:10: remark: unsigned : [256, 2147483902] signed : [-2147483648, 2147483647] | |
| %2 = arith.addi %arg4, %c255_i32 : i32 | |
| ^ | |
| test.mlir:22:10: remark: unsigned : [0, 4294967295] signed : [-8388608, 8388607] | |
| %3 = arith.divsi %2, %c256_i32 : i32 | |
| ^ | |
| test.mlir:23:10: remark: unsigned : [0, 4294967295] signed : [-67108864, 67108856] | |
| %4 = arith.muli %3, %c8_i32 : i32 | |
| ^ | |
| test.mlir:24:10: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %5 = arith.divsi %1, %4 : i32 | |
| ^ | |
| test.mlir:25:10: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %6 = arith.muli %5, %c8_i32 : i32 | |
| ^ | |
| test.mlir:26:10: remark: unsigned : [128, 2147483774] signed : [-2147483648, 2147483647] | |
| %7 = arith.addi %arg3, %c127_i32 : i32 | |
| ^ | |
| test.mlir:27:10: remark: unsigned : [0, 4294967295] signed : [-16777216, 16777215] | |
| %8 = arith.divsi %7, %c128_i32 : i32 | |
| ^ | |
| test.mlir:28:10: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %9 = arith.subi %8, %6 : i32 | |
| ^ | |
| test.mlir:29:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 8] | |
| %10 = arith.minsi %9, %c8_i32 : i32 | |
| ^ | |
| test.mlir:30:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %11 = arith.remsi %1, %10 : i32 | |
| ^ | |
| test.mlir:31:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %12 = arith.addi %6, %11 : i32 | |
| ^ | |
| test.mlir:32:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %13 = arith.muli %12, %c128_i32 : i32 | |
| ^ | |
| test.mlir:33:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %14 = arith.subi %arg3, %13 : i32 | |
| ^ | |
| test.mlir:34:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %15 = tt.splat %14 : i32 -> tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:35:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %16 = arith.cmpi slt, %0, %15 : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:36:11: remark: unsigned : [0, 128] signed : [0, 128] | |
| %17 = arith.select %16, %0, %cst_3 {tt.contiguity = dense<128> : tensor<1xi32>, tt.divisibility = dense<128> : tensor<1xi32>} : tensor<128xi1, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>>, tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:36:11: remark: non-neg | |
| %17 = arith.select %16, %0, %cst_3 {tt.contiguity = dense<128> : tensor<1xi32>, tt.divisibility = dense<128> : tensor<1xi32>} : tensor<128xi1, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>>, tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:37:11: remark: unsigned : [0, 64] signed : [0, 64] | |
| %18 = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:37:11: remark: non-neg | |
| %18 = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:38:11: remark: unsigned : [0, 128] signed : [0, 128] | |
| %19 = tt.expand_dims %17 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> -> tensor<128x1xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:38:11: remark: non-neg | |
| %19 = tt.expand_dims %17 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> -> tensor<128x1xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:39:11: remark: unsigned : [1, 2147483647] signed : [1, 2147483647] | |
| %20 = tt.splat %arg6 : i32 -> tensor<128x1xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:39:11: remark: non-neg | |
| %20 = tt.splat %arg6 : i32 -> tensor<128x1xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:40:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %21 = arith.muli %19, %20 : tensor<128x1xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:41:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %22 = tt.broadcast %21 : tensor<128x1xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> -> tensor<128x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:42:11: remark: unsigned : [0, 64] signed : [0, 64] | |
| %23 = tt.expand_dims %18 {axis = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> -> tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:42:11: remark: non-neg | |
| %23 = tt.expand_dims %18 {axis = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> -> tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:43:11: remark: unsigned : [0, 64] signed : [0, 64] | |
| %24 = tt.broadcast %23 : tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> -> tensor<128x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:43:11: remark: non-neg | |
| %24 = tt.broadcast %23 : tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> -> tensor<128x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:44:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %25 = arith.addi %22, %24 : tensor<128x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:45:11: remark: unsigned : [64, 2147483710] signed : [-2147483648, 2147483647] | |
| %26 = arith.addi %arg5, %c63_i32 : i32 | |
| ^ | |
| test.mlir:46:11: remark: unsigned : [0, 4294967295] signed : [-33554432, 33554431] | |
| %27 = arith.divsi %26, %c64_i32 : i32 | |
| ^ | |
| test.mlir:47:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %28 = arith.muli %8, %3 : i32 | |
| ^ | |
| test.mlir:48:11: remark: unsigned : [0, 4294967295] signed : [-7064090, 7064090] | |
| %29 = arith.divsi %28, %c304_i32 : i32 | |
| ^ | |
| test.mlir:49:11: remark: unsigned : [0, 4294967295] signed : [-303, 303] | |
| %30 = arith.remsi %28, %c304_i32 : i32 | |
| ^ | |
| test.mlir:50:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %31 = arith.cmpi slt, %1, %30 : i32 | |
| ^ | |
| test.mlir:51:11: remark: unsigned : [0, 4294967295] signed : [-7064090, 7064091] | |
| %32 = scf.if %31 -> (i32) { | |
| ^ | |
| test.mlir:52:13: remark: unsigned : [0, 4294967295] signed : [-7064089, 7064091] | |
| %92 = arith.addi %29, %c1_i32 : i32 | |
| ^ | |
| test.mlir:57:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %33 = arith.muli %27, %32 : i32 | |
| ^ | |
| test.mlir:58:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %34 = arith.cmpi sgt, %33, %c0_i32 : i32 | |
| ^ | |
| test.mlir:59:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %35 = tt.splat %34 : i1 -> tensor<128x64xi1, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:60:11: remark: unsigned : [0, 64] signed : [0, 64] | |
| %36 = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:60:11: remark: non-neg | |
| %36 = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:61:11: remark: unsigned : [0, 64] signed : [0, 64] | |
| %37 = tt.expand_dims %36 {axis = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> -> tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:61:11: remark: non-neg | |
| %37 = tt.expand_dims %36 {axis = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> -> tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:62:11: remark: unsigned : [1, 2147483647] signed : [1, 2147483647] | |
| %38 = tt.splat %arg5 : i32 -> tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:62:11: remark: non-neg | |
| %38 = tt.splat %arg5 : i32 -> tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:63:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %39 = arith.cmpi slt, %37, %38 : tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:64:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %40 = tt.broadcast %39 : tensor<1x64xi1, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> -> tensor<128x64xi1, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:65:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %41 = arith.andi %35, %40 : tensor<128x64xi1, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:69:11: remark: unsigned : [0, 64] signed : [0, 64] | |
| %45 = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:69:11: remark: non-neg | |
| %45 = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:70:11: remark: unsigned : [0, 256] signed : [0, 256] | |
| %46 = tt.make_range {end = 256 : i32, start = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:70:11: remark: non-neg | |
| %46 = tt.make_range {end = 256 : i32, start = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:71:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %47 = arith.remsi %1, %4 : i32 | |
| ^ | |
| test.mlir:72:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %48 = arith.divsi %47, %10 : i32 | |
| ^ | |
| test.mlir:73:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %49 = arith.muli %48, %c256_i32 : i32 | |
| ^ | |
| test.mlir:74:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %50 = arith.subi %arg4, %49 : i32 | |
| ^ | |
| test.mlir:75:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %51 = tt.splat %50 : i32 -> tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:76:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %52 = arith.cmpi slt, %46, %51 : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:77:11: remark: unsigned : [0, 256] signed : [0, 256] | |
| %53 = arith.select %52, %46, %cst_1 {tt.contiguity = dense<256> : tensor<1xi32>, tt.divisibility = dense<256> : tensor<1xi32>} : tensor<256xi1, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:77:11: remark: non-neg | |
| %53 = arith.select %52, %46, %cst_1 {tt.contiguity = dense<256> : tensor<1xi32>, tt.divisibility = dense<256> : tensor<1xi32>} : tensor<256xi1, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:78:11: remark: unsigned : [0, 64] signed : [0, 64] | |
| %54 = tt.expand_dims %45 {axis = 1 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> -> tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:78:11: remark: non-neg | |
| %54 = tt.expand_dims %45 {axis = 1 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> -> tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:79:11: remark: unsigned : [0, 64] signed : [0, 64] | |
| %55 = tt.broadcast %54 : tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> -> tensor<64x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:79:11: remark: non-neg | |
| %55 = tt.broadcast %54 : tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> -> tensor<64x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:80:11: remark: unsigned : [0, 256] signed : [0, 256] | |
| %56 = tt.expand_dims %53 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> -> tensor<1x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:80:11: remark: non-neg | |
| %56 = tt.expand_dims %53 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> -> tensor<1x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:81:11: remark: unsigned : [1, 2147483647] signed : [1, 2147483647] | |
| %57 = tt.splat %arg7 : i32 -> tensor<1x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:81:11: remark: non-neg | |
| %57 = tt.splat %arg7 : i32 -> tensor<1x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:82:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %58 = arith.muli %56, %57 : tensor<1x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:83:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %59 = tt.broadcast %58 : tensor<1x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> -> tensor<64x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:84:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %60 = arith.addi %55, %59 : tensor<64x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:85:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %61 = tt.splat %34 : i1 -> tensor<64x256xi1, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:86:11: remark: unsigned : [0, 64] signed : [0, 64] | |
| %62 = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:86:11: remark: non-neg | |
| %62 = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:87:11: remark: unsigned : [0, 64] signed : [0, 64] | |
| %63 = tt.expand_dims %62 {axis = 1 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> -> tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:87:11: remark: non-neg | |
| %63 = tt.expand_dims %62 {axis = 1 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> -> tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:88:11: remark: unsigned : [1, 2147483647] signed : [1, 2147483647] | |
| %64 = tt.splat %arg5 : i32 -> tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:88:11: remark: non-neg | |
| %64 = tt.splat %arg5 : i32 -> tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:89:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %65 = arith.cmpi slt, %63, %64 : tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:90:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %66 = tt.broadcast %65 : tensor<64x1xi1, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> -> tensor<64x256xi1, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:91:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %67 = arith.andi %61, %66 : tensor<64x256xi1, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:95:11: remark: unsigned : [1, 1] signed : [-1, -1] | |
| %71 = arith.cmpi sgt, %arg3, %c0_i32 : i32 | |
| ^ | |
| test.mlir:95:11: remark: result is true | |
| %71 = arith.cmpi sgt, %arg3, %c0_i32 : i32 | |
| ^ | |
| test.mlir:97:11: remark: unsigned : [1, 1] signed : [-1, -1] | |
| %72 = arith.cmpi sgt, %arg4, %c0_i32 : i32 | |
| ^ | |
| test.mlir:97:11: remark: result is true | |
| %72 = arith.cmpi sgt, %arg4, %c0_i32 : i32 | |
| ^ | |
| test.mlir:99:11: remark: unsigned : [1, 1] signed : [-1, -1] | |
| %73 = arith.cmpi sgt, %arg5, %c0_i32 : i32 | |
| ^ | |
| test.mlir:99:11: remark: result is true | |
| %73 = arith.cmpi sgt, %arg5, %c0_i32 : i32 | |
| ^ | |
| test.mlir:101:11: remark: unsigned : [1, 1] signed : [-1, -1] | |
| %74 = arith.cmpi sgt, %arg6, %c0_i32 : i32 | |
| ^ | |
| test.mlir:101:11: remark: result is true | |
| %74 = arith.cmpi sgt, %arg6, %c0_i32 : i32 | |
| ^ | |
| test.mlir:105:11: remark: unsigned : [1, 1] signed : [-1, -1] | |
| %75 = arith.cmpi sgt, %arg7, %c0_i32 : i32 | |
| ^ | |
| test.mlir:105:11: remark: result is true | |
| %75 = arith.cmpi sgt, %arg7, %c0_i32 : i32 | |
| ^ | |
| test.mlir:107:11: remark: unsigned : [1, 1] signed : [-1, -1] | |
| %76 = arith.cmpi sgt, %arg8, %c0_i32 : i32 | |
| ^ | |
| test.mlir:107:11: remark: result is true | |
| %76 = arith.cmpi sgt, %arg8, %c0_i32 : i32 | |
| ^ | |
| test.mlir:110:11: remark: unsigned : [0, 128] signed : [0, 128] | |
| %77 = tt.make_range {end = 128 : i32, start = 0 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> | |
| ^ | |
| test.mlir:110:11: remark: non-neg | |
| %77 = tt.make_range {end = 128 : i32, start = 0 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> | |
| ^ | |
| test.mlir:111:11: remark: unsigned : [0, 256] signed : [0, 256] | |
| %78 = tt.make_range {end = 256 : i32, start = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> | |
| ^ | |
| test.mlir:111:11: remark: non-neg | |
| %78 = tt.make_range {end = 256 : i32, start = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> | |
| ^ | |
| test.mlir:112:11: remark: unsigned : [0, 4294967295] signed : [-33554433, 33554430] | |
| %79 = arith.subi %27, %c1_i32 : i32 | |
| ^ | |
| test.mlir:119:11: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %84 = arith.subi %33, %c1_i32 : i32 | |
| ^ | |
| test.mlir:121:13: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %92 = arith.cmpi eq, %arg10, %79 : i32 | |
| ^ | |
| test.mlir:122:13: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %93 = arith.addi %arg10, %c1_i32 : i32 | |
| ^ | |
| test.mlir:123:13: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %94 = arith.select %92, %c0_i32, %93 : i32 | |
| ^ | |
| test.mlir:124:13: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %95 = arith.cmpi eq, %94, %c0_i32 : i32 | |
| ^ | |
| test.mlir:125:15: remark: result 0: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %96:5 = scf.if %95 -> (i32, i32, i32, tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>>) { | |
| ^ | |
| test.mlir:125:15: remark: result 1: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %96:5 = scf.if %95 -> (i32, i32, i32, tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>>) { | |
| ^ | |
| test.mlir:125:15: remark: result 2: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %96:5 = scf.if %95 -> (i32, i32, i32, tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>>) { | |
| ^ | |
| test.mlir:125:15: remark: result 3: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %96:5 = scf.if %95 -> (i32, i32, i32, tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>>) { | |
| ^ | |
| test.mlir:125:15: remark: result 4: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %96:5 = scf.if %95 -> (i32, i32, i32, tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>>) { | |
| ^ | |
| test.mlir:126:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %137 = arith.addi %arg11, %c304_i32 : i32 | |
| ^ | |
| test.mlir:127:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %138 = arith.divsi %137, %4 : i32 | |
| ^ | |
| test.mlir:128:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %139 = arith.muli %138, %c8_i32 : i32 | |
| ^ | |
| test.mlir:129:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %140 = arith.subi %8, %139 : i32 | |
| ^ | |
| test.mlir:130:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 8] | |
| %141 = arith.minsi %140, %c8_i32 : i32 | |
| ^ | |
| test.mlir:131:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %142 = arith.remsi %137, %141 : i32 | |
| ^ | |
| test.mlir:132:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %143 = arith.addi %139, %142 : i32 | |
| ^ | |
| test.mlir:133:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %144 = arith.remsi %137, %4 : i32 | |
| ^ | |
| test.mlir:134:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %145 = arith.divsi %144, %141 : i32 | |
| ^ | |
| test.mlir:135:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %146 = arith.muli %143, %c128_i32 : i32 | |
| ^ | |
| test.mlir:136:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %147 = arith.muli %145, %c256_i32 : i32 | |
| ^ | |
| test.mlir:137:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %148 = arith.subi %arg3, %146 : i32 | |
| ^ | |
| test.mlir:138:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %149 = tt.splat %148 : i32 -> tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:139:16: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %150 = arith.cmpi slt, %0, %149 : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:140:16: remark: unsigned : [0, 128] signed : [0, 128] | |
| %151 = arith.select %150, %0, %cst_3 {tt.contiguity = dense<128> : tensor<1xi32>, tt.divisibility = dense<128> : tensor<1xi32>} : tensor<128xi1, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>>, tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:140:16: remark: non-neg | |
| %151 = arith.select %150, %0, %cst_3 {tt.contiguity = dense<128> : tensor<1xi32>, tt.divisibility = dense<128> : tensor<1xi32>} : tensor<128xi1, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>>, tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> | |
| ^ | |
| test.mlir:141:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %152 = arith.subi %arg4, %147 : i32 | |
| ^ | |
| test.mlir:142:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %153 = tt.splat %152 : i32 -> tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:143:16: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %154 = arith.cmpi slt, %46, %153 : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:144:16: remark: unsigned : [0, 256] signed : [0, 256] | |
| %155 = arith.select %154, %46, %cst_1 {tt.contiguity = dense<256> : tensor<1xi32>, tt.divisibility = dense<256> : tensor<1xi32>} : tensor<256xi1, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:144:16: remark: non-neg | |
| %155 = arith.select %154, %46, %cst_1 {tt.contiguity = dense<256> : tensor<1xi32>, tt.divisibility = dense<256> : tensor<1xi32>} : tensor<256xi1, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> | |
| ^ | |
| test.mlir:149:13: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %97 = arith.muli %94, %c64_i32 : i32 | |
| ^ | |
| test.mlir:150:13: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %98 = tt.expand_dims %96#3 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> -> tensor<128x1xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:151:13: remark: unsigned : [1, 2147483647] signed : [1, 2147483647] | |
| %99 = tt.splat %arg6 : i32 -> tensor<128x1xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:151:13: remark: non-neg | |
| %99 = tt.splat %arg6 : i32 -> tensor<128x1xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:152:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %100 = arith.muli %98, %99 : tensor<128x1xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:153:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %101 = tt.broadcast %100 : tensor<128x1xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> -> tensor<128x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:154:14: remark: unsigned : [0, 64] signed : [0, 64] | |
| %102 = tt.expand_dims %18 {axis = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> -> tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:154:14: remark: non-neg | |
| %102 = tt.expand_dims %18 {axis = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>}>> -> tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:155:14: remark: unsigned : [0, 64] signed : [0, 64] | |
| %103 = tt.broadcast %102 : tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> -> tensor<128x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:155:14: remark: non-neg | |
| %103 = tt.broadcast %102 : tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> -> tensor<128x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:156:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %104 = arith.addi %101, %103 : tensor<128x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:158:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %106 = arith.subi %arg5, %97 : i32 | |
| ^ | |
| test.mlir:159:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %107 = tt.splat %106 : i32 -> tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:160:14: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %108 = arith.cmpi slt, %37, %107 : tensor<1x64xi32, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:161:14: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %109 = tt.broadcast %108 : tensor<1x64xi1, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> -> tensor<128x64xi1, #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}>> | |
| ^ | |
| test.mlir:165:14: remark: unsigned : [0, 64] signed : [0, 64] | |
| %113 = tt.expand_dims %45 {axis = 1 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> -> tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:165:14: remark: non-neg | |
| %113 = tt.expand_dims %45 {axis = 1 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> -> tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:166:14: remark: unsigned : [0, 64] signed : [0, 64] | |
| %114 = tt.broadcast %113 : tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> -> tensor<64x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:166:14: remark: non-neg | |
| %114 = tt.broadcast %113 : tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> -> tensor<64x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:167:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %115 = tt.expand_dims %96#4 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>}>> -> tensor<1x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:168:14: remark: unsigned : [1, 2147483647] signed : [1, 2147483647] | |
| %116 = tt.splat %arg7 : i32 -> tensor<1x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:168:14: remark: non-neg | |
| %116 = tt.splat %arg7 : i32 -> tensor<1x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:169:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %117 = arith.muli %115, %116 : tensor<1x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:170:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %118 = tt.broadcast %117 : tensor<1x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> -> tensor<64x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:171:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %119 = arith.addi %114, %118 : tensor<64x256xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:173:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %121 = tt.splat %106 : i32 -> tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:174:14: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %122 = arith.cmpi slt, %63, %121 : tensor<64x1xi32, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:175:14: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %123 = tt.broadcast %122 : tensor<64x1xi1, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> -> tensor<64x256xi1, #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}>> | |
| ^ | |
| test.mlir:182:14: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %130 = arith.cmpi eq, %arg10, %79 : i32 | |
| ^ | |
| test.mlir:185:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %137 = arith.muli %arg12, %c128_i32 : i32 | |
| ^ | |
| test.mlir:186:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %138 = tt.splat %137 : i32 -> tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> | |
| ^ | |
| test.mlir:187:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %139 = arith.addi %138, %77 : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> | |
| ^ | |
| test.mlir:188:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %140 = arith.muli %arg13, %c256_i32 : i32 | |
| ^ | |
| test.mlir:189:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %141 = tt.splat %140 : i32 -> tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> | |
| ^ | |
| test.mlir:190:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %142 = arith.addi %141, %78 : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> | |
| ^ | |
| test.mlir:191:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %143 = tt.expand_dims %139 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:192:16: remark: unsigned : [0, 128] signed : [0, 128] | |
| %144 = tt.expand_dims %77 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:192:16: remark: non-neg | |
| %144 = tt.expand_dims %77 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:193:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %145 = arith.muli %arg8, %137 : i32 | |
| ^ | |
| test.mlir:194:16: remark: unsigned : [1, 2147483647] signed : [1, 2147483647] | |
| %146 = tt.splat %arg8 : i32 -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:194:16: remark: non-neg | |
| %146 = tt.splat %arg8 : i32 -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:195:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %147 = arith.muli %146, %144 : tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:197:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %149 = tt.expand_dims %142 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> -> tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:198:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %150 = tt.broadcast %147 : tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> -> tensor<128x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:199:16: remark: unsigned : [0, 256] signed : [0, 256] | |
| %151 = tt.expand_dims %78 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> -> tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:199:16: remark: non-neg | |
| %151 = tt.expand_dims %78 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> -> tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:200:16: remark: unsigned : [0, 256] signed : [0, 256] | |
| %152 = tt.broadcast %151 : tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> -> tensor<128x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:200:16: remark: non-neg | |
| %152 = tt.broadcast %151 : tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> -> tensor<128x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:202:16: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %154 = arith.addi %152, %150 : tensor<128x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:203:16: remark: unsigned : [1, 2147483647] signed : [1, 2147483647] | |
| %155 = tt.splat %arg3 : i32 -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:203:16: remark: non-neg | |
| %155 = tt.splat %arg3 : i32 -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:204:16: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %156 = arith.cmpi slt, %143, %155 : tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:205:16: remark: unsigned : [1, 2147483647] signed : [1, 2147483647] | |
| %157 = tt.splat %arg4 : i32 -> tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:205:16: remark: non-neg | |
| %157 = tt.splat %arg4 : i32 -> tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:206:16: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %158 = arith.cmpi slt, %149, %157 : tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:207:16: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %159 = tt.broadcast %156 : tensor<128x1xi1, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> -> tensor<128x256xi1, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:208:16: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %160 = tt.broadcast %158 : tensor<1x256xi1, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> -> tensor<128x256xi1, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:209:16: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %161 = arith.andi %159, %160 : tensor<128x256xi1, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:215:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %132 = arith.addi %arg17, %c1_i32 : i32 | |
| ^ | |
| test.mlir:216:14: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %133 = arith.cmpi slt, %132, %c1_i32 : i32 | |
| ^ | |
| test.mlir:217:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %134 = arith.select %133, %132, %c0_i32 : i32 | |
| ^ | |
| test.mlir:224:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %86 = arith.cmpi sge, %33, %c1_i32 : i32 | |
| ^ | |
| test.mlir:233:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %90 = arith.cmpi eq, %85#0, %79 : i32 | |
| ^ | |
| test.mlir:234:11: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %91 = arith.andi %86, %90 : i1 | |
| ^ | |
| test.mlir:236:13: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %92 = arith.muli %85#2, %c128_i32 : i32 | |
| ^ | |
| test.mlir:237:13: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %93 = tt.splat %92 : i32 -> tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> | |
| ^ | |
| test.mlir:238:13: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %94 = arith.addi %93, %77 : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> | |
| ^ | |
| test.mlir:239:13: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %95 = arith.muli %85#3, %c256_i32 : i32 | |
| ^ | |
| test.mlir:240:13: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %96 = tt.splat %95 : i32 -> tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> | |
| ^ | |
| test.mlir:241:13: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %97 = arith.addi %96, %78 : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> | |
| ^ | |
| test.mlir:242:13: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %98 = tt.expand_dims %94 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:243:13: remark: unsigned : [0, 128] signed : [0, 128] | |
| %99 = tt.expand_dims %77 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:243:13: remark: non-neg | |
| %99 = tt.expand_dims %77 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:244:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %100 = arith.muli %arg8, %92 : i32 | |
| ^ | |
| test.mlir:245:14: remark: unsigned : [1, 2147483647] signed : [1, 2147483647] | |
| %101 = tt.splat %arg8 : i32 -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:245:14: remark: non-neg | |
| %101 = tt.splat %arg8 : i32 -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:246:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %102 = arith.muli %101, %99 : tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:248:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %104 = tt.expand_dims %97 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> -> tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:249:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %105 = tt.broadcast %102 : tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> -> tensor<128x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:250:14: remark: unsigned : [0, 256] signed : [0, 256] | |
| %106 = tt.expand_dims %78 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> -> tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:250:14: remark: non-neg | |
| %106 = tt.expand_dims %78 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>}>> -> tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:251:14: remark: unsigned : [0, 256] signed : [0, 256] | |
| %107 = tt.broadcast %106 : tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> -> tensor<128x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:251:14: remark: non-neg | |
| %107 = tt.broadcast %106 : tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> -> tensor<128x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:253:14: remark: unsigned : [0, 4294967295] signed : [-2147483648, 2147483647] | |
| %109 = arith.addi %107, %105 : tensor<128x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:254:14: remark: unsigned : [1, 2147483647] signed : [1, 2147483647] | |
| %110 = tt.splat %arg3 : i32 -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:254:14: remark: non-neg | |
| %110 = tt.splat %arg3 : i32 -> tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:255:14: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %111 = arith.cmpi slt, %98, %110 : tensor<128x1xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:256:14: remark: unsigned : [1, 2147483647] signed : [1, 2147483647] | |
| %112 = tt.splat %arg4 : i32 -> tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:256:14: remark: non-neg | |
| %112 = tt.splat %arg4 : i32 -> tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:257:14: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %113 = arith.cmpi slt, %104, %112 : tensor<1x256xi32, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:258:14: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %114 = tt.broadcast %111 : tensor<128x1xi1, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> -> tensor<128x256xi1, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:259:14: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %115 = tt.broadcast %113 : tensor<1x256xi1, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> -> tensor<128x256xi1, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| test.mlir:260:14: remark: unsigned : [0, 1] signed : [-1, 0] | |
| %116 = arith.andi %114, %115 : tensor<128x256xi1, #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}>> | |
| ^ | |
| #blocked = #ttg.blocked<{sizePerThread = [8, 1], threadsPerWarp = [8, 8], warpsPerCTA = [1, 8], order = [0, 1]}> | |
| #blocked1 = #ttg.blocked<{sizePerThread = [1, 8], threadsPerWarp = [8, 8], warpsPerCTA = [8, 1], order = [1, 0]}> | |
| #mma = #ttg.amd_mfma<{versionMajor = 3, versionMinor = 0, warpsPerCTA = [2, 4], instrShape = [32, 32], isTransposed = true}> | |
| #shared = #ttg.swizzled_shared<{vec = 4, perPhase = 1, maxPhase = 16, order = [1, 0]}> | |
| #shared1 = #ttg.swizzled_shared<{vec = 4, perPhase = 1, maxPhase = 16, order = [0, 1]}> | |
| #smem = #ttg.shared_memory | |
| module attributes {"ttg.num-ctas" = 1 : i32, "ttg.num-warps" = 8 : i32, ttg.target = "hip:gfx942", "ttg.threads-per-warp" = 64 : i32} { | |
| tt.func public @matmul_kernel_persistent(%arg0: !tt.ptr<f16> {tt.divisibility = 16 : i32, tt.pointer_range = 32 : i32}, %arg1: !tt.ptr<f16> {tt.divisibility = 16 : i32, tt.pointer_range = 32 : i32}, %arg2: !tt.ptr<f16> {tt.divisibility = 16 : i32, tt.pointer_range = 32 : i32}, %arg3: i32 {tt.divisibility = 16 : i32}, %arg4: i32 {tt.divisibility = 16 : i32}, %arg5: i32 {tt.divisibility = 16 : i32}, %arg6: i32 {tt.divisibility = 16 : i32}, %arg7: i32 {tt.divisibility = 16 : i32}, %arg8: i32 {tt.divisibility = 16 : i32}) attributes {noinline = false} { | |
| %cst = arith.constant dense<0.000000e+00> : tensor<128x256xf32, #mma> | |
| %true = arith.constant true | |
| %cst_0 = arith.constant dense<0.000000e+00> : tensor<64x256xf16, #blocked> | |
| %cst_1 = arith.constant dense<0> : tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>> | |
| %cst_2 = arith.constant dense<0.000000e+00> : tensor<128x64xf16, #blocked1> | |
| %c1_i32 = arith.constant 1 : i32 | |
| %c304_i32 = arith.constant 304 : i32 | |
| %c64_i32 = arith.constant 64 : i32 | |
| %c63_i32 = arith.constant 63 : i32 | |
| %cst_3 = arith.constant dense<0> : tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>> | |
| %c128_i32 = arith.constant 128 : i32 | |
| %c127_i32 = arith.constant 127 : i32 | |
| %c8_i32 = arith.constant 8 : i32 | |
| %c256_i32 = arith.constant 256 : i32 | |
| %c255_i32 = arith.constant 255 : i32 | |
| %c0_i32 = arith.constant 0 : i32 | |
| %0 = tt.make_range {end = 128 : i32, start = 0 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>> | |
| %1 = tt.get_program_id x : i32 | |
| %2 = arith.addi %arg4, %c255_i32 : i32 | |
| %3 = arith.divsi %2, %c256_i32 : i32 | |
| %4 = arith.muli %3, %c8_i32 : i32 | |
| %5 = arith.divsi %1, %4 : i32 | |
| %6 = arith.muli %5, %c8_i32 : i32 | |
| %7 = arith.addi %arg3, %c127_i32 : i32 | |
| %8 = arith.divsi %7, %c128_i32 : i32 | |
| %9 = arith.subi %8, %6 : i32 | |
| %10 = arith.minsi %9, %c8_i32 : i32 | |
| %11 = arith.remsi %1, %10 : i32 | |
| %12 = arith.addi %6, %11 : i32 | |
| %13 = arith.muli %12, %c128_i32 : i32 | |
| %14 = arith.subi %arg3, %13 : i32 | |
| %15 = tt.splat %14 : i32 -> tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>> | |
| %16 = arith.cmpi slt, %0, %15 : tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>> | |
| %17 = arith.select %16, %0, %cst_3 {tt.contiguity = dense<128> : tensor<1xi32>, tt.divisibility = dense<128> : tensor<1xi32>} : tensor<128xi1, #ttg.slice<{dim = 1, parent = #blocked1}>>, tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>> | |
| %18 = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #blocked1}>> | |
| %19 = tt.expand_dims %17 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>> -> tensor<128x1xi32, #blocked1> | |
| %20 = tt.splat %arg6 : i32 -> tensor<128x1xi32, #blocked1> | |
| %21 = arith.muli %19, %20 : tensor<128x1xi32, #blocked1> | |
| %22 = tt.broadcast %21 : tensor<128x1xi32, #blocked1> -> tensor<128x64xi32, #blocked1> | |
| %23 = tt.expand_dims %18 {axis = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #blocked1}>> -> tensor<1x64xi32, #blocked1> | |
| %24 = tt.broadcast %23 : tensor<1x64xi32, #blocked1> -> tensor<128x64xi32, #blocked1> | |
| %25 = arith.addi %22, %24 : tensor<128x64xi32, #blocked1> | |
| %26 = arith.addi %arg5, %c63_i32 : i32 | |
| %27 = arith.divsi %26, %c64_i32 : i32 | |
| %28 = arith.muli %8, %3 : i32 | |
| %29 = arith.divsi %28, %c304_i32 : i32 | |
| %30 = arith.remsi %28, %c304_i32 : i32 | |
| %31 = arith.cmpi slt, %1, %30 : i32 | |
| %32 = scf.if %31 -> (i32) { | |
| %92 = arith.addi %29, %c1_i32 : i32 | |
| scf.yield %92 : i32 | |
| } else { | |
| scf.yield %29 : i32 | |
| } | |
| %33 = arith.muli %27, %32 : i32 | |
| %34 = arith.cmpi sgt, %33, %c0_i32 : i32 | |
| %35 = tt.splat %34 : i1 -> tensor<128x64xi1, #blocked1> | |
| %36 = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #blocked1}>> | |
| %37 = tt.expand_dims %36 {axis = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #blocked1}>> -> tensor<1x64xi32, #blocked1> | |
| %38 = tt.splat %arg5 : i32 -> tensor<1x64xi32, #blocked1> | |
| %39 = arith.cmpi slt, %37, %38 : tensor<1x64xi32, #blocked1> | |
| %40 = tt.broadcast %39 : tensor<1x64xi1, #blocked1> -> tensor<128x64xi1, #blocked1> | |
| %41 = arith.andi %35, %40 : tensor<128x64xi1, #blocked1> | |
| %42 = tt.splat %arg0 : !tt.ptr<f16> -> tensor<128x64x!tt.ptr<f16>, #blocked1> | |
| %43 = tt.addptr %42, %25 : tensor<128x64x!tt.ptr<f16>, #blocked1>, tensor<128x64xi32, #blocked1> | |
| %44 = tt.load %43, %41, %cst_2 {OpIdx = #amdgpu.OpIdx<0>} : tensor<128x64x!tt.ptr<f16>, #blocked1> | |
| %45 = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #blocked}>> | |
| %46 = tt.make_range {end = 256 : i32, start = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>> | |
| %47 = arith.remsi %1, %4 : i32 | |
| %48 = arith.divsi %47, %10 : i32 | |
| %49 = arith.muli %48, %c256_i32 : i32 | |
| %50 = arith.subi %arg4, %49 : i32 | |
| %51 = tt.splat %50 : i32 -> tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>> | |
| %52 = arith.cmpi slt, %46, %51 : tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>> | |
| %53 = arith.select %52, %46, %cst_1 {tt.contiguity = dense<256> : tensor<1xi32>, tt.divisibility = dense<256> : tensor<1xi32>} : tensor<256xi1, #ttg.slice<{dim = 0, parent = #blocked}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>> | |
| %54 = tt.expand_dims %45 {axis = 1 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #blocked}>> -> tensor<64x1xi32, #blocked> | |
| %55 = tt.broadcast %54 : tensor<64x1xi32, #blocked> -> tensor<64x256xi32, #blocked> | |
| %56 = tt.expand_dims %53 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>> -> tensor<1x256xi32, #blocked> | |
| %57 = tt.splat %arg7 : i32 -> tensor<1x256xi32, #blocked> | |
| %58 = arith.muli %56, %57 : tensor<1x256xi32, #blocked> | |
| %59 = tt.broadcast %58 : tensor<1x256xi32, #blocked> -> tensor<64x256xi32, #blocked> | |
| %60 = arith.addi %55, %59 : tensor<64x256xi32, #blocked> | |
| %61 = tt.splat %34 : i1 -> tensor<64x256xi1, #blocked> | |
| %62 = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #blocked}>> | |
| %63 = tt.expand_dims %62 {axis = 1 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #blocked}>> -> tensor<64x1xi32, #blocked> | |
| %64 = tt.splat %arg5 : i32 -> tensor<64x1xi32, #blocked> | |
| %65 = arith.cmpi slt, %63, %64 : tensor<64x1xi32, #blocked> | |
| %66 = tt.broadcast %65 : tensor<64x1xi1, #blocked> -> tensor<64x256xi1, #blocked> | |
| %67 = arith.andi %61, %66 : tensor<64x256xi1, #blocked> | |
| %68 = tt.splat %arg1 : !tt.ptr<f16> -> tensor<64x256x!tt.ptr<f16>, #blocked> | |
| %69 = tt.addptr %68, %60 : tensor<64x256x!tt.ptr<f16>, #blocked>, tensor<64x256xi32, #blocked> | |
| %70 = tt.load %69, %67, %cst_0 {OpIdx = #amdgpu.OpIdx<1>} : tensor<64x256x!tt.ptr<f16>, #blocked> | |
| %71 = arith.cmpi sgt, %arg3, %c0_i32 : i32 | |
| llvm.intr.assume %71 : i1 | |
| %72 = arith.cmpi sgt, %arg4, %c0_i32 : i32 | |
| llvm.intr.assume %72 : i1 | |
| %73 = arith.cmpi sgt, %arg5, %c0_i32 : i32 | |
| llvm.intr.assume %73 : i1 | |
| %74 = arith.cmpi sgt, %arg6, %c0_i32 : i32 | |
| llvm.intr.assume %74 : i1 | |
| llvm.intr.assume %true : i1 | |
| llvm.intr.assume %true : i1 | |
| %75 = arith.cmpi sgt, %arg7, %c0_i32 : i32 | |
| llvm.intr.assume %75 : i1 | |
| %76 = arith.cmpi sgt, %arg8, %c0_i32 : i32 | |
| llvm.intr.assume %76 : i1 | |
| llvm.intr.assume %true : i1 | |
| %77 = tt.make_range {end = 128 : i32, start = 0 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #mma}>> | |
| %78 = tt.make_range {end = 256 : i32, start = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #mma}>> | |
| %79 = arith.subi %27, %c1_i32 : i32 | |
| %80 = ttg.local_alloc : () -> !ttg.memdesc<1x128x64xf16, #shared, #smem, mutable> | |
| %81 = ttg.local_alloc : () -> !ttg.memdesc<1x64x256xf16, #shared1, #smem, mutable> | |
| %82 = ttg.memdesc_subview %80[%c0_i32, %c0_i32, %c0_i32] : !ttg.memdesc<1x128x64xf16, #shared, #smem, mutable> -> !ttg.memdesc<128x64xf16, #shared, #smem, mutable> | |
| ttg.local_store %44, %82 {OpIdx = #amdgpu.OpIdx<0>} : tensor<128x64xf16, #blocked1> -> !ttg.memdesc<128x64xf16, #shared, #smem, mutable> | |
| %83 = ttg.memdesc_subview %81[%c0_i32, %c0_i32, %c0_i32] : !ttg.memdesc<1x64x256xf16, #shared1, #smem, mutable> -> !ttg.memdesc<64x256xf16, #shared1, #smem, mutable> | |
| ttg.local_store %70, %83 {OpIdx = #amdgpu.OpIdx<1>} : tensor<64x256xf16, #blocked> -> !ttg.memdesc<64x256xf16, #shared1, #smem, mutable> | |
| %84 = arith.subi %33, %c1_i32 : i32 | |
| %85:10 = scf.for %arg9 = %c0_i32 to %84 step %c1_i32 iter_args(%arg10 = %c0_i32, %arg11 = %1, %arg12 = %12, %arg13 = %48, %arg14 = %cst, %arg15 = %17, %arg16 = %53, %arg17 = %c0_i32, %arg18 = %82, %arg19 = %83) -> (i32, i32, i32, i32, tensor<128x256xf32, #mma>, tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>>, i32, !ttg.memdesc<128x64xf16, #shared, #smem, mutable>, !ttg.memdesc<64x256xf16, #shared1, #smem, mutable>) : i32 { | |
| %92 = arith.cmpi eq, %arg10, %79 : i32 | |
| %93 = arith.addi %arg10, %c1_i32 : i32 | |
| %94 = arith.select %92, %c0_i32, %93 : i32 | |
| %95 = arith.cmpi eq, %94, %c0_i32 : i32 | |
| %96:5 = scf.if %95 -> (i32, i32, i32, tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>>) { | |
| %137 = arith.addi %arg11, %c304_i32 : i32 | |
| %138 = arith.divsi %137, %4 : i32 | |
| %139 = arith.muli %138, %c8_i32 : i32 | |
| %140 = arith.subi %8, %139 : i32 | |
| %141 = arith.minsi %140, %c8_i32 : i32 | |
| %142 = arith.remsi %137, %141 : i32 | |
| %143 = arith.addi %139, %142 : i32 | |
| %144 = arith.remsi %137, %4 : i32 | |
| %145 = arith.divsi %144, %141 : i32 | |
| %146 = arith.muli %143, %c128_i32 : i32 | |
| %147 = arith.muli %145, %c256_i32 : i32 | |
| %148 = arith.subi %arg3, %146 : i32 | |
| %149 = tt.splat %148 : i32 -> tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>> | |
| %150 = arith.cmpi slt, %0, %149 : tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>> | |
| %151 = arith.select %150, %0, %cst_3 {tt.contiguity = dense<128> : tensor<1xi32>, tt.divisibility = dense<128> : tensor<1xi32>} : tensor<128xi1, #ttg.slice<{dim = 1, parent = #blocked1}>>, tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>> | |
| %152 = arith.subi %arg4, %147 : i32 | |
| %153 = tt.splat %152 : i32 -> tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>> | |
| %154 = arith.cmpi slt, %46, %153 : tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>> | |
| %155 = arith.select %154, %46, %cst_1 {tt.contiguity = dense<256> : tensor<1xi32>, tt.divisibility = dense<256> : tensor<1xi32>} : tensor<256xi1, #ttg.slice<{dim = 0, parent = #blocked}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>> | |
| scf.yield %137, %143, %145, %151, %155 : i32, i32, i32, tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>> | |
| } else { | |
| scf.yield %arg11, %arg12, %arg13, %arg15, %arg16 : i32, i32, i32, tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>> | |
| } | |
| %97 = arith.muli %94, %c64_i32 : i32 | |
| %98 = tt.expand_dims %96#3 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>> -> tensor<128x1xi32, #blocked1> | |
| %99 = tt.splat %arg6 : i32 -> tensor<128x1xi32, #blocked1> | |
| %100 = arith.muli %98, %99 : tensor<128x1xi32, #blocked1> | |
| %101 = tt.broadcast %100 : tensor<128x1xi32, #blocked1> -> tensor<128x64xi32, #blocked1> | |
| %102 = tt.expand_dims %18 {axis = 0 : i32} : tensor<64xi32, #ttg.slice<{dim = 0, parent = #blocked1}>> -> tensor<1x64xi32, #blocked1> | |
| %103 = tt.broadcast %102 : tensor<1x64xi32, #blocked1> -> tensor<128x64xi32, #blocked1> | |
| %104 = arith.addi %101, %103 : tensor<128x64xi32, #blocked1> | |
| %105 = tt.addptr %arg0, %97 : !tt.ptr<f16>, i32 | |
| %106 = arith.subi %arg5, %97 : i32 | |
| %107 = tt.splat %106 : i32 -> tensor<1x64xi32, #blocked1> | |
| %108 = arith.cmpi slt, %37, %107 : tensor<1x64xi32, #blocked1> | |
| %109 = tt.broadcast %108 : tensor<1x64xi1, #blocked1> -> tensor<128x64xi1, #blocked1> | |
| %110 = tt.splat %105 : !tt.ptr<f16> -> tensor<128x64x!tt.ptr<f16>, #blocked1> | |
| %111 = tt.addptr %110, %104 : tensor<128x64x!tt.ptr<f16>, #blocked1>, tensor<128x64xi32, #blocked1> | |
| %112 = tt.load %111, %109, %cst_2 {OpIdx = #amdgpu.OpIdx<0>} : tensor<128x64x!tt.ptr<f16>, #blocked1> | |
| %113 = tt.expand_dims %45 {axis = 1 : i32} : tensor<64xi32, #ttg.slice<{dim = 1, parent = #blocked}>> -> tensor<64x1xi32, #blocked> | |
| %114 = tt.broadcast %113 : tensor<64x1xi32, #blocked> -> tensor<64x256xi32, #blocked> | |
| %115 = tt.expand_dims %96#4 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>> -> tensor<1x256xi32, #blocked> | |
| %116 = tt.splat %arg7 : i32 -> tensor<1x256xi32, #blocked> | |
| %117 = arith.muli %115, %116 : tensor<1x256xi32, #blocked> | |
| %118 = tt.broadcast %117 : tensor<1x256xi32, #blocked> -> tensor<64x256xi32, #blocked> | |
| %119 = arith.addi %114, %118 : tensor<64x256xi32, #blocked> | |
| %120 = tt.addptr %arg1, %97 : !tt.ptr<f16>, i32 | |
| %121 = tt.splat %106 : i32 -> tensor<64x1xi32, #blocked> | |
| %122 = arith.cmpi slt, %63, %121 : tensor<64x1xi32, #blocked> | |
| %123 = tt.broadcast %122 : tensor<64x1xi1, #blocked> -> tensor<64x256xi1, #blocked> | |
| %124 = ttg.local_load %arg18 : !ttg.memdesc<128x64xf16, #shared, #smem, mutable> -> tensor<128x64xf16, #ttg.dot_op<{opIdx = 0, parent = #mma, kWidth = 4}>> | |
| %125 = ttg.local_load %arg19 : !ttg.memdesc<64x256xf16, #shared1, #smem, mutable> -> tensor<64x256xf16, #ttg.dot_op<{opIdx = 1, parent = #mma, kWidth = 4}>> | |
| %126 = tt.splat %120 : !tt.ptr<f16> -> tensor<64x256x!tt.ptr<f16>, #blocked> | |
| %127 = tt.addptr %126, %119 : tensor<64x256x!tt.ptr<f16>, #blocked>, tensor<64x256xi32, #blocked> | |
| %128 = tt.load %127, %123, %cst_0 {OpIdx = #amdgpu.OpIdx<1>} : tensor<64x256x!tt.ptr<f16>, #blocked> | |
| %129 = tt.dot %124, %125, %arg14, inputPrecision = tf32 : tensor<128x64xf16, #ttg.dot_op<{opIdx = 0, parent = #mma, kWidth = 4}>> * tensor<64x256xf16, #ttg.dot_op<{opIdx = 1, parent = #mma, kWidth = 4}>> -> tensor<128x256xf32, #mma> | |
| %130 = arith.cmpi eq, %arg10, %79 : i32 | |
| %131 = arith.select %130, %cst, %129 : tensor<128x256xf32, #mma> | |
| scf.if %130 { | |
| %137 = arith.muli %arg12, %c128_i32 : i32 | |
| %138 = tt.splat %137 : i32 -> tensor<128xi32, #ttg.slice<{dim = 1, parent = #mma}>> | |
| %139 = arith.addi %138, %77 : tensor<128xi32, #ttg.slice<{dim = 1, parent = #mma}>> | |
| %140 = arith.muli %arg13, %c256_i32 : i32 | |
| %141 = tt.splat %140 : i32 -> tensor<256xi32, #ttg.slice<{dim = 0, parent = #mma}>> | |
| %142 = arith.addi %141, %78 : tensor<256xi32, #ttg.slice<{dim = 0, parent = #mma}>> | |
| %143 = tt.expand_dims %139 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #mma}>> -> tensor<128x1xi32, #mma> | |
| %144 = tt.expand_dims %77 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #mma}>> -> tensor<128x1xi32, #mma> | |
| %145 = arith.muli %arg8, %137 : i32 | |
| %146 = tt.splat %arg8 : i32 -> tensor<128x1xi32, #mma> | |
| %147 = arith.muli %146, %144 : tensor<128x1xi32, #mma> | |
| %148 = tt.addptr %arg2, %145 : !tt.ptr<f16>, i32 | |
| %149 = tt.expand_dims %142 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #mma}>> -> tensor<1x256xi32, #mma> | |
| %150 = tt.broadcast %147 : tensor<128x1xi32, #mma> -> tensor<128x256xi32, #mma> | |
| %151 = tt.expand_dims %78 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #mma}>> -> tensor<1x256xi32, #mma> | |
| %152 = tt.broadcast %151 : tensor<1x256xi32, #mma> -> tensor<128x256xi32, #mma> | |
| %153 = tt.addptr %148, %140 : !tt.ptr<f16>, i32 | |
| %154 = arith.addi %152, %150 : tensor<128x256xi32, #mma> | |
| %155 = tt.splat %arg3 : i32 -> tensor<128x1xi32, #mma> | |
| %156 = arith.cmpi slt, %143, %155 : tensor<128x1xi32, #mma> | |
| %157 = tt.splat %arg4 : i32 -> tensor<1x256xi32, #mma> | |
| %158 = arith.cmpi slt, %149, %157 : tensor<1x256xi32, #mma> | |
| %159 = tt.broadcast %156 : tensor<128x1xi1, #mma> -> tensor<128x256xi1, #mma> | |
| %160 = tt.broadcast %158 : tensor<1x256xi1, #mma> -> tensor<128x256xi1, #mma> | |
| %161 = arith.andi %159, %160 : tensor<128x256xi1, #mma> | |
| %162 = arith.truncf %129 : tensor<128x256xf32, #mma> to tensor<128x256xf16, #mma> | |
| %163 = tt.splat %153 : !tt.ptr<f16> -> tensor<128x256x!tt.ptr<f16>, #mma> | |
| %164 = tt.addptr %163, %154 : tensor<128x256x!tt.ptr<f16>, #mma>, tensor<128x256xi32, #mma> | |
| tt.store %164, %162, %161 : tensor<128x256x!tt.ptr<f16>, #mma> | |
| } | |
| %132 = arith.addi %arg17, %c1_i32 : i32 | |
| %133 = arith.cmpi slt, %132, %c1_i32 : i32 | |
| %134 = arith.select %133, %132, %c0_i32 : i32 | |
| %135 = ttg.memdesc_subview %80[%134, %c0_i32, %c0_i32] : !ttg.memdesc<1x128x64xf16, #shared, #smem, mutable> -> !ttg.memdesc<128x64xf16, #shared, #smem, mutable> | |
| ttg.local_store %112, %135 {OpIdx = #amdgpu.OpIdx<0>} : tensor<128x64xf16, #blocked1> -> !ttg.memdesc<128x64xf16, #shared, #smem, mutable> | |
| %136 = ttg.memdesc_subview %81[%134, %c0_i32, %c0_i32] : !ttg.memdesc<1x64x256xf16, #shared1, #smem, mutable> -> !ttg.memdesc<64x256xf16, #shared1, #smem, mutable> | |
| ttg.local_store %128, %136 {OpIdx = #amdgpu.OpIdx<1>} : tensor<64x256xf16, #blocked> -> !ttg.memdesc<64x256xf16, #shared1, #smem, mutable> | |
| scf.yield %94, %96#0, %96#1, %96#2, %131, %96#3, %96#4, %134, %135, %136 : i32, i32, i32, i32, tensor<128x256xf32, #mma>, tensor<128xi32, #ttg.slice<{dim = 1, parent = #blocked1}>>, tensor<256xi32, #ttg.slice<{dim = 0, parent = #blocked}>>, i32, !ttg.memdesc<128x64xf16, #shared, #smem, mutable>, !ttg.memdesc<64x256xf16, #shared1, #smem, mutable> | |
| } | |
| %86 = arith.cmpi sge, %33, %c1_i32 : i32 | |
| %87 = ttg.local_load %85#8 : !ttg.memdesc<128x64xf16, #shared, #smem, mutable> -> tensor<128x64xf16, #ttg.dot_op<{opIdx = 0, parent = #mma, kWidth = 4}>> | |
| %88 = ttg.local_load %85#9 : !ttg.memdesc<64x256xf16, #shared1, #smem, mutable> -> tensor<64x256xf16, #ttg.dot_op<{opIdx = 1, parent = #mma, kWidth = 4}>> | |
| %89 = scf.if %86 -> (tensor<128x256xf32, #mma>) { | |
| %92 = tt.dot %87, %88, %85#4, inputPrecision = tf32 : tensor<128x64xf16, #ttg.dot_op<{opIdx = 0, parent = #mma, kWidth = 4}>> * tensor<64x256xf16, #ttg.dot_op<{opIdx = 1, parent = #mma, kWidth = 4}>> -> tensor<128x256xf32, #mma> | |
| scf.yield %92 : tensor<128x256xf32, #mma> | |
| } else { | |
| scf.yield %85#4 : tensor<128x256xf32, #mma> | |
| } | |
| %90 = arith.cmpi eq, %85#0, %79 : i32 | |
| %91 = arith.andi %86, %90 : i1 | |
| scf.if %91 { | |
| %92 = arith.muli %85#2, %c128_i32 : i32 | |
| %93 = tt.splat %92 : i32 -> tensor<128xi32, #ttg.slice<{dim = 1, parent = #mma}>> | |
| %94 = arith.addi %93, %77 : tensor<128xi32, #ttg.slice<{dim = 1, parent = #mma}>> | |
| %95 = arith.muli %85#3, %c256_i32 : i32 | |
| %96 = tt.splat %95 : i32 -> tensor<256xi32, #ttg.slice<{dim = 0, parent = #mma}>> | |
| %97 = arith.addi %96, %78 : tensor<256xi32, #ttg.slice<{dim = 0, parent = #mma}>> | |
| %98 = tt.expand_dims %94 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #mma}>> -> tensor<128x1xi32, #mma> | |
| %99 = tt.expand_dims %77 {axis = 1 : i32} : tensor<128xi32, #ttg.slice<{dim = 1, parent = #mma}>> -> tensor<128x1xi32, #mma> | |
| %100 = arith.muli %arg8, %92 : i32 | |
| %101 = tt.splat %arg8 : i32 -> tensor<128x1xi32, #mma> | |
| %102 = arith.muli %101, %99 : tensor<128x1xi32, #mma> | |
| %103 = tt.addptr %arg2, %100 : !tt.ptr<f16>, i32 | |
| %104 = tt.expand_dims %97 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #mma}>> -> tensor<1x256xi32, #mma> | |
| %105 = tt.broadcast %102 : tensor<128x1xi32, #mma> -> tensor<128x256xi32, #mma> | |
| %106 = tt.expand_dims %78 {axis = 0 : i32} : tensor<256xi32, #ttg.slice<{dim = 0, parent = #mma}>> -> tensor<1x256xi32, #mma> | |
| %107 = tt.broadcast %106 : tensor<1x256xi32, #mma> -> tensor<128x256xi32, #mma> | |
| %108 = tt.addptr %103, %95 : !tt.ptr<f16>, i32 | |
| %109 = arith.addi %107, %105 : tensor<128x256xi32, #mma> | |
| %110 = tt.splat %arg3 : i32 -> tensor<128x1xi32, #mma> | |
| %111 = arith.cmpi slt, %98, %110 : tensor<128x1xi32, #mma> | |
| %112 = tt.splat %arg4 : i32 -> tensor<1x256xi32, #mma> | |
| %113 = arith.cmpi slt, %104, %112 : tensor<1x256xi32, #mma> | |
| %114 = tt.broadcast %111 : tensor<128x1xi1, #mma> -> tensor<128x256xi1, #mma> | |
| %115 = tt.broadcast %113 : tensor<1x256xi1, #mma> -> tensor<128x256xi1, #mma> | |
| %116 = arith.andi %114, %115 : tensor<128x256xi1, #mma> | |
| %117 = arith.truncf %89 : tensor<128x256xf32, #mma> to tensor<128x256xf16, #mma> | |
| %118 = tt.splat %108 : !tt.ptr<f16> -> tensor<128x256x!tt.ptr<f16>, #mma> | |
| %119 = tt.addptr %118, %109 : tensor<128x256x!tt.ptr<f16>, #mma>, tensor<128x256xi32, #mma> | |
| tt.store %119, %117, %116 : tensor<128x256x!tt.ptr<f16>, #mma> | |
| } | |
| ttg.local_dealloc %80 : !ttg.memdesc<1x128x64xf16, #shared, #smem, mutable> | |
| ttg.local_dealloc %81 : !ttg.memdesc<1x64x256xf16, #shared1, #smem, mutable> | |
| tt.return | |
| } | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment