Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/__grp__triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.cubin +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.llir +667 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.ptx +1534 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.source +299 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.ttgir +232 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.ttir +231 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/__grp__triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.llir +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.ptx +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.source +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.ttgir +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.ttir +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/__grp__triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.cubin +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.llir +266 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.ptx +640 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.source +379 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.ttgir +270 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.ttir +246 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/__grp__triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.cubin +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.llir +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ptx +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.source +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ttgir +841 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ttir +799 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/__grp__triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.cubin +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.llir +934 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.ptx +921 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.source +449 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.ttgir +226 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.ttir +233 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/__grp__triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.cubin +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.llir +318 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.ptx +736 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.source +418 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.ttgir +280 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.ttir +283 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/__grp__triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.json +1 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.cubin +0 -0
- SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.json +1 -0
SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/__grp__triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"child_paths": {"triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.source": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.source", "triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.ttir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.ttir", "triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.ttgir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.ttgir", "triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.llir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.llir", "triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.ptx": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.ptx", "triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.cubin": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.cubin", "triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.json": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.json"}}
|
SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.cubin
ADDED
|
Binary file (76 kB). View file
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"hash": "d4e9ec88be03aebb42041f53f2cbb9bb30afcd0e87a7a62c3ff7f5fe862eba44", "target": {"backend": "cuda", "arch": 90, "warp_size": 32}, "num_warps": 4, "num_ctas": 1, "num_stages": 1, "warp_size": 32, "maxnreg": null, "cluster_dims": [1, 1, 1], "ptx_version": null, "ptx_options": null, "ir_override": null, "enable_fp_fusion": true, "launch_cooperative_grid": false, "launch_pdl": false, "supported_fp8_dtypes": ["fp8e4b15", "fp8e4nv", "fp8e5"], "deprecated_fp8_dot_operand_dtypes": ["fp8e4b15"], "default_dot_input_precision": "tf32", "allowed_dot_input_precisions": ["tf32", "tf32x3", "ieee"], "max_num_imprecise_acc_default": 1073741824, "extern_libs": [["libdevice", "/workspace/specforge/lib/python3.11/site-packages/triton/backends/nvidia/lib/libdevice.10.bc"]], "debug": true, "backend_name": "cuda", "sanitize_overflow": false, "arch": "sm90", "instrumentation_mode": "", "triton_version": "3.5.1", "tensordesc_meta": [], "shared": 0, "tmem_size": 0, "global_scratch_size": 0, "global_scratch_align": 1, "profile_scratch_size": 0, "profile_scratch_align": 1, "name": "triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0"}
|
SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.llir
ADDED
|
@@ -0,0 +1,667 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
; ModuleID = 'LLVMDialectModule'
|
| 2 |
+
source_filename = "LLVMDialectModule"
|
| 3 |
+
target datalayout = "e-p3:32:32-p4:32:32-p5:32:32-p6:32:32-p7:32:32-i64:64-i128:128-v16:16-v32:32-n16:32:64"
|
| 4 |
+
|
| 5 |
+
@assertFunc_1 = internal constant [8 x i8] c"unknown\00"
|
| 6 |
+
@assertFile_1 = internal constant [114 x i8] c"/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py\00"
|
| 7 |
+
@assertMessage_1 = internal constant [38 x i8] c"index out of bounds: 0 <= tmp25 < ks4\00"
|
| 8 |
+
@assertFunc_0 = internal constant [8 x i8] c"unknown\00"
|
| 9 |
+
@assertFile_0 = internal constant [114 x i8] c"/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py\00"
|
| 10 |
+
@assertMessage_0 = internal constant [37 x i8] c"index out of bounds: 0 <= tmp5 < ks2\00"
|
| 11 |
+
|
| 12 |
+
; Function Attrs: noreturn
|
| 13 |
+
declare !dbg !5 void @__assertfail(ptr, ptr, i32, ptr, i64) local_unnamed_addr #0
|
| 14 |
+
|
| 15 |
+
define ptx_kernel void @triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0(ptr addrspace(1) %0, ptr addrspace(1) %1, ptr addrspace(1) %2, ptr addrspace(1) %3, ptr addrspace(1) %4, i64 %5, i64 %6, i64 %7, i64 %8, i64 %9, i32 %10, ptr addrspace(1) readnone captures(none) %11, ptr addrspace(1) readnone captures(none) %12) local_unnamed_addr #1 !dbg !9 {
|
| 16 |
+
%14 = tail call i32 @llvm.nvvm.read.ptx.sreg.ctaid.x(), !dbg !10
|
| 17 |
+
%15 = shl i32 %14, 10, !dbg !11
|
| 18 |
+
%16 = tail call i32 @llvm.nvvm.read.ptx.sreg.tid.x(), !dbg !12
|
| 19 |
+
%17 = shl nuw nsw i32 %16, 3, !dbg !12
|
| 20 |
+
%18 = and i32 %17, 1016, !dbg !12
|
| 21 |
+
%19 = or disjoint i32 %18, %15, !dbg !13
|
| 22 |
+
%20 = or disjoint i32 %19, 1, !dbg !13
|
| 23 |
+
%21 = or disjoint i32 %19, 2, !dbg !13
|
| 24 |
+
%22 = or disjoint i32 %19, 3, !dbg !13
|
| 25 |
+
%23 = or disjoint i32 %19, 4, !dbg !13
|
| 26 |
+
%24 = or disjoint i32 %19, 5, !dbg !13
|
| 27 |
+
%25 = or disjoint i32 %19, 6, !dbg !13
|
| 28 |
+
%26 = or disjoint i32 %19, 7, !dbg !13
|
| 29 |
+
%27 = insertelement <8 x i32> poison, i32 %26, i64 0, !dbg !14
|
| 30 |
+
%28 = insertelement <8 x i32> %27, i32 %25, i64 1, !dbg !14
|
| 31 |
+
%29 = insertelement <8 x i32> %28, i32 %24, i64 2, !dbg !14
|
| 32 |
+
%30 = insertelement <8 x i32> %29, i32 %23, i64 3, !dbg !14
|
| 33 |
+
%31 = insertelement <8 x i32> %30, i32 %22, i64 4, !dbg !14
|
| 34 |
+
%32 = insertelement <8 x i32> %31, i32 %21, i64 5, !dbg !14
|
| 35 |
+
%33 = insertelement <8 x i32> %32, i32 %20, i64 6, !dbg !14
|
| 36 |
+
%34 = insertelement <8 x i32> %33, i32 %19, i64 7, !dbg !14
|
| 37 |
+
%35 = sext <8 x i32> %34 to <8 x i64>, !dbg !14
|
| 38 |
+
%36 = extractelement <8 x i64> %35, i64 7, !dbg !15
|
| 39 |
+
%37 = sdiv i64 %36, %5, !dbg !14
|
| 40 |
+
%38 = extractelement <8 x i64> %35, i64 6, !dbg !15
|
| 41 |
+
%39 = sdiv i64 %38, %5, !dbg !14
|
| 42 |
+
%40 = extractelement <8 x i64> %35, i64 5, !dbg !15
|
| 43 |
+
%41 = sdiv i64 %40, %5, !dbg !14
|
| 44 |
+
%42 = extractelement <8 x i64> %35, i64 4, !dbg !15
|
| 45 |
+
%43 = sdiv i64 %42, %5, !dbg !14
|
| 46 |
+
%44 = extractelement <8 x i64> %35, i64 3, !dbg !15
|
| 47 |
+
%45 = sdiv i64 %44, %5, !dbg !14
|
| 48 |
+
%46 = extractelement <8 x i64> %35, i64 2, !dbg !15
|
| 49 |
+
%47 = sdiv i64 %46, %5, !dbg !14
|
| 50 |
+
%48 = extractelement <8 x i64> %35, i64 1, !dbg !15
|
| 51 |
+
%49 = sdiv i64 %48, %5, !dbg !14
|
| 52 |
+
%50 = extractelement <8 x i64> %35, i64 0, !dbg !15
|
| 53 |
+
%51 = sdiv i64 %50, %5, !dbg !14
|
| 54 |
+
%52 = srem i64 %37, %6, !dbg !16
|
| 55 |
+
%53 = srem i64 %39, %6, !dbg !16
|
| 56 |
+
%54 = srem i64 %41, %6, !dbg !16
|
| 57 |
+
%55 = srem i64 %43, %6, !dbg !16
|
| 58 |
+
%56 = srem i64 %45, %6, !dbg !16
|
| 59 |
+
%57 = srem i64 %47, %6, !dbg !16
|
| 60 |
+
%58 = srem i64 %49, %6, !dbg !16
|
| 61 |
+
%59 = srem i64 %51, %6, !dbg !16
|
| 62 |
+
%60 = getelementptr bfloat, ptr addrspace(1) %0, i64 %36, !dbg !15
|
| 63 |
+
%61 = getelementptr bfloat, ptr addrspace(1) %0, i64 %38, !dbg !15
|
| 64 |
+
%62 = getelementptr bfloat, ptr addrspace(1) %0, i64 %40, !dbg !15
|
| 65 |
+
%63 = getelementptr bfloat, ptr addrspace(1) %0, i64 %42, !dbg !15
|
| 66 |
+
%64 = getelementptr bfloat, ptr addrspace(1) %0, i64 %44, !dbg !15
|
| 67 |
+
%65 = getelementptr bfloat, ptr addrspace(1) %0, i64 %46, !dbg !15
|
| 68 |
+
%66 = getelementptr bfloat, ptr addrspace(1) %0, i64 %48, !dbg !15
|
| 69 |
+
%67 = getelementptr bfloat, ptr addrspace(1) %0, i64 %50, !dbg !15
|
| 70 |
+
%68 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !17
|
| 71 |
+
%69 = getelementptr i64, ptr addrspace(1) %1, i64 %52, !dbg !18
|
| 72 |
+
%70 = getelementptr i64, ptr addrspace(1) %1, i64 %53, !dbg !18
|
| 73 |
+
%71 = getelementptr i64, ptr addrspace(1) %1, i64 %54, !dbg !18
|
| 74 |
+
%72 = getelementptr i64, ptr addrspace(1) %1, i64 %55, !dbg !18
|
| 75 |
+
%73 = getelementptr i64, ptr addrspace(1) %1, i64 %56, !dbg !18
|
| 76 |
+
%74 = getelementptr i64, ptr addrspace(1) %1, i64 %57, !dbg !18
|
| 77 |
+
%75 = getelementptr i64, ptr addrspace(1) %1, i64 %58, !dbg !18
|
| 78 |
+
%76 = getelementptr i64, ptr addrspace(1) %1, i64 %59, !dbg !18
|
| 79 |
+
%77 = insertelement <8 x i32> poison, i32 %19, i64 0, !dbg !19
|
| 80 |
+
%78 = insertelement <8 x i32> %77, i32 %20, i64 1, !dbg !19
|
| 81 |
+
%79 = insertelement <8 x i32> %78, i32 %21, i64 2, !dbg !19
|
| 82 |
+
%80 = insertelement <8 x i32> %79, i32 %22, i64 3, !dbg !19
|
| 83 |
+
%81 = insertelement <8 x i32> %80, i32 %23, i64 4, !dbg !19
|
| 84 |
+
%82 = insertelement <8 x i32> %81, i32 %24, i64 5, !dbg !19
|
| 85 |
+
%83 = insertelement <8 x i32> %82, i32 %25, i64 6, !dbg !19
|
| 86 |
+
%84 = insertelement <8 x i32> %83, i32 %26, i64 7, !dbg !19
|
| 87 |
+
%85 = insertelement <8 x i32> poison, i32 %10, i64 0, !dbg !19
|
| 88 |
+
%86 = shufflevector <8 x i32> %85, <8 x i32> poison, <8 x i32> zeroinitializer, !dbg !19
|
| 89 |
+
%87 = icmp slt <8 x i32> %84, %86, !dbg !19
|
| 90 |
+
%88 = extractelement <8 x i1> %87, i64 0, !dbg !17
|
| 91 |
+
%89 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %60, i64 %68, i1 %88) #4, !dbg !17
|
| 92 |
+
%90 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !17
|
| 93 |
+
%91 = extractelement <8 x i1> %87, i64 1, !dbg !17
|
| 94 |
+
%92 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %61, i64 %90, i1 %91) #4, !dbg !17
|
| 95 |
+
%93 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !17
|
| 96 |
+
%94 = extractelement <8 x i1> %87, i64 2, !dbg !17
|
| 97 |
+
%95 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %62, i64 %93, i1 %94) #4, !dbg !17
|
| 98 |
+
%96 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !17
|
| 99 |
+
%97 = extractelement <8 x i1> %87, i64 3, !dbg !17
|
| 100 |
+
%98 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %63, i64 %96, i1 %97) #4, !dbg !17
|
| 101 |
+
%99 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !17
|
| 102 |
+
%100 = extractelement <8 x i1> %87, i64 4, !dbg !17
|
| 103 |
+
%101 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %64, i64 %99, i1 %100) #4, !dbg !17
|
| 104 |
+
%102 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !17
|
| 105 |
+
%103 = extractelement <8 x i1> %87, i64 5, !dbg !17
|
| 106 |
+
%104 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %65, i64 %102, i1 %103) #4, !dbg !17
|
| 107 |
+
%105 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !17
|
| 108 |
+
%106 = extractelement <8 x i1> %87, i64 6, !dbg !17
|
| 109 |
+
%107 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %66, i64 %105, i1 %106) #4, !dbg !17
|
| 110 |
+
%108 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !17
|
| 111 |
+
%109 = extractelement <8 x i1> %87, i64 7, !dbg !17
|
| 112 |
+
%110 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %67, i64 %108, i1 %109) #4, !dbg !17
|
| 113 |
+
%111 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !20
|
| 114 |
+
%112 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b64 { $0 }, [ $1 + 0 ], $2;", "=l,l,l,b"(ptr addrspace(1) %69, i64 %111, i1 %88) #4, !dbg !20
|
| 115 |
+
%113 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !20
|
| 116 |
+
%114 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b64 { $0 }, [ $1 + 0 ], $2;", "=l,l,l,b"(ptr addrspace(1) %70, i64 %113, i1 %91) #4, !dbg !20
|
| 117 |
+
%115 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !20
|
| 118 |
+
%116 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b64 { $0 }, [ $1 + 0 ], $2;", "=l,l,l,b"(ptr addrspace(1) %71, i64 %115, i1 %94) #4, !dbg !20
|
| 119 |
+
%117 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !20
|
| 120 |
+
%118 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b64 { $0 }, [ $1 + 0 ], $2;", "=l,l,l,b"(ptr addrspace(1) %72, i64 %117, i1 %97) #4, !dbg !20
|
| 121 |
+
%119 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !20
|
| 122 |
+
%120 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b64 { $0 }, [ $1 + 0 ], $2;", "=l,l,l,b"(ptr addrspace(1) %73, i64 %119, i1 %100) #4, !dbg !20
|
| 123 |
+
%121 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !20
|
| 124 |
+
%122 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b64 { $0 }, [ $1 + 0 ], $2;", "=l,l,l,b"(ptr addrspace(1) %74, i64 %121, i1 %103) #4, !dbg !20
|
| 125 |
+
%123 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !20
|
| 126 |
+
%124 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b64 { $0 }, [ $1 + 0 ], $2;", "=l,l,l,b"(ptr addrspace(1) %75, i64 %123, i1 %106) #4, !dbg !20
|
| 127 |
+
%125 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !20
|
| 128 |
+
%126 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b64 { $0 }, [ $1 + 0 ], $2;", "=l,l,l,b"(ptr addrspace(1) %76, i64 %125, i1 %109) #4, !dbg !20
|
| 129 |
+
%127 = insertelement <8 x i64> poison, i64 %112, i64 0, !dbg !21
|
| 130 |
+
%128 = insertelement <8 x i64> %127, i64 %114, i64 1, !dbg !21
|
| 131 |
+
%129 = insertelement <8 x i64> %128, i64 %116, i64 2, !dbg !21
|
| 132 |
+
%130 = insertelement <8 x i64> %129, i64 %118, i64 3, !dbg !21
|
| 133 |
+
%131 = insertelement <8 x i64> %130, i64 %120, i64 4, !dbg !21
|
| 134 |
+
%132 = insertelement <8 x i64> %131, i64 %122, i64 5, !dbg !21
|
| 135 |
+
%133 = insertelement <8 x i64> %132, i64 %124, i64 6, !dbg !21
|
| 136 |
+
%134 = insertelement <8 x i64> %133, i64 %126, i64 7, !dbg !21
|
| 137 |
+
%135 = icmp slt <8 x i64> %134, zeroinitializer, !dbg !21
|
| 138 |
+
%136 = insertelement <8 x i64> poison, i64 %7, i64 0, !dbg !22
|
| 139 |
+
%137 = shufflevector <8 x i64> %136, <8 x i64> poison, <8 x i32> zeroinitializer, !dbg !22
|
| 140 |
+
%138 = select <8 x i1> %135, <8 x i64> %137, <8 x i64> zeroinitializer, !dbg !22
|
| 141 |
+
%139 = add <8 x i64> %138, %134, !dbg !22
|
| 142 |
+
%140 = icmp slt <8 x i64> %139, zeroinitializer, !dbg !23
|
| 143 |
+
%141 = icmp sge <8 x i64> %139, %137, !dbg !24
|
| 144 |
+
%142 = or <8 x i1> %140, %141, !dbg !25
|
| 145 |
+
%143 = and <8 x i1> %87, %142, !dbg !26
|
| 146 |
+
%144 = bitcast <8 x i1> %143 to i8, !dbg !27
|
| 147 |
+
%.not = icmp eq i8 %144, 0, !dbg !27
|
| 148 |
+
br i1 %.not, label %146, label %145, !dbg !27
|
| 149 |
+
|
| 150 |
+
145: ; preds = %13
|
| 151 |
+
tail call void @__assertfail(ptr nonnull @assertMessage_0, ptr nonnull @assertFile_0, i32 32, ptr nonnull @assertFunc_0, i64 1), !dbg !27
|
| 152 |
+
unreachable, !dbg !27
|
| 153 |
+
|
| 154 |
+
146: ; preds = %13
|
| 155 |
+
%147 = insertelement <8 x i64> poison, i64 %8, i64 0, !dbg !28
|
| 156 |
+
%148 = shufflevector <8 x i64> %147, <8 x i64> poison, <8 x i32> zeroinitializer, !dbg !28
|
| 157 |
+
%149 = srem <8 x i64> %35, %148, !dbg !28
|
| 158 |
+
tail call void @llvm.nvvm.barrier.cta.sync.aligned.all(i32 0), !dbg !27
|
| 159 |
+
%150 = extractelement <8 x i64> %139, i64 0, !dbg !29
|
| 160 |
+
%151 = mul i64 %150, %8, !dbg !29
|
| 161 |
+
%152 = extractelement <8 x i64> %139, i64 1, !dbg !29
|
| 162 |
+
%153 = mul i64 %152, %8, !dbg !29
|
| 163 |
+
%154 = extractelement <8 x i64> %139, i64 2, !dbg !29
|
| 164 |
+
%155 = mul i64 %154, %8, !dbg !29
|
| 165 |
+
%156 = extractelement <8 x i64> %139, i64 3, !dbg !29
|
| 166 |
+
%157 = mul i64 %156, %8, !dbg !29
|
| 167 |
+
%158 = extractelement <8 x i64> %139, i64 4, !dbg !29
|
| 168 |
+
%159 = mul i64 %158, %8, !dbg !29
|
| 169 |
+
%160 = extractelement <8 x i64> %139, i64 5, !dbg !29
|
| 170 |
+
%161 = mul i64 %160, %8, !dbg !29
|
| 171 |
+
%162 = extractelement <8 x i64> %139, i64 6, !dbg !29
|
| 172 |
+
%163 = mul i64 %162, %8, !dbg !29
|
| 173 |
+
%164 = extractelement <8 x i64> %139, i64 7, !dbg !29
|
| 174 |
+
%165 = mul i64 %164, %8, !dbg !29
|
| 175 |
+
%166 = extractelement <8 x i64> %149, i64 7, !dbg !30
|
| 176 |
+
%167 = getelementptr bfloat, ptr addrspace(1) %2, i64 %166, !dbg !31
|
| 177 |
+
%168 = getelementptr bfloat, ptr addrspace(1) %167, i64 %151, !dbg !31
|
| 178 |
+
%169 = extractelement <8 x i64> %149, i64 6, !dbg !30
|
| 179 |
+
%170 = getelementptr bfloat, ptr addrspace(1) %2, i64 %169, !dbg !31
|
| 180 |
+
%171 = getelementptr bfloat, ptr addrspace(1) %170, i64 %153, !dbg !31
|
| 181 |
+
%172 = extractelement <8 x i64> %149, i64 5, !dbg !30
|
| 182 |
+
%173 = getelementptr bfloat, ptr addrspace(1) %2, i64 %172, !dbg !31
|
| 183 |
+
%174 = getelementptr bfloat, ptr addrspace(1) %173, i64 %155, !dbg !31
|
| 184 |
+
%175 = extractelement <8 x i64> %149, i64 4, !dbg !30
|
| 185 |
+
%176 = getelementptr bfloat, ptr addrspace(1) %2, i64 %175, !dbg !31
|
| 186 |
+
%177 = getelementptr bfloat, ptr addrspace(1) %176, i64 %157, !dbg !31
|
| 187 |
+
%178 = extractelement <8 x i64> %149, i64 3, !dbg !30
|
| 188 |
+
%179 = getelementptr bfloat, ptr addrspace(1) %2, i64 %178, !dbg !31
|
| 189 |
+
%180 = getelementptr bfloat, ptr addrspace(1) %179, i64 %159, !dbg !31
|
| 190 |
+
%181 = extractelement <8 x i64> %149, i64 2, !dbg !30
|
| 191 |
+
%182 = getelementptr bfloat, ptr addrspace(1) %2, i64 %181, !dbg !31
|
| 192 |
+
%183 = getelementptr bfloat, ptr addrspace(1) %182, i64 %161, !dbg !31
|
| 193 |
+
%184 = extractelement <8 x i64> %149, i64 1, !dbg !30
|
| 194 |
+
%185 = getelementptr bfloat, ptr addrspace(1) %2, i64 %184, !dbg !31
|
| 195 |
+
%186 = getelementptr bfloat, ptr addrspace(1) %185, i64 %163, !dbg !31
|
| 196 |
+
%187 = extractelement <8 x i64> %149, i64 0, !dbg !30
|
| 197 |
+
%188 = getelementptr bfloat, ptr addrspace(1) %2, i64 %187, !dbg !31
|
| 198 |
+
%189 = getelementptr bfloat, ptr addrspace(1) %188, i64 %165, !dbg !31
|
| 199 |
+
%190 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !32
|
| 200 |
+
%191 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %168, i64 %190, i1 %88) #4, !dbg !32
|
| 201 |
+
%192 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !32
|
| 202 |
+
%193 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %171, i64 %192, i1 %91) #4, !dbg !32
|
| 203 |
+
%194 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !32
|
| 204 |
+
%195 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %174, i64 %194, i1 %94) #4, !dbg !32
|
| 205 |
+
%196 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !32
|
| 206 |
+
%197 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %177, i64 %196, i1 %97) #4, !dbg !32
|
| 207 |
+
%198 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !32
|
| 208 |
+
%199 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %180, i64 %198, i1 %100) #4, !dbg !32
|
| 209 |
+
%200 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !32
|
| 210 |
+
%201 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %183, i64 %200, i1 %103) #4, !dbg !32
|
| 211 |
+
%202 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !32
|
| 212 |
+
%203 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %186, i64 %202, i1 %106) #4, !dbg !32
|
| 213 |
+
%204 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !32
|
| 214 |
+
%205 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %189, i64 %204, i1 %109) #4, !dbg !32
|
| 215 |
+
%206 = sdiv i64 %8, 2, !dbg !33
|
| 216 |
+
%207 = sub i64 %8, %206, !dbg !34
|
| 217 |
+
%208 = icmp slt i64 %166, %207, !dbg !35
|
| 218 |
+
%209 = icmp slt i64 %169, %207, !dbg !35
|
| 219 |
+
%210 = icmp slt i64 %172, %207, !dbg !35
|
| 220 |
+
%211 = icmp slt i64 %175, %207, !dbg !35
|
| 221 |
+
%212 = icmp slt i64 %178, %207, !dbg !35
|
| 222 |
+
%213 = icmp slt i64 %181, %207, !dbg !35
|
| 223 |
+
%214 = icmp slt i64 %184, %207, !dbg !35
|
| 224 |
+
%215 = icmp slt i64 %187, %207, !dbg !35
|
| 225 |
+
%216 = sub nsw i64 %36, %166, !dbg !30
|
| 226 |
+
%217 = sub nsw i64 %38, %169, !dbg !30
|
| 227 |
+
%218 = sub nsw i64 %40, %172, !dbg !30
|
| 228 |
+
%219 = sub nsw i64 %42, %175, !dbg !30
|
| 229 |
+
%220 = sub nsw i64 %44, %178, !dbg !30
|
| 230 |
+
%221 = sub nsw i64 %46, %181, !dbg !30
|
| 231 |
+
%222 = sub nsw i64 %48, %184, !dbg !30
|
| 232 |
+
%223 = sub nsw i64 %50, %187, !dbg !30
|
| 233 |
+
%224 = getelementptr bfloat, ptr addrspace(1) %0, i64 %216, !dbg !36
|
| 234 |
+
%225 = getelementptr bfloat, ptr addrspace(1) %224, i64 %206, !dbg !36
|
| 235 |
+
%226 = getelementptr bfloat, ptr addrspace(1) %225, i64 %166, !dbg !36
|
| 236 |
+
%227 = getelementptr bfloat, ptr addrspace(1) %0, i64 %217, !dbg !36
|
| 237 |
+
%228 = getelementptr bfloat, ptr addrspace(1) %227, i64 %206, !dbg !36
|
| 238 |
+
%229 = getelementptr bfloat, ptr addrspace(1) %228, i64 %169, !dbg !36
|
| 239 |
+
%230 = getelementptr bfloat, ptr addrspace(1) %0, i64 %218, !dbg !36
|
| 240 |
+
%231 = getelementptr bfloat, ptr addrspace(1) %230, i64 %206, !dbg !36
|
| 241 |
+
%232 = getelementptr bfloat, ptr addrspace(1) %231, i64 %172, !dbg !36
|
| 242 |
+
%233 = getelementptr bfloat, ptr addrspace(1) %0, i64 %219, !dbg !36
|
| 243 |
+
%234 = getelementptr bfloat, ptr addrspace(1) %233, i64 %206, !dbg !36
|
| 244 |
+
%235 = getelementptr bfloat, ptr addrspace(1) %234, i64 %175, !dbg !36
|
| 245 |
+
%236 = getelementptr bfloat, ptr addrspace(1) %0, i64 %220, !dbg !36
|
| 246 |
+
%237 = getelementptr bfloat, ptr addrspace(1) %236, i64 %206, !dbg !36
|
| 247 |
+
%238 = getelementptr bfloat, ptr addrspace(1) %237, i64 %178, !dbg !36
|
| 248 |
+
%239 = getelementptr bfloat, ptr addrspace(1) %0, i64 %221, !dbg !36
|
| 249 |
+
%240 = getelementptr bfloat, ptr addrspace(1) %239, i64 %206, !dbg !36
|
| 250 |
+
%241 = getelementptr bfloat, ptr addrspace(1) %240, i64 %181, !dbg !36
|
| 251 |
+
%242 = getelementptr bfloat, ptr addrspace(1) %0, i64 %222, !dbg !36
|
| 252 |
+
%243 = getelementptr bfloat, ptr addrspace(1) %242, i64 %206, !dbg !36
|
| 253 |
+
%244 = getelementptr bfloat, ptr addrspace(1) %243, i64 %184, !dbg !36
|
| 254 |
+
%245 = getelementptr bfloat, ptr addrspace(1) %0, i64 %223, !dbg !36
|
| 255 |
+
%246 = getelementptr bfloat, ptr addrspace(1) %245, i64 %206, !dbg !36
|
| 256 |
+
%247 = getelementptr bfloat, ptr addrspace(1) %246, i64 %187, !dbg !36
|
| 257 |
+
%248 = and i1 %88, %208, !dbg !37
|
| 258 |
+
%249 = and i1 %91, %209, !dbg !37
|
| 259 |
+
%250 = and i1 %94, %210, !dbg !37
|
| 260 |
+
%251 = and i1 %97, %211, !dbg !37
|
| 261 |
+
%252 = and i1 %100, %212, !dbg !37
|
| 262 |
+
%253 = and i1 %103, %213, !dbg !37
|
| 263 |
+
%254 = and i1 %106, %214, !dbg !37
|
| 264 |
+
%255 = and i1 %109, %215, !dbg !37
|
| 265 |
+
%256 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !38
|
| 266 |
+
%257 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %226, i64 %256, i1 %248) #4, !dbg !38
|
| 267 |
+
%258 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !38
|
| 268 |
+
%259 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %229, i64 %258, i1 %249) #4, !dbg !38
|
| 269 |
+
%260 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !38
|
| 270 |
+
%261 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %232, i64 %260, i1 %250) #4, !dbg !38
|
| 271 |
+
%262 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !38
|
| 272 |
+
%263 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %235, i64 %262, i1 %251) #4, !dbg !38
|
| 273 |
+
%264 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !38
|
| 274 |
+
%265 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %238, i64 %264, i1 %252) #4, !dbg !38
|
| 275 |
+
%266 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !38
|
| 276 |
+
%267 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %241, i64 %266, i1 %253) #4, !dbg !38
|
| 277 |
+
%268 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !38
|
| 278 |
+
%269 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %244, i64 %268, i1 %254) #4, !dbg !38
|
| 279 |
+
%270 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !38
|
| 280 |
+
%271 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %247, i64 %270, i1 %255) #4, !dbg !38
|
| 281 |
+
%272 = insertelement <8 x i64> poison, i64 %207, i64 0, !dbg !39
|
| 282 |
+
%273 = shufflevector <8 x i64> %272, <8 x i64> poison, <8 x i32> zeroinitializer, !dbg !39
|
| 283 |
+
%274 = icmp sge <8 x i64> %149, %273, !dbg !39
|
| 284 |
+
%275 = sub i64 %166, %8, !dbg !40
|
| 285 |
+
%276 = sub i64 %169, %8, !dbg !40
|
| 286 |
+
%277 = sub i64 %172, %8, !dbg !40
|
| 287 |
+
%278 = sub i64 %175, %8, !dbg !40
|
| 288 |
+
%279 = sub i64 %178, %8, !dbg !40
|
| 289 |
+
%280 = sub i64 %181, %8, !dbg !40
|
| 290 |
+
%281 = sub i64 %184, %8, !dbg !40
|
| 291 |
+
%282 = sub i64 %187, %8, !dbg !40
|
| 292 |
+
%283 = getelementptr bfloat, ptr addrspace(1) %224, i64 %275, !dbg !41
|
| 293 |
+
%284 = getelementptr bfloat, ptr addrspace(1) %283, i64 %206, !dbg !41
|
| 294 |
+
%285 = getelementptr bfloat, ptr addrspace(1) %227, i64 %276, !dbg !41
|
| 295 |
+
%286 = getelementptr bfloat, ptr addrspace(1) %285, i64 %206, !dbg !41
|
| 296 |
+
%287 = getelementptr bfloat, ptr addrspace(1) %230, i64 %277, !dbg !41
|
| 297 |
+
%288 = getelementptr bfloat, ptr addrspace(1) %287, i64 %206, !dbg !41
|
| 298 |
+
%289 = getelementptr bfloat, ptr addrspace(1) %233, i64 %278, !dbg !41
|
| 299 |
+
%290 = getelementptr bfloat, ptr addrspace(1) %289, i64 %206, !dbg !41
|
| 300 |
+
%291 = getelementptr bfloat, ptr addrspace(1) %236, i64 %279, !dbg !41
|
| 301 |
+
%292 = getelementptr bfloat, ptr addrspace(1) %291, i64 %206, !dbg !41
|
| 302 |
+
%293 = getelementptr bfloat, ptr addrspace(1) %239, i64 %280, !dbg !41
|
| 303 |
+
%294 = getelementptr bfloat, ptr addrspace(1) %293, i64 %206, !dbg !41
|
| 304 |
+
%295 = getelementptr bfloat, ptr addrspace(1) %242, i64 %281, !dbg !41
|
| 305 |
+
%296 = getelementptr bfloat, ptr addrspace(1) %295, i64 %206, !dbg !41
|
| 306 |
+
%297 = getelementptr bfloat, ptr addrspace(1) %245, i64 %282, !dbg !41
|
| 307 |
+
%298 = getelementptr bfloat, ptr addrspace(1) %297, i64 %206, !dbg !41
|
| 308 |
+
%299 = extractelement <8 x i1> %274, i64 7, !dbg !42
|
| 309 |
+
%300 = and i1 %88, %299, !dbg !42
|
| 310 |
+
%301 = extractelement <8 x i1> %274, i64 6, !dbg !42
|
| 311 |
+
%302 = and i1 %91, %301, !dbg !42
|
| 312 |
+
%303 = extractelement <8 x i1> %274, i64 5, !dbg !42
|
| 313 |
+
%304 = and i1 %94, %303, !dbg !42
|
| 314 |
+
%305 = extractelement <8 x i1> %274, i64 4, !dbg !42
|
| 315 |
+
%306 = and i1 %97, %305, !dbg !42
|
| 316 |
+
%307 = extractelement <8 x i1> %274, i64 3, !dbg !42
|
| 317 |
+
%308 = and i1 %100, %307, !dbg !42
|
| 318 |
+
%309 = extractelement <8 x i1> %274, i64 2, !dbg !42
|
| 319 |
+
%310 = and i1 %103, %309, !dbg !42
|
| 320 |
+
%311 = extractelement <8 x i1> %274, i64 1, !dbg !42
|
| 321 |
+
%312 = and i1 %106, %311, !dbg !42
|
| 322 |
+
%313 = extractelement <8 x i1> %274, i64 0, !dbg !42
|
| 323 |
+
%314 = and i1 %109, %313, !dbg !42
|
| 324 |
+
%315 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !43
|
| 325 |
+
%316 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %284, i64 %315, i1 %300) #4, !dbg !43
|
| 326 |
+
%317 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !43
|
| 327 |
+
%318 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %286, i64 %317, i1 %302) #4, !dbg !43
|
| 328 |
+
%319 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !43
|
| 329 |
+
%320 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %288, i64 %319, i1 %304) #4, !dbg !43
|
| 330 |
+
%321 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !43
|
| 331 |
+
%322 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %290, i64 %321, i1 %306) #4, !dbg !43
|
| 332 |
+
%323 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !43
|
| 333 |
+
%324 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %292, i64 %323, i1 %308) #4, !dbg !43
|
| 334 |
+
%325 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !43
|
| 335 |
+
%326 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %294, i64 %325, i1 %310) #4, !dbg !43
|
| 336 |
+
%327 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !43
|
| 337 |
+
%328 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %296, i64 %327, i1 %312) #4, !dbg !43
|
| 338 |
+
%329 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !43
|
| 339 |
+
%330 = tail call i16 asm sideeffect "mov.u16 $0, $1;\0A\09@$4 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $2 + 0 ], $3;", "=c,c,l,l,b"(i16 0, ptr addrspace(1) %298, i64 %329, i1 %314) #4, !dbg !43
|
| 340 |
+
%331 = insertelement <8 x i64> poison, i64 %9, i64 0, !dbg !44
|
| 341 |
+
%332 = shufflevector <8 x i64> %331, <8 x i64> poison, <8 x i32> zeroinitializer, !dbg !44
|
| 342 |
+
%333 = select <8 x i1> %135, <8 x i64> %332, <8 x i64> zeroinitializer, !dbg !44
|
| 343 |
+
%334 = add <8 x i64> %333, %134, !dbg !44
|
| 344 |
+
%335 = icmp slt <8 x i64> %334, zeroinitializer, !dbg !45
|
| 345 |
+
%336 = icmp sge <8 x i64> %334, %332, !dbg !46
|
| 346 |
+
%337 = or <8 x i1> %335, %336, !dbg !47
|
| 347 |
+
%338 = and <8 x i1> %87, %337, !dbg !48
|
| 348 |
+
%339 = bitcast <8 x i1> %338 to i8, !dbg !49
|
| 349 |
+
%.not87 = icmp eq i8 %339, 0, !dbg !49
|
| 350 |
+
br i1 %.not87, label %341, label %340, !dbg !49
|
| 351 |
+
|
| 352 |
+
340: ; preds = %146
|
| 353 |
+
tail call void @__assertfail(ptr nonnull @assertMessage_1, ptr nonnull @assertFile_1, i32 52, ptr nonnull @assertFunc_1, i64 1), !dbg !49
|
| 354 |
+
unreachable, !dbg !49
|
| 355 |
+
|
| 356 |
+
341: ; preds = %146
|
| 357 |
+
%342 = bitcast i16 %271 to bfloat, !dbg !38
|
| 358 |
+
%343 = fpext bfloat %342 to float, !dbg !50
|
| 359 |
+
%344 = fsub float 0.000000e+00, %343, !dbg !51
|
| 360 |
+
%345 = bitcast i16 %330 to bfloat, !dbg !43
|
| 361 |
+
%346 = fpext bfloat %345 to float, !dbg !52
|
| 362 |
+
%347 = select i1 %215, float %344, float %346, !dbg !53
|
| 363 |
+
%348 = bitcast i16 %269 to bfloat, !dbg !38
|
| 364 |
+
%349 = fpext bfloat %348 to float, !dbg !50
|
| 365 |
+
%350 = fsub float 0.000000e+00, %349, !dbg !51
|
| 366 |
+
%351 = bitcast i16 %328 to bfloat, !dbg !43
|
| 367 |
+
%352 = fpext bfloat %351 to float, !dbg !52
|
| 368 |
+
%353 = select i1 %214, float %350, float %352, !dbg !53
|
| 369 |
+
%354 = bitcast i16 %267 to bfloat, !dbg !38
|
| 370 |
+
%355 = fpext bfloat %354 to float, !dbg !50
|
| 371 |
+
%356 = fsub float 0.000000e+00, %355, !dbg !51
|
| 372 |
+
%357 = bitcast i16 %326 to bfloat, !dbg !43
|
| 373 |
+
%358 = fpext bfloat %357 to float, !dbg !52
|
| 374 |
+
%359 = select i1 %213, float %356, float %358, !dbg !53
|
| 375 |
+
%360 = bitcast i16 %265 to bfloat, !dbg !38
|
| 376 |
+
%361 = fpext bfloat %360 to float, !dbg !50
|
| 377 |
+
%362 = fsub float 0.000000e+00, %361, !dbg !51
|
| 378 |
+
%363 = bitcast i16 %324 to bfloat, !dbg !43
|
| 379 |
+
%364 = fpext bfloat %363 to float, !dbg !52
|
| 380 |
+
%365 = select i1 %212, float %362, float %364, !dbg !53
|
| 381 |
+
%366 = bitcast i16 %263 to bfloat, !dbg !38
|
| 382 |
+
%367 = fpext bfloat %366 to float, !dbg !50
|
| 383 |
+
%368 = fsub float 0.000000e+00, %367, !dbg !51
|
| 384 |
+
%369 = bitcast i16 %322 to bfloat, !dbg !43
|
| 385 |
+
%370 = fpext bfloat %369 to float, !dbg !52
|
| 386 |
+
%371 = select i1 %211, float %368, float %370, !dbg !53
|
| 387 |
+
%372 = bitcast i16 %261 to bfloat, !dbg !38
|
| 388 |
+
%373 = fpext bfloat %372 to float, !dbg !50
|
| 389 |
+
%374 = fsub float 0.000000e+00, %373, !dbg !51
|
| 390 |
+
%375 = bitcast i16 %320 to bfloat, !dbg !43
|
| 391 |
+
%376 = fpext bfloat %375 to float, !dbg !52
|
| 392 |
+
%377 = select i1 %210, float %374, float %376, !dbg !53
|
| 393 |
+
%378 = bitcast i16 %259 to bfloat, !dbg !38
|
| 394 |
+
%379 = fpext bfloat %378 to float, !dbg !50
|
| 395 |
+
%380 = fsub float 0.000000e+00, %379, !dbg !51
|
| 396 |
+
%381 = bitcast i16 %318 to bfloat, !dbg !43
|
| 397 |
+
%382 = fpext bfloat %381 to float, !dbg !52
|
| 398 |
+
%383 = select i1 %209, float %380, float %382, !dbg !53
|
| 399 |
+
%384 = bitcast i16 %257 to bfloat, !dbg !38
|
| 400 |
+
%385 = fpext bfloat %384 to float, !dbg !50
|
| 401 |
+
%386 = fsub float 0.000000e+00, %385, !dbg !51
|
| 402 |
+
%387 = bitcast i16 %316 to bfloat, !dbg !43
|
| 403 |
+
%388 = fpext bfloat %387 to float, !dbg !52
|
| 404 |
+
%389 = select i1 %208, float %386, float %388, !dbg !53
|
| 405 |
+
%390 = bitcast i16 %110 to bfloat, !dbg !17
|
| 406 |
+
%391 = fpext bfloat %390 to float, !dbg !54
|
| 407 |
+
%392 = bitcast i16 %107 to bfloat, !dbg !17
|
| 408 |
+
%393 = fpext bfloat %392 to float, !dbg !54
|
| 409 |
+
%394 = bitcast i16 %104 to bfloat, !dbg !17
|
| 410 |
+
%395 = fpext bfloat %394 to float, !dbg !54
|
| 411 |
+
%396 = bitcast i16 %101 to bfloat, !dbg !17
|
| 412 |
+
%397 = fpext bfloat %396 to float, !dbg !54
|
| 413 |
+
%398 = bitcast i16 %98 to bfloat, !dbg !17
|
| 414 |
+
%399 = fpext bfloat %398 to float, !dbg !54
|
| 415 |
+
%400 = bitcast i16 %95 to bfloat, !dbg !17
|
| 416 |
+
%401 = fpext bfloat %400 to float, !dbg !54
|
| 417 |
+
%402 = bitcast i16 %92 to bfloat, !dbg !17
|
| 418 |
+
%403 = fpext bfloat %402 to float, !dbg !54
|
| 419 |
+
%404 = bitcast i16 %89 to bfloat, !dbg !17
|
| 420 |
+
%405 = fpext bfloat %404 to float, !dbg !54
|
| 421 |
+
tail call void @llvm.nvvm.barrier.cta.sync.aligned.all(i32 0), !dbg !49
|
| 422 |
+
%406 = extractelement <8 x i64> %334, i64 0, !dbg !55
|
| 423 |
+
%407 = mul i64 %406, %8, !dbg !55
|
| 424 |
+
%408 = extractelement <8 x i64> %334, i64 1, !dbg !55
|
| 425 |
+
%409 = mul i64 %408, %8, !dbg !55
|
| 426 |
+
%410 = extractelement <8 x i64> %334, i64 2, !dbg !55
|
| 427 |
+
%411 = mul i64 %410, %8, !dbg !55
|
| 428 |
+
%412 = extractelement <8 x i64> %334, i64 3, !dbg !55
|
| 429 |
+
%413 = mul i64 %412, %8, !dbg !55
|
| 430 |
+
%414 = extractelement <8 x i64> %334, i64 4, !dbg !55
|
| 431 |
+
%415 = mul i64 %414, %8, !dbg !55
|
| 432 |
+
%416 = extractelement <8 x i64> %334, i64 5, !dbg !55
|
| 433 |
+
%417 = mul i64 %416, %8, !dbg !55
|
| 434 |
+
%418 = extractelement <8 x i64> %334, i64 6, !dbg !55
|
| 435 |
+
%419 = mul i64 %418, %8, !dbg !55
|
| 436 |
+
%420 = extractelement <8 x i64> %334, i64 7, !dbg !55
|
| 437 |
+
%421 = mul i64 %420, %8, !dbg !55
|
| 438 |
+
%422 = getelementptr bfloat, ptr addrspace(1) %3, i64 %166, !dbg !56
|
| 439 |
+
%423 = getelementptr bfloat, ptr addrspace(1) %422, i64 %407, !dbg !56
|
| 440 |
+
%424 = getelementptr bfloat, ptr addrspace(1) %3, i64 %169, !dbg !56
|
| 441 |
+
%425 = getelementptr bfloat, ptr addrspace(1) %424, i64 %409, !dbg !56
|
| 442 |
+
%426 = getelementptr bfloat, ptr addrspace(1) %3, i64 %172, !dbg !56
|
| 443 |
+
%427 = getelementptr bfloat, ptr addrspace(1) %426, i64 %411, !dbg !56
|
| 444 |
+
%428 = getelementptr bfloat, ptr addrspace(1) %3, i64 %175, !dbg !56
|
| 445 |
+
%429 = getelementptr bfloat, ptr addrspace(1) %428, i64 %413, !dbg !56
|
| 446 |
+
%430 = getelementptr bfloat, ptr addrspace(1) %3, i64 %178, !dbg !56
|
| 447 |
+
%431 = getelementptr bfloat, ptr addrspace(1) %430, i64 %415, !dbg !56
|
| 448 |
+
%432 = getelementptr bfloat, ptr addrspace(1) %3, i64 %181, !dbg !56
|
| 449 |
+
%433 = getelementptr bfloat, ptr addrspace(1) %432, i64 %417, !dbg !56
|
| 450 |
+
%434 = getelementptr bfloat, ptr addrspace(1) %3, i64 %184, !dbg !56
|
| 451 |
+
%435 = getelementptr bfloat, ptr addrspace(1) %434, i64 %419, !dbg !56
|
| 452 |
+
%436 = getelementptr bfloat, ptr addrspace(1) %3, i64 %187, !dbg !56
|
| 453 |
+
%437 = getelementptr bfloat, ptr addrspace(1) %436, i64 %421, !dbg !56
|
| 454 |
+
%438 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !57
|
| 455 |
+
%439 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %423, i64 %438, i1 %88) #4, !dbg !57
|
| 456 |
+
%440 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !57
|
| 457 |
+
%441 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %425, i64 %440, i1 %91) #4, !dbg !57
|
| 458 |
+
%442 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !57
|
| 459 |
+
%443 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %427, i64 %442, i1 %94) #4, !dbg !57
|
| 460 |
+
%444 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !57
|
| 461 |
+
%445 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %429, i64 %444, i1 %97) #4, !dbg !57
|
| 462 |
+
%446 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !57
|
| 463 |
+
%447 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %431, i64 %446, i1 %100) #4, !dbg !57
|
| 464 |
+
%448 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !57
|
| 465 |
+
%449 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %433, i64 %448, i1 %103) #4, !dbg !57
|
| 466 |
+
%450 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !57
|
| 467 |
+
%451 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %435, i64 %450, i1 %106) #4, !dbg !57
|
| 468 |
+
%452 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #4, !dbg !57
|
| 469 |
+
%453 = tail call i16 asm sideeffect "mov.u16 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b16 { $0 }, [ $1 + 0 ], $2;", "=c,l,l,b"(ptr addrspace(1) %437, i64 %452, i1 %109) #4, !dbg !57
|
| 470 |
+
%454 = insertelement <2 x i16> poison, i16 %191, i64 0, !dbg !32
|
| 471 |
+
%455 = insertelement <2 x i16> %454, i16 %439, i64 1, !dbg !32
|
| 472 |
+
%456 = bitcast <2 x i16> %455 to <2 x bfloat>, !dbg !32
|
| 473 |
+
%457 = fpext <2 x bfloat> %456 to <2 x float>, !dbg !58
|
| 474 |
+
%458 = insertelement <2 x float> poison, float %405, i64 0, !dbg !59
|
| 475 |
+
%459 = insertelement <2 x float> %458, float %389, i64 1, !dbg !59
|
| 476 |
+
%460 = fmul <2 x float> %459, %457, !dbg !59
|
| 477 |
+
%461 = insertelement <2 x i16> poison, i16 %193, i64 0, !dbg !32
|
| 478 |
+
%462 = insertelement <2 x i16> %461, i16 %441, i64 1, !dbg !32
|
| 479 |
+
%463 = bitcast <2 x i16> %462 to <2 x bfloat>, !dbg !32
|
| 480 |
+
%464 = fpext <2 x bfloat> %463 to <2 x float>, !dbg !58
|
| 481 |
+
%465 = insertelement <2 x float> poison, float %403, i64 0, !dbg !59
|
| 482 |
+
%466 = insertelement <2 x float> %465, float %383, i64 1, !dbg !59
|
| 483 |
+
%467 = fmul <2 x float> %466, %464, !dbg !59
|
| 484 |
+
%468 = insertelement <2 x i16> poison, i16 %195, i64 0, !dbg !32
|
| 485 |
+
%469 = insertelement <2 x i16> %468, i16 %443, i64 1, !dbg !32
|
| 486 |
+
%470 = bitcast <2 x i16> %469 to <2 x bfloat>, !dbg !32
|
| 487 |
+
%471 = fpext <2 x bfloat> %470 to <2 x float>, !dbg !58
|
| 488 |
+
%472 = insertelement <2 x float> poison, float %401, i64 0, !dbg !59
|
| 489 |
+
%473 = insertelement <2 x float> %472, float %377, i64 1, !dbg !59
|
| 490 |
+
%474 = fmul <2 x float> %473, %471, !dbg !59
|
| 491 |
+
%475 = insertelement <2 x i16> poison, i16 %197, i64 0, !dbg !32
|
| 492 |
+
%476 = insertelement <2 x i16> %475, i16 %445, i64 1, !dbg !32
|
| 493 |
+
%477 = bitcast <2 x i16> %476 to <2 x bfloat>, !dbg !32
|
| 494 |
+
%478 = fpext <2 x bfloat> %477 to <2 x float>, !dbg !58
|
| 495 |
+
%479 = insertelement <2 x float> poison, float %399, i64 0, !dbg !59
|
| 496 |
+
%480 = insertelement <2 x float> %479, float %371, i64 1, !dbg !59
|
| 497 |
+
%481 = fmul <2 x float> %480, %478, !dbg !59
|
| 498 |
+
%482 = insertelement <2 x i16> poison, i16 %199, i64 0, !dbg !32
|
| 499 |
+
%483 = insertelement <2 x i16> %482, i16 %447, i64 1, !dbg !32
|
| 500 |
+
%484 = bitcast <2 x i16> %483 to <2 x bfloat>, !dbg !32
|
| 501 |
+
%485 = fpext <2 x bfloat> %484 to <2 x float>, !dbg !58
|
| 502 |
+
%486 = insertelement <2 x float> poison, float %397, i64 0, !dbg !59
|
| 503 |
+
%487 = insertelement <2 x float> %486, float %365, i64 1, !dbg !59
|
| 504 |
+
%488 = fmul <2 x float> %487, %485, !dbg !59
|
| 505 |
+
%489 = insertelement <2 x i16> poison, i16 %201, i64 0, !dbg !32
|
| 506 |
+
%490 = insertelement <2 x i16> %489, i16 %449, i64 1, !dbg !32
|
| 507 |
+
%491 = bitcast <2 x i16> %490 to <2 x bfloat>, !dbg !32
|
| 508 |
+
%492 = fpext <2 x bfloat> %491 to <2 x float>, !dbg !58
|
| 509 |
+
%493 = insertelement <2 x float> poison, float %395, i64 0, !dbg !59
|
| 510 |
+
%494 = insertelement <2 x float> %493, float %359, i64 1, !dbg !59
|
| 511 |
+
%495 = fmul <2 x float> %494, %492, !dbg !59
|
| 512 |
+
%496 = insertelement <2 x i16> poison, i16 %203, i64 0, !dbg !32
|
| 513 |
+
%497 = insertelement <2 x i16> %496, i16 %451, i64 1, !dbg !32
|
| 514 |
+
%498 = bitcast <2 x i16> %497 to <2 x bfloat>, !dbg !32
|
| 515 |
+
%499 = fpext <2 x bfloat> %498 to <2 x float>, !dbg !58
|
| 516 |
+
%500 = insertelement <2 x float> poison, float %393, i64 0, !dbg !59
|
| 517 |
+
%501 = insertelement <2 x float> %500, float %353, i64 1, !dbg !59
|
| 518 |
+
%502 = fmul <2 x float> %501, %499, !dbg !59
|
| 519 |
+
%503 = insertelement <2 x i16> poison, i16 %205, i64 0, !dbg !32
|
| 520 |
+
%504 = insertelement <2 x i16> %503, i16 %453, i64 1, !dbg !32
|
| 521 |
+
%505 = bitcast <2 x i16> %504 to <2 x bfloat>, !dbg !32
|
| 522 |
+
%506 = fpext <2 x bfloat> %505 to <2 x float>, !dbg !58
|
| 523 |
+
%507 = insertelement <2 x float> poison, float %391, i64 0, !dbg !59
|
| 524 |
+
%508 = insertelement <2 x float> %507, float %347, i64 1, !dbg !59
|
| 525 |
+
%509 = fmul <2 x float> %508, %506, !dbg !59
|
| 526 |
+
%shift = shufflevector <2 x float> %460, <2 x float> poison, <2 x i32> <i32 1, i32 poison>, !dbg !60
|
| 527 |
+
%foldExtExtBinop = fadd <2 x float> %460, %shift, !dbg !60
|
| 528 |
+
%510 = extractelement <2 x float> %foldExtExtBinop, i64 0, !dbg !60
|
| 529 |
+
%shift66 = shufflevector <2 x float> %467, <2 x float> poison, <2 x i32> <i32 1, i32 poison>, !dbg !60
|
| 530 |
+
%foldExtExtBinop67 = fadd <2 x float> %467, %shift66, !dbg !60
|
| 531 |
+
%511 = extractelement <2 x float> %foldExtExtBinop67, i64 0, !dbg !60
|
| 532 |
+
%shift69 = shufflevector <2 x float> %474, <2 x float> poison, <2 x i32> <i32 1, i32 poison>, !dbg !60
|
| 533 |
+
%foldExtExtBinop70 = fadd <2 x float> %474, %shift69, !dbg !60
|
| 534 |
+
%512 = extractelement <2 x float> %foldExtExtBinop70, i64 0, !dbg !60
|
| 535 |
+
%shift72 = shufflevector <2 x float> %481, <2 x float> poison, <2 x i32> <i32 1, i32 poison>, !dbg !60
|
| 536 |
+
%foldExtExtBinop73 = fadd <2 x float> %481, %shift72, !dbg !60
|
| 537 |
+
%513 = extractelement <2 x float> %foldExtExtBinop73, i64 0, !dbg !60
|
| 538 |
+
%shift75 = shufflevector <2 x float> %488, <2 x float> poison, <2 x i32> <i32 1, i32 poison>, !dbg !60
|
| 539 |
+
%foldExtExtBinop76 = fadd <2 x float> %488, %shift75, !dbg !60
|
| 540 |
+
%514 = extractelement <2 x float> %foldExtExtBinop76, i64 0, !dbg !60
|
| 541 |
+
%shift78 = shufflevector <2 x float> %495, <2 x float> poison, <2 x i32> <i32 1, i32 poison>, !dbg !60
|
| 542 |
+
%foldExtExtBinop79 = fadd <2 x float> %495, %shift78, !dbg !60
|
| 543 |
+
%515 = extractelement <2 x float> %foldExtExtBinop79, i64 0, !dbg !60
|
| 544 |
+
%shift81 = shufflevector <2 x float> %502, <2 x float> poison, <2 x i32> <i32 1, i32 poison>, !dbg !60
|
| 545 |
+
%foldExtExtBinop82 = fadd <2 x float> %502, %shift81, !dbg !60
|
| 546 |
+
%516 = extractelement <2 x float> %foldExtExtBinop82, i64 0, !dbg !60
|
| 547 |
+
%shift84 = shufflevector <2 x float> %509, <2 x float> poison, <2 x i32> <i32 1, i32 poison>, !dbg !60
|
| 548 |
+
%foldExtExtBinop85 = fadd <2 x float> %509, %shift84, !dbg !60
|
| 549 |
+
%517 = extractelement <2 x float> %foldExtExtBinop85, i64 0, !dbg !60
|
| 550 |
+
%518 = getelementptr bfloat, ptr addrspace(1) %4, i64 %36, !dbg !61
|
| 551 |
+
%519 = getelementptr bfloat, ptr addrspace(1) %4, i64 %38, !dbg !61
|
| 552 |
+
%520 = getelementptr bfloat, ptr addrspace(1) %4, i64 %40, !dbg !61
|
| 553 |
+
%521 = getelementptr bfloat, ptr addrspace(1) %4, i64 %42, !dbg !61
|
| 554 |
+
%522 = getelementptr bfloat, ptr addrspace(1) %4, i64 %44, !dbg !61
|
| 555 |
+
%523 = getelementptr bfloat, ptr addrspace(1) %4, i64 %46, !dbg !61
|
| 556 |
+
%524 = getelementptr bfloat, ptr addrspace(1) %4, i64 %48, !dbg !61
|
| 557 |
+
%525 = getelementptr bfloat, ptr addrspace(1) %4, i64 %50, !dbg !61
|
| 558 |
+
%526 = fptrunc float %510 to bfloat, !dbg !62
|
| 559 |
+
%527 = fptrunc float %511 to bfloat, !dbg !62
|
| 560 |
+
%528 = fptrunc float %512 to bfloat, !dbg !62
|
| 561 |
+
%529 = fptrunc float %513 to bfloat, !dbg !62
|
| 562 |
+
%530 = fptrunc float %514 to bfloat, !dbg !62
|
| 563 |
+
%531 = fptrunc float %515 to bfloat, !dbg !62
|
| 564 |
+
%532 = fptrunc float %516 to bfloat, !dbg !62
|
| 565 |
+
%533 = fptrunc float %517 to bfloat, !dbg !62
|
| 566 |
+
%534 = bitcast bfloat %526 to i16, !dbg !62
|
| 567 |
+
tail call void asm sideeffect "@$2 st.global.b16 [ $1 + 0 ], { $0 };", "c,l,b"(i16 %534, ptr addrspace(1) %518, i1 %88) #4, !dbg !62
|
| 568 |
+
%535 = bitcast bfloat %527 to i16, !dbg !62
|
| 569 |
+
tail call void asm sideeffect "@$2 st.global.b16 [ $1 + 0 ], { $0 };", "c,l,b"(i16 %535, ptr addrspace(1) %519, i1 %91) #4, !dbg !62
|
| 570 |
+
%536 = bitcast bfloat %528 to i16, !dbg !62
|
| 571 |
+
tail call void asm sideeffect "@$2 st.global.b16 [ $1 + 0 ], { $0 };", "c,l,b"(i16 %536, ptr addrspace(1) %520, i1 %94) #4, !dbg !62
|
| 572 |
+
%537 = bitcast bfloat %529 to i16, !dbg !62
|
| 573 |
+
tail call void asm sideeffect "@$2 st.global.b16 [ $1 + 0 ], { $0 };", "c,l,b"(i16 %537, ptr addrspace(1) %521, i1 %97) #4, !dbg !62
|
| 574 |
+
%538 = bitcast bfloat %530 to i16, !dbg !62
|
| 575 |
+
tail call void asm sideeffect "@$2 st.global.b16 [ $1 + 0 ], { $0 };", "c,l,b"(i16 %538, ptr addrspace(1) %522, i1 %100) #4, !dbg !62
|
| 576 |
+
%539 = bitcast bfloat %531 to i16, !dbg !62
|
| 577 |
+
tail call void asm sideeffect "@$2 st.global.b16 [ $1 + 0 ], { $0 };", "c,l,b"(i16 %539, ptr addrspace(1) %523, i1 %103) #4, !dbg !62
|
| 578 |
+
%540 = bitcast bfloat %532 to i16, !dbg !62
|
| 579 |
+
tail call void asm sideeffect "@$2 st.global.b16 [ $1 + 0 ], { $0 };", "c,l,b"(i16 %540, ptr addrspace(1) %524, i1 %106) #4, !dbg !62
|
| 580 |
+
%541 = bitcast bfloat %533 to i16, !dbg !62
|
| 581 |
+
tail call void asm sideeffect "@$2 st.global.b16 [ $1 + 0 ], { $0 };", "c,l,b"(i16 %541, ptr addrspace(1) %525, i1 %109) #4, !dbg !62
|
| 582 |
+
ret void, !dbg !63
|
| 583 |
+
}
|
| 584 |
+
|
| 585 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 586 |
+
declare noundef range(i32 0, 2147483647) i32 @llvm.nvvm.read.ptx.sreg.ctaid.x() #2
|
| 587 |
+
|
| 588 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 589 |
+
declare noundef range(i32 0, 1024) i32 @llvm.nvvm.read.ptx.sreg.tid.x() #2
|
| 590 |
+
|
| 591 |
+
; Function Attrs: convergent nocallback nounwind
|
| 592 |
+
declare void @llvm.nvvm.barrier.cta.sync.aligned.all(i32) #3
|
| 593 |
+
|
| 594 |
+
attributes #0 = { noreturn }
|
| 595 |
+
attributes #1 = { "nvvm.reqntid"="128" }
|
| 596 |
+
attributes #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
|
| 597 |
+
attributes #3 = { convergent nocallback nounwind }
|
| 598 |
+
attributes #4 = { nounwind }
|
| 599 |
+
|
| 600 |
+
!llvm.dbg.cu = !{!0}
|
| 601 |
+
!llvm.module.flags = !{!2, !3}
|
| 602 |
+
!llvm.ident = !{!4}
|
| 603 |
+
|
| 604 |
+
!0 = distinct !DICompileUnit(language: DW_LANG_C, file: !1, producer: "triton", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly)
|
| 605 |
+
!1 = !DIFile(filename: "cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py", directory: "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy")
|
| 606 |
+
!2 = !{i32 2, !"Debug Info Version", i32 3}
|
| 607 |
+
!3 = !{i32 4, !"nvvm-reflect-ftz", i32 1}
|
| 608 |
+
!4 = !{!"clang version 3.8.0 (tags/RELEASE_380/final)"}
|
| 609 |
+
!5 = !DISubprogram(name: "__assertfail", linkageName: "__assertfail", scope: !6, file: !6, type: !7, spFlags: DISPFlagOptimized)
|
| 610 |
+
!6 = !DIFile(filename: "<unknown>", directory: "")
|
| 611 |
+
!7 = !DISubroutineType(cc: DW_CC_normal, types: !8)
|
| 612 |
+
!8 = !{}
|
| 613 |
+
!9 = distinct !DISubprogram(name: "triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0", linkageName: "triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0", scope: !1, file: !1, line: 18, type: !7, scopeLine: 18, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0)
|
| 614 |
+
!10 = !DILocation(line: 19, column: 28, scope: !9)
|
| 615 |
+
!11 = !DILocation(line: 19, column: 33, scope: !9)
|
| 616 |
+
!12 = !DILocation(line: 20, column: 36, scope: !9)
|
| 617 |
+
!13 = !DILocation(line: 20, column: 23, scope: !9)
|
| 618 |
+
!14 = !DILocation(line: 23, column: 21, scope: !9)
|
| 619 |
+
!15 = !DILocation(line: 26, column: 30, scope: !9)
|
| 620 |
+
!16 = !DILocation(line: 23, column: 28, scope: !9)
|
| 621 |
+
!17 = !DILocation(line: 26, column: 35, scope: !9)
|
| 622 |
+
!18 = !DILocation(line: 27, column: 30, scope: !9)
|
| 623 |
+
!19 = !DILocation(line: 21, column: 21, scope: !9)
|
| 624 |
+
!20 = !DILocation(line: 27, column: 35, scope: !9)
|
| 625 |
+
!21 = !DILocation(line: 30, column: 18, scope: !9)
|
| 626 |
+
!22 = !DILocation(line: 31, column: 32, scope: !9)
|
| 627 |
+
!23 = !DILocation(line: 32, column: 28, scope: !9)
|
| 628 |
+
!24 = !DILocation(line: 32, column: 44, scope: !9)
|
| 629 |
+
!25 = !DILocation(line: 32, column: 37, scope: !9)
|
| 630 |
+
!26 = !DILocation(line: 32, column: 52, scope: !9)
|
| 631 |
+
!27 = !DILocation(line: 32, column: 62, scope: !9)
|
| 632 |
+
!28 = !DILocation(line: 24, column: 19, scope: !9)
|
| 633 |
+
!29 = !DILocation(line: 33, column: 39, scope: !9)
|
| 634 |
+
!30 = !DILocation(line: 40, column: 35, scope: !9)
|
| 635 |
+
!31 = !DILocation(line: 33, column: 30, scope: !9)
|
| 636 |
+
!32 = !DILocation(line: 33, column: 46, scope: !9)
|
| 637 |
+
!33 = !DILocation(line: 38, column: 31, scope: !9)
|
| 638 |
+
!34 = !DILocation(line: 38, column: 18, scope: !9)
|
| 639 |
+
!35 = !DILocation(line: 39, column: 19, scope: !9)
|
| 640 |
+
!36 = !DILocation(line: 40, column: 31, scope: !9)
|
| 641 |
+
!37 = !DILocation(line: 40, column: 68, scope: !9)
|
| 642 |
+
!38 = !DILocation(line: 40, column: 60, scope: !9)
|
| 643 |
+
!39 = !DILocation(line: 44, column: 20, scope: !9)
|
| 644 |
+
!40 = !DILocation(line: 47, column: 47, scope: !9)
|
| 645 |
+
!41 = !DILocation(line: 47, column: 31, scope: !9)
|
| 646 |
+
!42 = !DILocation(line: 47, column: 81, scope: !9)
|
| 647 |
+
!43 = !DILocation(line: 47, column: 73, scope: !9)
|
| 648 |
+
!44 = !DILocation(line: 51, column: 34, scope: !9)
|
| 649 |
+
!45 = !DILocation(line: 52, column: 28, scope: !9)
|
| 650 |
+
!46 = !DILocation(line: 52, column: 46, scope: !9)
|
| 651 |
+
!47 = !DILocation(line: 52, column: 38, scope: !9)
|
| 652 |
+
!48 = !DILocation(line: 52, column: 54, scope: !9)
|
| 653 |
+
!49 = !DILocation(line: 52, column: 64, scope: !9)
|
| 654 |
+
!50 = !DILocation(line: 40, column: 119, scope: !9)
|
| 655 |
+
!51 = !DILocation(line: 41, column: 13, scope: !9)
|
| 656 |
+
!52 = !DILocation(line: 47, column: 132, scope: !9)
|
| 657 |
+
!53 = !DILocation(line: 0, scope: !9)
|
| 658 |
+
!54 = !DILocation(line: 26, column: 75, scope: !9)
|
| 659 |
+
!55 = !DILocation(line: 53, column: 40, scope: !9)
|
| 660 |
+
!56 = !DILocation(line: 53, column: 31, scope: !9)
|
| 661 |
+
!57 = !DILocation(line: 53, column: 48, scope: !9)
|
| 662 |
+
!58 = !DILocation(line: 33, column: 86, scope: !9)
|
| 663 |
+
!59 = !DILocation(line: 34, column: 18, scope: !9)
|
| 664 |
+
!60 = !DILocation(line: 55, column: 19, scope: !9)
|
| 665 |
+
!61 = !DILocation(line: 56, column: 25, scope: !9)
|
| 666 |
+
!62 = !DILocation(line: 56, column: 37, scope: !9)
|
| 667 |
+
!63 = !DILocation(line: 56, column: 4, scope: !9)
|
SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.ptx
ADDED
|
@@ -0,0 +1,1534 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
//
|
| 2 |
+
// Generated by LLVM NVPTX Back-End
|
| 3 |
+
//
|
| 4 |
+
|
| 5 |
+
.version 8.7
|
| 6 |
+
.target sm_90a
|
| 7 |
+
.address_size 64
|
| 8 |
+
|
| 9 |
+
// .globl triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0 // -- Begin function triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0
|
| 10 |
+
.extern .func __assertfail
|
| 11 |
+
(
|
| 12 |
+
.param .b64 __assertfail_param_0,
|
| 13 |
+
.param .b64 __assertfail_param_1,
|
| 14 |
+
.param .b32 __assertfail_param_2,
|
| 15 |
+
.param .b64 __assertfail_param_3,
|
| 16 |
+
.param .b64 __assertfail_param_4
|
| 17 |
+
)
|
| 18 |
+
.noreturn;
|
| 19 |
+
.global .align 1 .b8 assertFunc_1[8] = {117, 110, 107, 110, 111, 119, 110};
|
| 20 |
+
.global .align 1 .b8 assertFile_1[114] = {47, 119, 111, 114, 107, 115, 112, 97, 99, 101, 47, 104, 97, 110, 114, 117, 105, 47, 83, 112, 101, 99, 70, 111, 114, 103, 101, 45, 101, 120, 116, 47, 99, 97, 99, 104, 101, 47, 99, 111, 109, 112, 105, 108, 101, 100, 95, 107, 101, 114, 110, 101, 108, 115, 47, 118, 121, 47, 99, 118, 121, 111, 113, 103, 55, 106, 122, 101, 97, 100, 97, 114, 114, 103, 103, 103, 120, 104, 115, 50, 100, 106, 109, 120, 117, 103, 120, 121, 118, 106, 104, 105, 109, 55, 50, 118, 102, 115, 116, 113, 99, 52, 105, 111, 52, 113, 115, 101, 99, 106, 46, 112, 121};
|
| 21 |
+
.global .align 1 .b8 assertMessage_1[38] = {105, 110, 100, 101, 120, 32, 111, 117, 116, 32, 111, 102, 32, 98, 111, 117, 110, 100, 115, 58, 32, 48, 32, 60, 61, 32, 116, 109, 112, 50, 53, 32, 60, 32, 107, 115, 52};
|
| 22 |
+
.global .align 1 .b8 assertFunc_0[8] = {117, 110, 107, 110, 111, 119, 110};
|
| 23 |
+
.global .align 1 .b8 assertFile_0[114] = {47, 119, 111, 114, 107, 115, 112, 97, 99, 101, 47, 104, 97, 110, 114, 117, 105, 47, 83, 112, 101, 99, 70, 111, 114, 103, 101, 45, 101, 120, 116, 47, 99, 97, 99, 104, 101, 47, 99, 111, 109, 112, 105, 108, 101, 100, 95, 107, 101, 114, 110, 101, 108, 115, 47, 118, 121, 47, 99, 118, 121, 111, 113, 103, 55, 106, 122, 101, 97, 100, 97, 114, 114, 103, 103, 103, 120, 104, 115, 50, 100, 106, 109, 120, 117, 103, 120, 121, 118, 106, 104, 105, 109, 55, 50, 118, 102, 115, 116, 113, 99, 52, 105, 111, 52, 113, 115, 101, 99, 106, 46, 112, 121};
|
| 24 |
+
.global .align 1 .b8 assertMessage_0[37] = {105, 110, 100, 101, 120, 32, 111, 117, 116, 32, 111, 102, 32, 98, 111, 117, 110, 100, 115, 58, 32, 48, 32, 60, 61, 32, 116, 109, 112, 53, 32, 60, 32, 107, 115, 50};
|
| 25 |
+
// @triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0
|
| 26 |
+
.visible .entry triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0(
|
| 27 |
+
.param .u64 .ptr .global .align 1 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_0,
|
| 28 |
+
.param .u64 .ptr .global .align 1 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_1,
|
| 29 |
+
.param .u64 .ptr .global .align 1 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_2,
|
| 30 |
+
.param .u64 .ptr .global .align 1 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_3,
|
| 31 |
+
.param .u64 .ptr .global .align 1 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_4,
|
| 32 |
+
.param .u64 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_5,
|
| 33 |
+
.param .u64 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_6,
|
| 34 |
+
.param .u64 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_7,
|
| 35 |
+
.param .u64 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_8,
|
| 36 |
+
.param .u64 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_9,
|
| 37 |
+
.param .u32 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_10,
|
| 38 |
+
.param .u64 .ptr .global .align 1 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_11,
|
| 39 |
+
.param .u64 .ptr .global .align 1 triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_12
|
| 40 |
+
)
|
| 41 |
+
.reqntid 128
|
| 42 |
+
{
|
| 43 |
+
.reg .pred %p<179>;
|
| 44 |
+
.reg .b16 %rs<165>;
|
| 45 |
+
.reg .b32 %r<160>;
|
| 46 |
+
.reg .b64 %rd<500>;
|
| 47 |
+
.loc 1 18 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:18:0
|
| 48 |
+
$L__func_begin0:
|
| 49 |
+
.loc 1 18 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:18:0
|
| 50 |
+
|
| 51 |
+
// %bb.0:
|
| 52 |
+
ld.param.b64 %rd103, [triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_5];
|
| 53 |
+
$L__tmp0:
|
| 54 |
+
.loc 1 19 28 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:19:28
|
| 55 |
+
mov.u32 %r26, %ctaid.x;
|
| 56 |
+
.loc 1 19 33 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:19:33
|
| 57 |
+
shl.b32 %r27, %r26, 10;
|
| 58 |
+
.loc 1 20 36 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:20:36
|
| 59 |
+
mov.u32 %r28, %tid.x;
|
| 60 |
+
shl.b32 %r29, %r28, 3;
|
| 61 |
+
and.b32 %r30, %r29, 1016;
|
| 62 |
+
.loc 1 20 23 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:20:23
|
| 63 |
+
or.b32 %r1, %r30, %r27;
|
| 64 |
+
or.b32 %r2, %r1, 1;
|
| 65 |
+
or.b32 %r3, %r1, 2;
|
| 66 |
+
.loc 1 23 21 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:23:21
|
| 67 |
+
cvt.s64.s32 %rd7, %r2;
|
| 68 |
+
cvt.s64.s32 %rd8, %r1;
|
| 69 |
+
or.b64 %rd108, %rd8, %rd103;
|
| 70 |
+
and.b64 %rd109, %rd108, -4294967296;
|
| 71 |
+
setp.ne.b64 %p9, %rd109, 0;
|
| 72 |
+
@%p9 bra $L__BB0_2;
|
| 73 |
+
bra.uni $L__BB0_1;
|
| 74 |
+
$L__BB0_2:
|
| 75 |
+
div.s64 %rd484, %rd8, %rd103;
|
| 76 |
+
bra.uni $L__BB0_3;
|
| 77 |
+
$L__BB0_1:
|
| 78 |
+
cvt.u32.u64 %r31, %rd103;
|
| 79 |
+
cvt.u32.u64 %r32, %rd8;
|
| 80 |
+
div.u32 %r33, %r32, %r31;
|
| 81 |
+
cvt.u64.u32 %rd484, %r33;
|
| 82 |
+
$L__BB0_3:
|
| 83 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 84 |
+
or.b32 %r4, %r1, 3;
|
| 85 |
+
.loc 1 23 21 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:23:21
|
| 86 |
+
cvt.s64.s32 %rd6, %r3;
|
| 87 |
+
or.b64 %rd110, %rd7, %rd103;
|
| 88 |
+
and.b64 %rd111, %rd110, -4294967296;
|
| 89 |
+
setp.ne.b64 %p10, %rd111, 0;
|
| 90 |
+
@%p10 bra $L__BB0_5;
|
| 91 |
+
bra.uni $L__BB0_4;
|
| 92 |
+
$L__BB0_5:
|
| 93 |
+
div.s64 %rd485, %rd7, %rd103;
|
| 94 |
+
bra.uni $L__BB0_6;
|
| 95 |
+
$L__BB0_4:
|
| 96 |
+
cvt.u32.u64 %r34, %rd103;
|
| 97 |
+
cvt.u32.u64 %r35, %rd7;
|
| 98 |
+
div.u32 %r36, %r35, %r34;
|
| 99 |
+
cvt.u64.u32 %rd485, %r36;
|
| 100 |
+
$L__BB0_6:
|
| 101 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 102 |
+
or.b32 %r5, %r1, 4;
|
| 103 |
+
.loc 1 23 21 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:23:21
|
| 104 |
+
cvt.s64.s32 %rd5, %r4;
|
| 105 |
+
or.b64 %rd112, %rd6, %rd103;
|
| 106 |
+
and.b64 %rd113, %rd112, -4294967296;
|
| 107 |
+
setp.ne.b64 %p11, %rd113, 0;
|
| 108 |
+
@%p11 bra $L__BB0_8;
|
| 109 |
+
bra.uni $L__BB0_7;
|
| 110 |
+
$L__BB0_8:
|
| 111 |
+
div.s64 %rd486, %rd6, %rd103;
|
| 112 |
+
bra.uni $L__BB0_9;
|
| 113 |
+
$L__BB0_7:
|
| 114 |
+
cvt.u32.u64 %r37, %rd103;
|
| 115 |
+
cvt.u32.u64 %r38, %rd6;
|
| 116 |
+
div.u32 %r39, %r38, %r37;
|
| 117 |
+
cvt.u64.u32 %rd486, %r39;
|
| 118 |
+
$L__BB0_9:
|
| 119 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 120 |
+
or.b32 %r6, %r1, 5;
|
| 121 |
+
.loc 1 23 21 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:23:21
|
| 122 |
+
cvt.s64.s32 %rd4, %r5;
|
| 123 |
+
or.b64 %rd114, %rd5, %rd103;
|
| 124 |
+
and.b64 %rd115, %rd114, -4294967296;
|
| 125 |
+
setp.ne.b64 %p12, %rd115, 0;
|
| 126 |
+
@%p12 bra $L__BB0_11;
|
| 127 |
+
bra.uni $L__BB0_10;
|
| 128 |
+
$L__BB0_11:
|
| 129 |
+
div.s64 %rd487, %rd5, %rd103;
|
| 130 |
+
bra.uni $L__BB0_12;
|
| 131 |
+
$L__BB0_10:
|
| 132 |
+
cvt.u32.u64 %r40, %rd103;
|
| 133 |
+
cvt.u32.u64 %r41, %rd5;
|
| 134 |
+
div.u32 %r42, %r41, %r40;
|
| 135 |
+
cvt.u64.u32 %rd487, %r42;
|
| 136 |
+
$L__BB0_12:
|
| 137 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 138 |
+
or.b32 %r7, %r1, 6;
|
| 139 |
+
.loc 1 23 21 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:23:21
|
| 140 |
+
cvt.s64.s32 %rd3, %r6;
|
| 141 |
+
or.b64 %rd116, %rd4, %rd103;
|
| 142 |
+
and.b64 %rd117, %rd116, -4294967296;
|
| 143 |
+
setp.ne.b64 %p13, %rd117, 0;
|
| 144 |
+
@%p13 bra $L__BB0_14;
|
| 145 |
+
bra.uni $L__BB0_13;
|
| 146 |
+
$L__BB0_14:
|
| 147 |
+
div.s64 %rd488, %rd4, %rd103;
|
| 148 |
+
bra.uni $L__BB0_15;
|
| 149 |
+
$L__BB0_13:
|
| 150 |
+
cvt.u32.u64 %r43, %rd103;
|
| 151 |
+
cvt.u32.u64 %r44, %rd4;
|
| 152 |
+
div.u32 %r45, %r44, %r43;
|
| 153 |
+
cvt.u64.u32 %rd488, %r45;
|
| 154 |
+
$L__BB0_15:
|
| 155 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 156 |
+
or.b32 %r8, %r1, 7;
|
| 157 |
+
.loc 1 23 21 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:23:21
|
| 158 |
+
cvt.s64.s32 %rd2, %r7;
|
| 159 |
+
or.b64 %rd118, %rd3, %rd103;
|
| 160 |
+
and.b64 %rd119, %rd118, -4294967296;
|
| 161 |
+
setp.ne.b64 %p14, %rd119, 0;
|
| 162 |
+
@%p14 bra $L__BB0_17;
|
| 163 |
+
bra.uni $L__BB0_16;
|
| 164 |
+
$L__BB0_17:
|
| 165 |
+
div.s64 %rd489, %rd3, %rd103;
|
| 166 |
+
bra.uni $L__BB0_18;
|
| 167 |
+
$L__BB0_16:
|
| 168 |
+
cvt.u32.u64 %r46, %rd103;
|
| 169 |
+
cvt.u32.u64 %r47, %rd3;
|
| 170 |
+
div.u32 %r48, %r47, %r46;
|
| 171 |
+
cvt.u64.u32 %rd489, %r48;
|
| 172 |
+
$L__BB0_18:
|
| 173 |
+
cvt.s64.s32 %rd1, %r8;
|
| 174 |
+
or.b64 %rd120, %rd2, %rd103;
|
| 175 |
+
and.b64 %rd121, %rd120, -4294967296;
|
| 176 |
+
setp.ne.b64 %p15, %rd121, 0;
|
| 177 |
+
@%p15 bra $L__BB0_20;
|
| 178 |
+
bra.uni $L__BB0_19;
|
| 179 |
+
$L__BB0_20:
|
| 180 |
+
div.s64 %rd490, %rd2, %rd103;
|
| 181 |
+
bra.uni $L__BB0_21;
|
| 182 |
+
$L__BB0_19:
|
| 183 |
+
cvt.u32.u64 %r49, %rd103;
|
| 184 |
+
cvt.u32.u64 %r50, %rd2;
|
| 185 |
+
div.u32 %r51, %r50, %r49;
|
| 186 |
+
cvt.u64.u32 %rd490, %r51;
|
| 187 |
+
$L__BB0_21:
|
| 188 |
+
.loc 1 0 21 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0:21
|
| 189 |
+
ld.param.b64 %rd104, [triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_6];
|
| 190 |
+
.loc 1 23 21 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:23:21
|
| 191 |
+
or.b64 %rd122, %rd1, %rd103;
|
| 192 |
+
and.b64 %rd123, %rd122, -4294967296;
|
| 193 |
+
setp.ne.b64 %p16, %rd123, 0;
|
| 194 |
+
@%p16 bra $L__BB0_23;
|
| 195 |
+
bra.uni $L__BB0_22;
|
| 196 |
+
$L__BB0_23:
|
| 197 |
+
div.s64 %rd491, %rd1, %rd103;
|
| 198 |
+
bra.uni $L__BB0_24;
|
| 199 |
+
$L__BB0_22:
|
| 200 |
+
cvt.u32.u64 %r52, %rd103;
|
| 201 |
+
cvt.u32.u64 %r53, %rd1;
|
| 202 |
+
div.u32 %r54, %r53, %r52;
|
| 203 |
+
cvt.u64.u32 %rd491, %r54;
|
| 204 |
+
$L__BB0_24:
|
| 205 |
+
.loc 1 23 28 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:23:28
|
| 206 |
+
or.b64 %rd124, %rd484, %rd104;
|
| 207 |
+
and.b64 %rd125, %rd124, -4294967296;
|
| 208 |
+
setp.ne.b64 %p17, %rd125, 0;
|
| 209 |
+
@%p17 bra $L__BB0_26;
|
| 210 |
+
bra.uni $L__BB0_25;
|
| 211 |
+
$L__BB0_26:
|
| 212 |
+
rem.s64 %rd492, %rd484, %rd104;
|
| 213 |
+
bra.uni $L__BB0_27;
|
| 214 |
+
$L__BB0_25:
|
| 215 |
+
cvt.u32.u64 %r55, %rd104;
|
| 216 |
+
cvt.u32.u64 %r56, %rd484;
|
| 217 |
+
rem.u32 %r57, %r56, %r55;
|
| 218 |
+
cvt.u64.u32 %rd492, %r57;
|
| 219 |
+
$L__BB0_27:
|
| 220 |
+
or.b64 %rd126, %rd485, %rd104;
|
| 221 |
+
and.b64 %rd127, %rd126, -4294967296;
|
| 222 |
+
setp.ne.b64 %p18, %rd127, 0;
|
| 223 |
+
@%p18 bra $L__BB0_29;
|
| 224 |
+
bra.uni $L__BB0_28;
|
| 225 |
+
$L__BB0_29:
|
| 226 |
+
rem.s64 %rd493, %rd485, %rd104;
|
| 227 |
+
bra.uni $L__BB0_30;
|
| 228 |
+
$L__BB0_28:
|
| 229 |
+
cvt.u32.u64 %r58, %rd104;
|
| 230 |
+
cvt.u32.u64 %r59, %rd485;
|
| 231 |
+
rem.u32 %r60, %r59, %r58;
|
| 232 |
+
cvt.u64.u32 %rd493, %r60;
|
| 233 |
+
$L__BB0_30:
|
| 234 |
+
or.b64 %rd128, %rd486, %rd104;
|
| 235 |
+
and.b64 %rd129, %rd128, -4294967296;
|
| 236 |
+
setp.ne.b64 %p19, %rd129, 0;
|
| 237 |
+
@%p19 bra $L__BB0_32;
|
| 238 |
+
bra.uni $L__BB0_31;
|
| 239 |
+
$L__BB0_32:
|
| 240 |
+
rem.s64 %rd494, %rd486, %rd104;
|
| 241 |
+
bra.uni $L__BB0_33;
|
| 242 |
+
$L__BB0_31:
|
| 243 |
+
cvt.u32.u64 %r61, %rd104;
|
| 244 |
+
cvt.u32.u64 %r62, %rd486;
|
| 245 |
+
rem.u32 %r63, %r62, %r61;
|
| 246 |
+
cvt.u64.u32 %rd494, %r63;
|
| 247 |
+
$L__BB0_33:
|
| 248 |
+
or.b64 %rd130, %rd487, %rd104;
|
| 249 |
+
and.b64 %rd131, %rd130, -4294967296;
|
| 250 |
+
setp.ne.b64 %p20, %rd131, 0;
|
| 251 |
+
@%p20 bra $L__BB0_35;
|
| 252 |
+
bra.uni $L__BB0_34;
|
| 253 |
+
$L__BB0_35:
|
| 254 |
+
rem.s64 %rd495, %rd487, %rd104;
|
| 255 |
+
bra.uni $L__BB0_36;
|
| 256 |
+
$L__BB0_34:
|
| 257 |
+
cvt.u32.u64 %r64, %rd104;
|
| 258 |
+
cvt.u32.u64 %r65, %rd487;
|
| 259 |
+
rem.u32 %r66, %r65, %r64;
|
| 260 |
+
cvt.u64.u32 %rd495, %r66;
|
| 261 |
+
$L__BB0_36:
|
| 262 |
+
or.b64 %rd132, %rd488, %rd104;
|
| 263 |
+
and.b64 %rd133, %rd132, -4294967296;
|
| 264 |
+
setp.ne.b64 %p21, %rd133, 0;
|
| 265 |
+
@%p21 bra $L__BB0_38;
|
| 266 |
+
bra.uni $L__BB0_37;
|
| 267 |
+
$L__BB0_38:
|
| 268 |
+
rem.s64 %rd496, %rd488, %rd104;
|
| 269 |
+
bra.uni $L__BB0_39;
|
| 270 |
+
$L__BB0_37:
|
| 271 |
+
cvt.u32.u64 %r67, %rd104;
|
| 272 |
+
cvt.u32.u64 %r68, %rd488;
|
| 273 |
+
rem.u32 %r69, %r68, %r67;
|
| 274 |
+
cvt.u64.u32 %rd496, %r69;
|
| 275 |
+
$L__BB0_39:
|
| 276 |
+
or.b64 %rd134, %rd489, %rd104;
|
| 277 |
+
and.b64 %rd135, %rd134, -4294967296;
|
| 278 |
+
setp.ne.b64 %p22, %rd135, 0;
|
| 279 |
+
@%p22 bra $L__BB0_41;
|
| 280 |
+
bra.uni $L__BB0_40;
|
| 281 |
+
$L__BB0_41:
|
| 282 |
+
rem.s64 %rd497, %rd489, %rd104;
|
| 283 |
+
bra.uni $L__BB0_42;
|
| 284 |
+
$L__BB0_40:
|
| 285 |
+
cvt.u32.u64 %r70, %rd104;
|
| 286 |
+
cvt.u32.u64 %r71, %rd489;
|
| 287 |
+
rem.u32 %r72, %r71, %r70;
|
| 288 |
+
cvt.u64.u32 %rd497, %r72;
|
| 289 |
+
$L__BB0_42:
|
| 290 |
+
or.b64 %rd136, %rd490, %rd104;
|
| 291 |
+
and.b64 %rd137, %rd136, -4294967296;
|
| 292 |
+
setp.ne.b64 %p23, %rd137, 0;
|
| 293 |
+
@%p23 bra $L__BB0_44;
|
| 294 |
+
bra.uni $L__BB0_43;
|
| 295 |
+
$L__BB0_44:
|
| 296 |
+
rem.s64 %rd498, %rd490, %rd104;
|
| 297 |
+
bra.uni $L__BB0_45;
|
| 298 |
+
$L__BB0_43:
|
| 299 |
+
cvt.u32.u64 %r73, %rd104;
|
| 300 |
+
cvt.u32.u64 %r74, %rd490;
|
| 301 |
+
rem.u32 %r75, %r74, %r73;
|
| 302 |
+
cvt.u64.u32 %rd498, %r75;
|
| 303 |
+
$L__BB0_45:
|
| 304 |
+
.loc 1 0 28 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0:28
|
| 305 |
+
ld.param.b32 %r25, [triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_10];
|
| 306 |
+
ld.param.b64 %rd105, [triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_7];
|
| 307 |
+
ld.param.b64 %rd99, [triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_1];
|
| 308 |
+
ld.param.b64 %rd98, [triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_0];
|
| 309 |
+
.loc 1 23 28 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:23:28
|
| 310 |
+
or.b64 %rd138, %rd491, %rd104;
|
| 311 |
+
and.b64 %rd139, %rd138, -4294967296;
|
| 312 |
+
setp.ne.b64 %p24, %rd139, 0;
|
| 313 |
+
@%p24 bra $L__BB0_47;
|
| 314 |
+
bra.uni $L__BB0_46;
|
| 315 |
+
$L__BB0_47:
|
| 316 |
+
rem.s64 %rd499, %rd491, %rd104;
|
| 317 |
+
bra.uni $L__BB0_48;
|
| 318 |
+
$L__BB0_46:
|
| 319 |
+
cvt.u32.u64 %r76, %rd104;
|
| 320 |
+
cvt.u32.u64 %r77, %rd491;
|
| 321 |
+
rem.u32 %r78, %r77, %r76;
|
| 322 |
+
cvt.u64.u32 %rd499, %r78;
|
| 323 |
+
$L__BB0_48:
|
| 324 |
+
.loc 1 26 30 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:26:30
|
| 325 |
+
shl.b64 %rd196, %rd8, 1;
|
| 326 |
+
add.s64 %rd141, %rd98, %rd196;
|
| 327 |
+
shl.b64 %rd197, %rd7, 1;
|
| 328 |
+
add.s64 %rd144, %rd98, %rd197;
|
| 329 |
+
shl.b64 %rd198, %rd6, 1;
|
| 330 |
+
add.s64 %rd147, %rd98, %rd198;
|
| 331 |
+
shl.b64 %rd199, %rd5, 1;
|
| 332 |
+
add.s64 %rd150, %rd98, %rd199;
|
| 333 |
+
shl.b64 %rd200, %rd4, 1;
|
| 334 |
+
add.s64 %rd153, %rd98, %rd200;
|
| 335 |
+
shl.b64 %rd201, %rd3, 1;
|
| 336 |
+
add.s64 %rd156, %rd98, %rd201;
|
| 337 |
+
shl.b64 %rd202, %rd2, 1;
|
| 338 |
+
add.s64 %rd159, %rd98, %rd202;
|
| 339 |
+
shl.b64 %rd203, %rd1, 1;
|
| 340 |
+
add.s64 %rd162, %rd98, %rd203;
|
| 341 |
+
.loc 1 26 35 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:26:35
|
| 342 |
+
// begin inline asm
|
| 343 |
+
mov.u64 %rd140, 0x0;
|
| 344 |
+
createpolicy.fractional.L2::evict_last.b64 %rd140, 1.0;
|
| 345 |
+
// end inline asm
|
| 346 |
+
.loc 1 27 30 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:27:30
|
| 347 |
+
shl.b64 %rd204, %rd492, 3;
|
| 348 |
+
add.s64 %rd166, %rd99, %rd204;
|
| 349 |
+
shl.b64 %rd205, %rd493, 3;
|
| 350 |
+
add.s64 %rd170, %rd99, %rd205;
|
| 351 |
+
shl.b64 %rd206, %rd494, 3;
|
| 352 |
+
add.s64 %rd174, %rd99, %rd206;
|
| 353 |
+
shl.b64 %rd207, %rd495, 3;
|
| 354 |
+
add.s64 %rd178, %rd99, %rd207;
|
| 355 |
+
shl.b64 %rd208, %rd496, 3;
|
| 356 |
+
add.s64 %rd182, %rd99, %rd208;
|
| 357 |
+
shl.b64 %rd209, %rd497, 3;
|
| 358 |
+
add.s64 %rd186, %rd99, %rd209;
|
| 359 |
+
shl.b64 %rd210, %rd498, 3;
|
| 360 |
+
add.s64 %rd190, %rd99, %rd210;
|
| 361 |
+
shl.b64 %rd211, %rd499, 3;
|
| 362 |
+
add.s64 %rd194, %rd99, %rd211;
|
| 363 |
+
.loc 1 21 21 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:21:21
|
| 364 |
+
setp.lt.s32 %p8, %r8, %r25;
|
| 365 |
+
setp.lt.s32 %p7, %r7, %r25;
|
| 366 |
+
setp.lt.s32 %p6, %r6, %r25;
|
| 367 |
+
setp.lt.s32 %p5, %r5, %r25;
|
| 368 |
+
setp.lt.s32 %p4, %r4, %r25;
|
| 369 |
+
setp.lt.s32 %p3, %r3, %r25;
|
| 370 |
+
setp.lt.s32 %p2, %r2, %r25;
|
| 371 |
+
setp.lt.s32 %p1, %r1, %r25;
|
| 372 |
+
.loc 1 26 35 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:26:35
|
| 373 |
+
// begin inline asm
|
| 374 |
+
mov.u16 %rs33, 0x0;
|
| 375 |
+
@%p1 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs33 }, [ %rd141 + 0 ], %rd140;
|
| 376 |
+
// end inline asm
|
| 377 |
+
// begin inline asm
|
| 378 |
+
mov.u64 %rd143, 0x0;
|
| 379 |
+
createpolicy.fractional.L2::evict_last.b64 %rd143, 1.0;
|
| 380 |
+
// end inline asm
|
| 381 |
+
// begin inline asm
|
| 382 |
+
mov.u16 %rs34, 0x0;
|
| 383 |
+
@%p2 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs34 }, [ %rd144 + 0 ], %rd143;
|
| 384 |
+
// end inline asm
|
| 385 |
+
// begin inline asm
|
| 386 |
+
mov.u64 %rd146, 0x0;
|
| 387 |
+
createpolicy.fractional.L2::evict_last.b64 %rd146, 1.0;
|
| 388 |
+
// end inline asm
|
| 389 |
+
// begin inline asm
|
| 390 |
+
mov.u16 %rs35, 0x0;
|
| 391 |
+
@%p3 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs35 }, [ %rd147 + 0 ], %rd146;
|
| 392 |
+
// end inline asm
|
| 393 |
+
// begin inline asm
|
| 394 |
+
mov.u64 %rd149, 0x0;
|
| 395 |
+
createpolicy.fractional.L2::evict_last.b64 %rd149, 1.0;
|
| 396 |
+
// end inline asm
|
| 397 |
+
// begin inline asm
|
| 398 |
+
mov.u16 %rs36, 0x0;
|
| 399 |
+
@%p4 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs36 }, [ %rd150 + 0 ], %rd149;
|
| 400 |
+
// end inline asm
|
| 401 |
+
// begin inline asm
|
| 402 |
+
mov.u64 %rd152, 0x0;
|
| 403 |
+
createpolicy.fractional.L2::evict_last.b64 %rd152, 1.0;
|
| 404 |
+
// end inline asm
|
| 405 |
+
// begin inline asm
|
| 406 |
+
mov.u16 %rs37, 0x0;
|
| 407 |
+
@%p5 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs37 }, [ %rd153 + 0 ], %rd152;
|
| 408 |
+
// end inline asm
|
| 409 |
+
// begin inline asm
|
| 410 |
+
mov.u64 %rd155, 0x0;
|
| 411 |
+
createpolicy.fractional.L2::evict_last.b64 %rd155, 1.0;
|
| 412 |
+
// end inline asm
|
| 413 |
+
// begin inline asm
|
| 414 |
+
mov.u16 %rs38, 0x0;
|
| 415 |
+
@%p6 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs38 }, [ %rd156 + 0 ], %rd155;
|
| 416 |
+
// end inline asm
|
| 417 |
+
// begin inline asm
|
| 418 |
+
mov.u64 %rd158, 0x0;
|
| 419 |
+
createpolicy.fractional.L2::evict_last.b64 %rd158, 1.0;
|
| 420 |
+
// end inline asm
|
| 421 |
+
// begin inline asm
|
| 422 |
+
mov.u16 %rs39, 0x0;
|
| 423 |
+
@%p7 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs39 }, [ %rd159 + 0 ], %rd158;
|
| 424 |
+
// end inline asm
|
| 425 |
+
// begin inline asm
|
| 426 |
+
mov.u64 %rd161, 0x0;
|
| 427 |
+
createpolicy.fractional.L2::evict_last.b64 %rd161, 1.0;
|
| 428 |
+
// end inline asm
|
| 429 |
+
// begin inline asm
|
| 430 |
+
mov.u16 %rs40, 0x0;
|
| 431 |
+
@%p8 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs40 }, [ %rd162 + 0 ], %rd161;
|
| 432 |
+
// end inline asm
|
| 433 |
+
.loc 1 27 35 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:27:35
|
| 434 |
+
// begin inline asm
|
| 435 |
+
mov.u64 %rd164, 0x0;
|
| 436 |
+
createpolicy.fractional.L2::evict_last.b64 %rd164, 1.0;
|
| 437 |
+
// end inline asm
|
| 438 |
+
// begin inline asm
|
| 439 |
+
mov.u64 %rd165, 0x0;
|
| 440 |
+
@%p1 ld.global.L1::evict_last.L2::cache_hint.b64 { %rd165 }, [ %rd166 + 0 ], %rd164;
|
| 441 |
+
// end inline asm
|
| 442 |
+
// begin inline asm
|
| 443 |
+
mov.u64 %rd168, 0x0;
|
| 444 |
+
createpolicy.fractional.L2::evict_last.b64 %rd168, 1.0;
|
| 445 |
+
// end inline asm
|
| 446 |
+
// begin inline asm
|
| 447 |
+
mov.u64 %rd169, 0x0;
|
| 448 |
+
@%p2 ld.global.L1::evict_last.L2::cache_hint.b64 { %rd169 }, [ %rd170 + 0 ], %rd168;
|
| 449 |
+
// end inline asm
|
| 450 |
+
// begin inline asm
|
| 451 |
+
mov.u64 %rd172, 0x0;
|
| 452 |
+
createpolicy.fractional.L2::evict_last.b64 %rd172, 1.0;
|
| 453 |
+
// end inline asm
|
| 454 |
+
// begin inline asm
|
| 455 |
+
mov.u64 %rd173, 0x0;
|
| 456 |
+
@%p3 ld.global.L1::evict_last.L2::cache_hint.b64 { %rd173 }, [ %rd174 + 0 ], %rd172;
|
| 457 |
+
// end inline asm
|
| 458 |
+
// begin inline asm
|
| 459 |
+
mov.u64 %rd176, 0x0;
|
| 460 |
+
createpolicy.fractional.L2::evict_last.b64 %rd176, 1.0;
|
| 461 |
+
// end inline asm
|
| 462 |
+
// begin inline asm
|
| 463 |
+
mov.u64 %rd177, 0x0;
|
| 464 |
+
@%p4 ld.global.L1::evict_last.L2::cache_hint.b64 { %rd177 }, [ %rd178 + 0 ], %rd176;
|
| 465 |
+
// end inline asm
|
| 466 |
+
// begin inline asm
|
| 467 |
+
mov.u64 %rd180, 0x0;
|
| 468 |
+
createpolicy.fractional.L2::evict_last.b64 %rd180, 1.0;
|
| 469 |
+
// end inline asm
|
| 470 |
+
// begin inline asm
|
| 471 |
+
mov.u64 %rd181, 0x0;
|
| 472 |
+
@%p5 ld.global.L1::evict_last.L2::cache_hint.b64 { %rd181 }, [ %rd182 + 0 ], %rd180;
|
| 473 |
+
// end inline asm
|
| 474 |
+
// begin inline asm
|
| 475 |
+
mov.u64 %rd184, 0x0;
|
| 476 |
+
createpolicy.fractional.L2::evict_last.b64 %rd184, 1.0;
|
| 477 |
+
// end inline asm
|
| 478 |
+
// begin inline asm
|
| 479 |
+
mov.u64 %rd185, 0x0;
|
| 480 |
+
@%p6 ld.global.L1::evict_last.L2::cache_hint.b64 { %rd185 }, [ %rd186 + 0 ], %rd184;
|
| 481 |
+
// end inline asm
|
| 482 |
+
// begin inline asm
|
| 483 |
+
mov.u64 %rd188, 0x0;
|
| 484 |
+
createpolicy.fractional.L2::evict_last.b64 %rd188, 1.0;
|
| 485 |
+
// end inline asm
|
| 486 |
+
// begin inline asm
|
| 487 |
+
mov.u64 %rd189, 0x0;
|
| 488 |
+
@%p7 ld.global.L1::evict_last.L2::cache_hint.b64 { %rd189 }, [ %rd190 + 0 ], %rd188;
|
| 489 |
+
// end inline asm
|
| 490 |
+
// begin inline asm
|
| 491 |
+
mov.u64 %rd192, 0x0;
|
| 492 |
+
createpolicy.fractional.L2::evict_last.b64 %rd192, 1.0;
|
| 493 |
+
// end inline asm
|
| 494 |
+
// begin inline asm
|
| 495 |
+
mov.u64 %rd193, 0x0;
|
| 496 |
+
@%p8 ld.global.L1::evict_last.L2::cache_hint.b64 { %rd193 }, [ %rd194 + 0 ], %rd192;
|
| 497 |
+
// end inline asm
|
| 498 |
+
.loc 1 31 32 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:31:32
|
| 499 |
+
shr.s64 %rd212, %rd173, 63;
|
| 500 |
+
and.b64 %rd213, %rd212, %rd105;
|
| 501 |
+
shr.s64 %rd214, %rd177, 63;
|
| 502 |
+
and.b64 %rd215, %rd214, %rd105;
|
| 503 |
+
shr.s64 %rd216, %rd165, 63;
|
| 504 |
+
and.b64 %rd217, %rd216, %rd105;
|
| 505 |
+
shr.s64 %rd218, %rd169, 63;
|
| 506 |
+
and.b64 %rd219, %rd218, %rd105;
|
| 507 |
+
shr.s64 %rd220, %rd189, 63;
|
| 508 |
+
and.b64 %rd221, %rd220, %rd105;
|
| 509 |
+
shr.s64 %rd222, %rd193, 63;
|
| 510 |
+
and.b64 %rd223, %rd222, %rd105;
|
| 511 |
+
shr.s64 %rd224, %rd181, 63;
|
| 512 |
+
and.b64 %rd225, %rd224, %rd105;
|
| 513 |
+
shr.s64 %rd226, %rd185, 63;
|
| 514 |
+
and.b64 %rd227, %rd226, %rd105;
|
| 515 |
+
add.s64 %rd78, %rd227, %rd185;
|
| 516 |
+
add.s64 %rd77, %rd225, %rd181;
|
| 517 |
+
add.s64 %rd80, %rd223, %rd193;
|
| 518 |
+
add.s64 %rd79, %rd221, %rd189;
|
| 519 |
+
add.s64 %rd74, %rd219, %rd169;
|
| 520 |
+
add.s64 %rd73, %rd217, %rd165;
|
| 521 |
+
add.s64 %rd76, %rd215, %rd177;
|
| 522 |
+
add.s64 %rd75, %rd213, %rd173;
|
| 523 |
+
.loc 1 32 28 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:32:28
|
| 524 |
+
setp.lt.s64 %p41, %rd75, 0;
|
| 525 |
+
setp.lt.s64 %p42, %rd76, 0;
|
| 526 |
+
setp.lt.s64 %p43, %rd73, 0;
|
| 527 |
+
setp.lt.s64 %p44, %rd74, 0;
|
| 528 |
+
setp.lt.s64 %p45, %rd79, 0;
|
| 529 |
+
setp.lt.s64 %p46, %rd80, 0;
|
| 530 |
+
setp.lt.s64 %p47, %rd77, 0;
|
| 531 |
+
setp.lt.s64 %p48, %rd78, 0;
|
| 532 |
+
.loc 1 32 44 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:32:44
|
| 533 |
+
setp.ge.s64 %p49, %rd75, %rd105;
|
| 534 |
+
setp.ge.s64 %p50, %rd76, %rd105;
|
| 535 |
+
setp.ge.s64 %p51, %rd73, %rd105;
|
| 536 |
+
setp.ge.s64 %p52, %rd74, %rd105;
|
| 537 |
+
setp.ge.s64 %p53, %rd79, %rd105;
|
| 538 |
+
setp.ge.s64 %p54, %rd80, %rd105;
|
| 539 |
+
setp.ge.s64 %p55, %rd77, %rd105;
|
| 540 |
+
setp.ge.s64 %p56, %rd78, %rd105;
|
| 541 |
+
.loc 1 32 37 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:32:37
|
| 542 |
+
or.pred %p57, %p48, %p56;
|
| 543 |
+
or.pred %p58, %p47, %p55;
|
| 544 |
+
or.pred %p59, %p46, %p54;
|
| 545 |
+
or.pred %p60, %p45, %p53;
|
| 546 |
+
or.pred %p61, %p44, %p52;
|
| 547 |
+
or.pred %p62, %p43, %p51;
|
| 548 |
+
or.pred %p63, %p42, %p50;
|
| 549 |
+
or.pred %p64, %p41, %p49;
|
| 550 |
+
.loc 1 32 52 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:32:52
|
| 551 |
+
and.pred %p65, %p3, %p64;
|
| 552 |
+
selp.b16 %rs41, 1, 0, %p65;
|
| 553 |
+
shl.b16 %rs42, %rs41, 2;
|
| 554 |
+
and.pred %p66, %p4, %p63;
|
| 555 |
+
selp.b16 %rs43, -1, 0, %p66;
|
| 556 |
+
shl.b16 %rs44, %rs43, 3;
|
| 557 |
+
or.b16 %rs45, %rs44, %rs42;
|
| 558 |
+
and.pred %p67, %p1, %p62;
|
| 559 |
+
selp.b16 %rs46, 1, 0, %p67;
|
| 560 |
+
and.pred %p68, %p2, %p61;
|
| 561 |
+
selp.b16 %rs47, -1, 0, %p68;
|
| 562 |
+
shl.b16 %rs48, %rs47, 1;
|
| 563 |
+
or.b16 %rs49, %rs46, %rs48;
|
| 564 |
+
and.b16 %rs50, %rs49, 3;
|
| 565 |
+
or.b16 %rs51, %rs50, %rs45;
|
| 566 |
+
and.b16 %rs52, %rs51, 15;
|
| 567 |
+
and.pred %p69, %p7, %p60;
|
| 568 |
+
selp.b16 %rs53, 1, 0, %p69;
|
| 569 |
+
shl.b16 %rs54, %rs53, 2;
|
| 570 |
+
and.pred %p70, %p8, %p59;
|
| 571 |
+
selp.b16 %rs55, -1, 0, %p70;
|
| 572 |
+
shl.b16 %rs56, %rs55, 3;
|
| 573 |
+
or.b16 %rs57, %rs56, %rs54;
|
| 574 |
+
and.pred %p71, %p5, %p58;
|
| 575 |
+
selp.b16 %rs58, 1, 0, %p71;
|
| 576 |
+
and.pred %p72, %p6, %p57;
|
| 577 |
+
selp.b16 %rs59, -1, 0, %p72;
|
| 578 |
+
shl.b16 %rs60, %rs59, 1;
|
| 579 |
+
or.b16 %rs61, %rs58, %rs60;
|
| 580 |
+
and.b16 %rs62, %rs61, 3;
|
| 581 |
+
or.b16 %rs63, %rs62, %rs57;
|
| 582 |
+
shl.b16 %rs64, %rs63, 4;
|
| 583 |
+
or.b16 %rs65, %rs52, %rs64;
|
| 584 |
+
.loc 1 32 62 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:32:62
|
| 585 |
+
and.b16 %rs66, %rs65, 255;
|
| 586 |
+
setp.eq.b16 %p73, %rs66, 0;
|
| 587 |
+
@%p73 bra $L__BB0_50;
|
| 588 |
+
bra.uni $L__BB0_49;
|
| 589 |
+
$L__BB0_50:
|
| 590 |
+
.loc 1 0 62 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0:62
|
| 591 |
+
ld.param.b64 %rd107, [triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_9];
|
| 592 |
+
ld.param.b64 %rd106, [triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_8];
|
| 593 |
+
ld.param.b64 %rd100, [triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_2];
|
| 594 |
+
.loc 1 24 19 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:24:19
|
| 595 |
+
rem.s64 %rd88, %rd1, %rd106;
|
| 596 |
+
rem.s64 %rd87, %rd2, %rd106;
|
| 597 |
+
rem.s64 %rd86, %rd3, %rd106;
|
| 598 |
+
rem.s64 %rd85, %rd4, %rd106;
|
| 599 |
+
rem.s64 %rd84, %rd5, %rd106;
|
| 600 |
+
rem.s64 %rd83, %rd6, %rd106;
|
| 601 |
+
rem.s64 %rd82, %rd7, %rd106;
|
| 602 |
+
rem.s64 %rd81, %rd8, %rd106;
|
| 603 |
+
.loc 1 32 62 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:32:62
|
| 604 |
+
bar.sync 0;
|
| 605 |
+
.loc 1 33 39 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:39
|
| 606 |
+
mul.lo.s64 %rd306, %rd73, %rd106;
|
| 607 |
+
mul.lo.s64 %rd307, %rd74, %rd106;
|
| 608 |
+
mul.lo.s64 %rd308, %rd75, %rd106;
|
| 609 |
+
mul.lo.s64 %rd309, %rd76, %rd106;
|
| 610 |
+
mul.lo.s64 %rd310, %rd77, %rd106;
|
| 611 |
+
mul.lo.s64 %rd311, %rd78, %rd106;
|
| 612 |
+
mul.lo.s64 %rd312, %rd79, %rd106;
|
| 613 |
+
mul.lo.s64 %rd313, %rd80, %rd106;
|
| 614 |
+
.loc 1 33 30 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:30
|
| 615 |
+
shl.b64 %rd314, %rd81, 1;
|
| 616 |
+
add.s64 %rd315, %rd100, %rd314;
|
| 617 |
+
shl.b64 %rd316, %rd306, 1;
|
| 618 |
+
add.s64 %rd235, %rd315, %rd316;
|
| 619 |
+
shl.b64 %rd317, %rd82, 1;
|
| 620 |
+
add.s64 %rd318, %rd100, %rd317;
|
| 621 |
+
shl.b64 %rd319, %rd307, 1;
|
| 622 |
+
add.s64 %rd238, %rd318, %rd319;
|
| 623 |
+
shl.b64 %rd320, %rd83, 1;
|
| 624 |
+
add.s64 %rd321, %rd100, %rd320;
|
| 625 |
+
shl.b64 %rd322, %rd308, 1;
|
| 626 |
+
add.s64 %rd241, %rd321, %rd322;
|
| 627 |
+
shl.b64 %rd323, %rd84, 1;
|
| 628 |
+
add.s64 %rd324, %rd100, %rd323;
|
| 629 |
+
shl.b64 %rd325, %rd309, 1;
|
| 630 |
+
add.s64 %rd244, %rd324, %rd325;
|
| 631 |
+
shl.b64 %rd326, %rd85, 1;
|
| 632 |
+
add.s64 %rd327, %rd100, %rd326;
|
| 633 |
+
shl.b64 %rd328, %rd310, 1;
|
| 634 |
+
add.s64 %rd247, %rd327, %rd328;
|
| 635 |
+
shl.b64 %rd329, %rd86, 1;
|
| 636 |
+
add.s64 %rd330, %rd100, %rd329;
|
| 637 |
+
shl.b64 %rd331, %rd311, 1;
|
| 638 |
+
add.s64 %rd250, %rd330, %rd331;
|
| 639 |
+
shl.b64 %rd332, %rd87, 1;
|
| 640 |
+
add.s64 %rd333, %rd100, %rd332;
|
| 641 |
+
shl.b64 %rd334, %rd312, 1;
|
| 642 |
+
add.s64 %rd253, %rd333, %rd334;
|
| 643 |
+
shl.b64 %rd335, %rd88, 1;
|
| 644 |
+
add.s64 %rd336, %rd100, %rd335;
|
| 645 |
+
shl.b64 %rd337, %rd313, 1;
|
| 646 |
+
add.s64 %rd256, %rd336, %rd337;
|
| 647 |
+
.loc 1 33 46 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:46
|
| 648 |
+
// begin inline asm
|
| 649 |
+
mov.u64 %rd234, 0x0;
|
| 650 |
+
createpolicy.fractional.L2::evict_last.b64 %rd234, 1.0;
|
| 651 |
+
// end inline asm
|
| 652 |
+
// begin inline asm
|
| 653 |
+
mov.u16 %rs67, 0x0;
|
| 654 |
+
@%p1 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs67 }, [ %rd235 + 0 ], %rd234;
|
| 655 |
+
// end inline asm
|
| 656 |
+
// begin inline asm
|
| 657 |
+
mov.u64 %rd237, 0x0;
|
| 658 |
+
createpolicy.fractional.L2::evict_last.b64 %rd237, 1.0;
|
| 659 |
+
// end inline asm
|
| 660 |
+
// begin inline asm
|
| 661 |
+
mov.u16 %rs68, 0x0;
|
| 662 |
+
@%p2 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs68 }, [ %rd238 + 0 ], %rd237;
|
| 663 |
+
// end inline asm
|
| 664 |
+
// begin inline asm
|
| 665 |
+
mov.u64 %rd240, 0x0;
|
| 666 |
+
createpolicy.fractional.L2::evict_last.b64 %rd240, 1.0;
|
| 667 |
+
// end inline asm
|
| 668 |
+
// begin inline asm
|
| 669 |
+
mov.u16 %rs69, 0x0;
|
| 670 |
+
@%p3 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs69 }, [ %rd241 + 0 ], %rd240;
|
| 671 |
+
// end inline asm
|
| 672 |
+
// begin inline asm
|
| 673 |
+
mov.u64 %rd243, 0x0;
|
| 674 |
+
createpolicy.fractional.L2::evict_last.b64 %rd243, 1.0;
|
| 675 |
+
// end inline asm
|
| 676 |
+
// begin inline asm
|
| 677 |
+
mov.u16 %rs70, 0x0;
|
| 678 |
+
@%p4 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs70 }, [ %rd244 + 0 ], %rd243;
|
| 679 |
+
// end inline asm
|
| 680 |
+
// begin inline asm
|
| 681 |
+
mov.u64 %rd246, 0x0;
|
| 682 |
+
createpolicy.fractional.L2::evict_last.b64 %rd246, 1.0;
|
| 683 |
+
// end inline asm
|
| 684 |
+
// begin inline asm
|
| 685 |
+
mov.u16 %rs71, 0x0;
|
| 686 |
+
@%p5 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs71 }, [ %rd247 + 0 ], %rd246;
|
| 687 |
+
// end inline asm
|
| 688 |
+
// begin inline asm
|
| 689 |
+
mov.u64 %rd249, 0x0;
|
| 690 |
+
createpolicy.fractional.L2::evict_last.b64 %rd249, 1.0;
|
| 691 |
+
// end inline asm
|
| 692 |
+
// begin inline asm
|
| 693 |
+
mov.u16 %rs72, 0x0;
|
| 694 |
+
@%p6 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs72 }, [ %rd250 + 0 ], %rd249;
|
| 695 |
+
// end inline asm
|
| 696 |
+
// begin inline asm
|
| 697 |
+
mov.u64 %rd252, 0x0;
|
| 698 |
+
createpolicy.fractional.L2::evict_last.b64 %rd252, 1.0;
|
| 699 |
+
// end inline asm
|
| 700 |
+
// begin inline asm
|
| 701 |
+
mov.u16 %rs73, 0x0;
|
| 702 |
+
@%p7 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs73 }, [ %rd253 + 0 ], %rd252;
|
| 703 |
+
// end inline asm
|
| 704 |
+
// begin inline asm
|
| 705 |
+
mov.u64 %rd255, 0x0;
|
| 706 |
+
createpolicy.fractional.L2::evict_last.b64 %rd255, 1.0;
|
| 707 |
+
// end inline asm
|
| 708 |
+
// begin inline asm
|
| 709 |
+
mov.u16 %rs74, 0x0;
|
| 710 |
+
@%p8 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs74 }, [ %rd256 + 0 ], %rd255;
|
| 711 |
+
// end inline asm
|
| 712 |
+
.loc 1 38 31 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:38:31
|
| 713 |
+
shr.u64 %rd338, %rd106, 63;
|
| 714 |
+
add.s64 %rd339, %rd106, %rd338;
|
| 715 |
+
shr.s64 %rd340, %rd339, 1;
|
| 716 |
+
.loc 1 38 18 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:38:18
|
| 717 |
+
sub.s64 %rd89, %rd106, %rd340;
|
| 718 |
+
.loc 1 39 19 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:39:19
|
| 719 |
+
setp.lt.s64 %p106, %rd81, %rd89;
|
| 720 |
+
setp.lt.s64 %p107, %rd82, %rd89;
|
| 721 |
+
setp.lt.s64 %p108, %rd83, %rd89;
|
| 722 |
+
setp.lt.s64 %p109, %rd84, %rd89;
|
| 723 |
+
setp.lt.s64 %p110, %rd85, %rd89;
|
| 724 |
+
setp.lt.s64 %p111, %rd86, %rd89;
|
| 725 |
+
setp.lt.s64 %p112, %rd87, %rd89;
|
| 726 |
+
setp.lt.s64 %p113, %rd88, %rd89;
|
| 727 |
+
.loc 1 40 35 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:40:35
|
| 728 |
+
sub.s64 %rd341, %rd8, %rd81;
|
| 729 |
+
sub.s64 %rd342, %rd7, %rd82;
|
| 730 |
+
sub.s64 %rd343, %rd6, %rd83;
|
| 731 |
+
sub.s64 %rd344, %rd5, %rd84;
|
| 732 |
+
sub.s64 %rd345, %rd4, %rd85;
|
| 733 |
+
sub.s64 %rd346, %rd3, %rd86;
|
| 734 |
+
sub.s64 %rd347, %rd2, %rd87;
|
| 735 |
+
sub.s64 %rd348, %rd1, %rd88;
|
| 736 |
+
.loc 1 40 31 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:40:31
|
| 737 |
+
shl.b64 %rd349, %rd341, 1;
|
| 738 |
+
add.s64 %rd350, %rd98, %rd349;
|
| 739 |
+
and.b64 %rd351, %rd339, -2;
|
| 740 |
+
add.s64 %rd352, %rd350, %rd351;
|
| 741 |
+
add.s64 %rd259, %rd352, %rd314;
|
| 742 |
+
shl.b64 %rd353, %rd342, 1;
|
| 743 |
+
add.s64 %rd354, %rd98, %rd353;
|
| 744 |
+
add.s64 %rd355, %rd354, %rd351;
|
| 745 |
+
add.s64 %rd262, %rd355, %rd317;
|
| 746 |
+
shl.b64 %rd356, %rd343, 1;
|
| 747 |
+
add.s64 %rd357, %rd98, %rd356;
|
| 748 |
+
add.s64 %rd358, %rd357, %rd351;
|
| 749 |
+
add.s64 %rd265, %rd358, %rd320;
|
| 750 |
+
shl.b64 %rd359, %rd344, 1;
|
| 751 |
+
add.s64 %rd360, %rd98, %rd359;
|
| 752 |
+
add.s64 %rd361, %rd360, %rd351;
|
| 753 |
+
add.s64 %rd268, %rd361, %rd323;
|
| 754 |
+
shl.b64 %rd362, %rd345, 1;
|
| 755 |
+
add.s64 %rd363, %rd98, %rd362;
|
| 756 |
+
add.s64 %rd364, %rd363, %rd351;
|
| 757 |
+
add.s64 %rd271, %rd364, %rd326;
|
| 758 |
+
shl.b64 %rd365, %rd346, 1;
|
| 759 |
+
add.s64 %rd366, %rd98, %rd365;
|
| 760 |
+
add.s64 %rd367, %rd366, %rd351;
|
| 761 |
+
add.s64 %rd274, %rd367, %rd329;
|
| 762 |
+
shl.b64 %rd368, %rd347, 1;
|
| 763 |
+
add.s64 %rd369, %rd98, %rd368;
|
| 764 |
+
add.s64 %rd370, %rd369, %rd351;
|
| 765 |
+
add.s64 %rd277, %rd370, %rd332;
|
| 766 |
+
shl.b64 %rd371, %rd348, 1;
|
| 767 |
+
add.s64 %rd372, %rd98, %rd371;
|
| 768 |
+
add.s64 %rd373, %rd372, %rd351;
|
| 769 |
+
add.s64 %rd280, %rd373, %rd335;
|
| 770 |
+
.loc 1 40 68 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:40:68
|
| 771 |
+
and.pred %p82, %p1, %p106;
|
| 772 |
+
and.pred %p83, %p2, %p107;
|
| 773 |
+
and.pred %p84, %p3, %p108;
|
| 774 |
+
and.pred %p85, %p4, %p109;
|
| 775 |
+
and.pred %p86, %p5, %p110;
|
| 776 |
+
and.pred %p87, %p6, %p111;
|
| 777 |
+
and.pred %p88, %p7, %p112;
|
| 778 |
+
and.pred %p89, %p8, %p113;
|
| 779 |
+
.loc 1 40 60 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:40:60
|
| 780 |
+
// begin inline asm
|
| 781 |
+
mov.u64 %rd258, 0x0;
|
| 782 |
+
createpolicy.fractional.L2::evict_last.b64 %rd258, 1.0;
|
| 783 |
+
// end inline asm
|
| 784 |
+
mov.b16 %rs76, 0;
|
| 785 |
+
// begin inline asm
|
| 786 |
+
mov.u16 %rs75, %rs76;
|
| 787 |
+
@%p82 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs75 }, [ %rd259 + 0 ], %rd258;
|
| 788 |
+
// end inline asm
|
| 789 |
+
// begin inline asm
|
| 790 |
+
mov.u64 %rd261, 0x0;
|
| 791 |
+
createpolicy.fractional.L2::evict_last.b64 %rd261, 1.0;
|
| 792 |
+
// end inline asm
|
| 793 |
+
// begin inline asm
|
| 794 |
+
mov.u16 %rs77, %rs76;
|
| 795 |
+
@%p83 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs77 }, [ %rd262 + 0 ], %rd261;
|
| 796 |
+
// end inline asm
|
| 797 |
+
// begin inline asm
|
| 798 |
+
mov.u64 %rd264, 0x0;
|
| 799 |
+
createpolicy.fractional.L2::evict_last.b64 %rd264, 1.0;
|
| 800 |
+
// end inline asm
|
| 801 |
+
// begin inline asm
|
| 802 |
+
mov.u16 %rs79, %rs76;
|
| 803 |
+
@%p84 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs79 }, [ %rd265 + 0 ], %rd264;
|
| 804 |
+
// end inline asm
|
| 805 |
+
// begin inline asm
|
| 806 |
+
mov.u64 %rd267, 0x0;
|
| 807 |
+
createpolicy.fractional.L2::evict_last.b64 %rd267, 1.0;
|
| 808 |
+
// end inline asm
|
| 809 |
+
// begin inline asm
|
| 810 |
+
mov.u16 %rs81, %rs76;
|
| 811 |
+
@%p85 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs81 }, [ %rd268 + 0 ], %rd267;
|
| 812 |
+
// end inline asm
|
| 813 |
+
// begin inline asm
|
| 814 |
+
mov.u64 %rd270, 0x0;
|
| 815 |
+
createpolicy.fractional.L2::evict_last.b64 %rd270, 1.0;
|
| 816 |
+
// end inline asm
|
| 817 |
+
// begin inline asm
|
| 818 |
+
mov.u16 %rs83, %rs76;
|
| 819 |
+
@%p86 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs83 }, [ %rd271 + 0 ], %rd270;
|
| 820 |
+
// end inline asm
|
| 821 |
+
// begin inline asm
|
| 822 |
+
mov.u64 %rd273, 0x0;
|
| 823 |
+
createpolicy.fractional.L2::evict_last.b64 %rd273, 1.0;
|
| 824 |
+
// end inline asm
|
| 825 |
+
// begin inline asm
|
| 826 |
+
mov.u16 %rs85, %rs76;
|
| 827 |
+
@%p87 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs85 }, [ %rd274 + 0 ], %rd273;
|
| 828 |
+
// end inline asm
|
| 829 |
+
// begin inline asm
|
| 830 |
+
mov.u64 %rd276, 0x0;
|
| 831 |
+
createpolicy.fractional.L2::evict_last.b64 %rd276, 1.0;
|
| 832 |
+
// end inline asm
|
| 833 |
+
// begin inline asm
|
| 834 |
+
mov.u16 %rs87, %rs76;
|
| 835 |
+
@%p88 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs87 }, [ %rd277 + 0 ], %rd276;
|
| 836 |
+
// end inline asm
|
| 837 |
+
// begin inline asm
|
| 838 |
+
mov.u64 %rd279, 0x0;
|
| 839 |
+
createpolicy.fractional.L2::evict_last.b64 %rd279, 1.0;
|
| 840 |
+
// end inline asm
|
| 841 |
+
// begin inline asm
|
| 842 |
+
mov.u16 %rs89, %rs76;
|
| 843 |
+
@%p89 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs89 }, [ %rd280 + 0 ], %rd279;
|
| 844 |
+
// end inline asm
|
| 845 |
+
.loc 1 44 20 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:44:20
|
| 846 |
+
setp.ge.s64 %p114, %rd88, %rd89;
|
| 847 |
+
setp.ge.s64 %p115, %rd87, %rd89;
|
| 848 |
+
setp.ge.s64 %p116, %rd86, %rd89;
|
| 849 |
+
setp.ge.s64 %p117, %rd85, %rd89;
|
| 850 |
+
setp.ge.s64 %p118, %rd84, %rd89;
|
| 851 |
+
setp.ge.s64 %p119, %rd83, %rd89;
|
| 852 |
+
setp.ge.s64 %p120, %rd82, %rd89;
|
| 853 |
+
setp.ge.s64 %p121, %rd81, %rd89;
|
| 854 |
+
.loc 1 47 47 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:47:47
|
| 855 |
+
sub.s64 %rd374, %rd81, %rd106;
|
| 856 |
+
sub.s64 %rd375, %rd82, %rd106;
|
| 857 |
+
sub.s64 %rd376, %rd83, %rd106;
|
| 858 |
+
sub.s64 %rd377, %rd84, %rd106;
|
| 859 |
+
sub.s64 %rd378, %rd85, %rd106;
|
| 860 |
+
sub.s64 %rd379, %rd86, %rd106;
|
| 861 |
+
sub.s64 %rd380, %rd87, %rd106;
|
| 862 |
+
sub.s64 %rd381, %rd88, %rd106;
|
| 863 |
+
.loc 1 47 31 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:47:31
|
| 864 |
+
shl.b64 %rd382, %rd374, 1;
|
| 865 |
+
add.s64 %rd283, %rd352, %rd382;
|
| 866 |
+
shl.b64 %rd383, %rd375, 1;
|
| 867 |
+
add.s64 %rd286, %rd355, %rd383;
|
| 868 |
+
shl.b64 %rd384, %rd376, 1;
|
| 869 |
+
add.s64 %rd289, %rd358, %rd384;
|
| 870 |
+
shl.b64 %rd385, %rd377, 1;
|
| 871 |
+
add.s64 %rd292, %rd361, %rd385;
|
| 872 |
+
shl.b64 %rd386, %rd378, 1;
|
| 873 |
+
add.s64 %rd295, %rd364, %rd386;
|
| 874 |
+
shl.b64 %rd387, %rd379, 1;
|
| 875 |
+
add.s64 %rd298, %rd367, %rd387;
|
| 876 |
+
shl.b64 %rd388, %rd380, 1;
|
| 877 |
+
add.s64 %rd301, %rd370, %rd388;
|
| 878 |
+
shl.b64 %rd389, %rd381, 1;
|
| 879 |
+
add.s64 %rd304, %rd373, %rd389;
|
| 880 |
+
.loc 1 47 81 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:47:81
|
| 881 |
+
and.pred %p90, %p1, %p121;
|
| 882 |
+
and.pred %p91, %p2, %p120;
|
| 883 |
+
and.pred %p92, %p3, %p119;
|
| 884 |
+
and.pred %p93, %p4, %p118;
|
| 885 |
+
and.pred %p94, %p5, %p117;
|
| 886 |
+
and.pred %p95, %p6, %p116;
|
| 887 |
+
and.pred %p96, %p7, %p115;
|
| 888 |
+
and.pred %p97, %p8, %p114;
|
| 889 |
+
.loc 1 47 73 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:47:73
|
| 890 |
+
// begin inline asm
|
| 891 |
+
mov.u64 %rd282, 0x0;
|
| 892 |
+
createpolicy.fractional.L2::evict_last.b64 %rd282, 1.0;
|
| 893 |
+
// end inline asm
|
| 894 |
+
// begin inline asm
|
| 895 |
+
mov.u16 %rs91, %rs76;
|
| 896 |
+
@%p90 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs91 }, [ %rd283 + 0 ], %rd282;
|
| 897 |
+
// end inline asm
|
| 898 |
+
// begin inline asm
|
| 899 |
+
mov.u64 %rd285, 0x0;
|
| 900 |
+
createpolicy.fractional.L2::evict_last.b64 %rd285, 1.0;
|
| 901 |
+
// end inline asm
|
| 902 |
+
// begin inline asm
|
| 903 |
+
mov.u16 %rs93, %rs76;
|
| 904 |
+
@%p91 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs93 }, [ %rd286 + 0 ], %rd285;
|
| 905 |
+
// end inline asm
|
| 906 |
+
// begin inline asm
|
| 907 |
+
mov.u64 %rd288, 0x0;
|
| 908 |
+
createpolicy.fractional.L2::evict_last.b64 %rd288, 1.0;
|
| 909 |
+
// end inline asm
|
| 910 |
+
// begin inline asm
|
| 911 |
+
mov.u16 %rs95, %rs76;
|
| 912 |
+
@%p92 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs95 }, [ %rd289 + 0 ], %rd288;
|
| 913 |
+
// end inline asm
|
| 914 |
+
// begin inline asm
|
| 915 |
+
mov.u64 %rd291, 0x0;
|
| 916 |
+
createpolicy.fractional.L2::evict_last.b64 %rd291, 1.0;
|
| 917 |
+
// end inline asm
|
| 918 |
+
// begin inline asm
|
| 919 |
+
mov.u16 %rs97, %rs76;
|
| 920 |
+
@%p93 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs97 }, [ %rd292 + 0 ], %rd291;
|
| 921 |
+
// end inline asm
|
| 922 |
+
// begin inline asm
|
| 923 |
+
mov.u64 %rd294, 0x0;
|
| 924 |
+
createpolicy.fractional.L2::evict_last.b64 %rd294, 1.0;
|
| 925 |
+
// end inline asm
|
| 926 |
+
// begin inline asm
|
| 927 |
+
mov.u16 %rs99, %rs76;
|
| 928 |
+
@%p94 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs99 }, [ %rd295 + 0 ], %rd294;
|
| 929 |
+
// end inline asm
|
| 930 |
+
// begin inline asm
|
| 931 |
+
mov.u64 %rd297, 0x0;
|
| 932 |
+
createpolicy.fractional.L2::evict_last.b64 %rd297, 1.0;
|
| 933 |
+
// end inline asm
|
| 934 |
+
// begin inline asm
|
| 935 |
+
mov.u16 %rs101, %rs76;
|
| 936 |
+
@%p95 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs101 }, [ %rd298 + 0 ], %rd297;
|
| 937 |
+
// end inline asm
|
| 938 |
+
// begin inline asm
|
| 939 |
+
mov.u64 %rd300, 0x0;
|
| 940 |
+
createpolicy.fractional.L2::evict_last.b64 %rd300, 1.0;
|
| 941 |
+
// end inline asm
|
| 942 |
+
// begin inline asm
|
| 943 |
+
mov.u16 %rs103, %rs76;
|
| 944 |
+
@%p96 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs103 }, [ %rd301 + 0 ], %rd300;
|
| 945 |
+
// end inline asm
|
| 946 |
+
// begin inline asm
|
| 947 |
+
mov.u64 %rd303, 0x0;
|
| 948 |
+
createpolicy.fractional.L2::evict_last.b64 %rd303, 1.0;
|
| 949 |
+
// end inline asm
|
| 950 |
+
// begin inline asm
|
| 951 |
+
mov.u16 %rs105, %rs76;
|
| 952 |
+
@%p97 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs105 }, [ %rd304 + 0 ], %rd303;
|
| 953 |
+
// end inline asm
|
| 954 |
+
.loc 1 51 34 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:51:34
|
| 955 |
+
and.b64 %rd391, %rd212, %rd107;
|
| 956 |
+
and.b64 %rd393, %rd214, %rd107;
|
| 957 |
+
and.b64 %rd395, %rd216, %rd107;
|
| 958 |
+
and.b64 %rd397, %rd218, %rd107;
|
| 959 |
+
and.b64 %rd399, %rd220, %rd107;
|
| 960 |
+
and.b64 %rd401, %rd222, %rd107;
|
| 961 |
+
and.b64 %rd403, %rd224, %rd107;
|
| 962 |
+
and.b64 %rd405, %rd226, %rd107;
|
| 963 |
+
add.s64 %rd95, %rd405, %rd185;
|
| 964 |
+
add.s64 %rd94, %rd403, %rd181;
|
| 965 |
+
add.s64 %rd97, %rd401, %rd193;
|
| 966 |
+
add.s64 %rd96, %rd399, %rd189;
|
| 967 |
+
add.s64 %rd91, %rd397, %rd169;
|
| 968 |
+
add.s64 %rd90, %rd395, %rd165;
|
| 969 |
+
add.s64 %rd93, %rd393, %rd177;
|
| 970 |
+
add.s64 %rd92, %rd391, %rd173;
|
| 971 |
+
.loc 1 52 28 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:52:28
|
| 972 |
+
setp.lt.s64 %p122, %rd92, 0;
|
| 973 |
+
setp.lt.s64 %p123, %rd93, 0;
|
| 974 |
+
setp.lt.s64 %p124, %rd90, 0;
|
| 975 |
+
setp.lt.s64 %p125, %rd91, 0;
|
| 976 |
+
setp.lt.s64 %p126, %rd96, 0;
|
| 977 |
+
setp.lt.s64 %p127, %rd97, 0;
|
| 978 |
+
setp.lt.s64 %p128, %rd94, 0;
|
| 979 |
+
setp.lt.s64 %p129, %rd95, 0;
|
| 980 |
+
.loc 1 52 46 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:52:46
|
| 981 |
+
setp.ge.s64 %p130, %rd92, %rd107;
|
| 982 |
+
setp.ge.s64 %p131, %rd93, %rd107;
|
| 983 |
+
setp.ge.s64 %p132, %rd90, %rd107;
|
| 984 |
+
setp.ge.s64 %p133, %rd91, %rd107;
|
| 985 |
+
setp.ge.s64 %p134, %rd96, %rd107;
|
| 986 |
+
setp.ge.s64 %p135, %rd97, %rd107;
|
| 987 |
+
setp.ge.s64 %p136, %rd94, %rd107;
|
| 988 |
+
setp.ge.s64 %p137, %rd95, %rd107;
|
| 989 |
+
.loc 1 52 38 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:52:38
|
| 990 |
+
or.pred %p138, %p129, %p137;
|
| 991 |
+
or.pred %p139, %p128, %p136;
|
| 992 |
+
or.pred %p140, %p127, %p135;
|
| 993 |
+
or.pred %p141, %p126, %p134;
|
| 994 |
+
or.pred %p142, %p125, %p133;
|
| 995 |
+
or.pred %p143, %p124, %p132;
|
| 996 |
+
or.pred %p144, %p123, %p131;
|
| 997 |
+
or.pred %p145, %p122, %p130;
|
| 998 |
+
.loc 1 52 54 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:52:54
|
| 999 |
+
and.pred %p146, %p3, %p145;
|
| 1000 |
+
selp.b16 %rs107, 1, 0, %p146;
|
| 1001 |
+
shl.b16 %rs108, %rs107, 2;
|
| 1002 |
+
and.pred %p147, %p4, %p144;
|
| 1003 |
+
selp.b16 %rs109, -1, 0, %p147;
|
| 1004 |
+
shl.b16 %rs110, %rs109, 3;
|
| 1005 |
+
or.b16 %rs111, %rs110, %rs108;
|
| 1006 |
+
and.pred %p148, %p1, %p143;
|
| 1007 |
+
selp.b16 %rs112, 1, 0, %p148;
|
| 1008 |
+
and.pred %p149, %p2, %p142;
|
| 1009 |
+
selp.b16 %rs113, -1, 0, %p149;
|
| 1010 |
+
shl.b16 %rs114, %rs113, 1;
|
| 1011 |
+
or.b16 %rs115, %rs112, %rs114;
|
| 1012 |
+
and.b16 %rs116, %rs115, 3;
|
| 1013 |
+
or.b16 %rs117, %rs116, %rs111;
|
| 1014 |
+
and.b16 %rs118, %rs117, 15;
|
| 1015 |
+
and.pred %p150, %p7, %p141;
|
| 1016 |
+
selp.b16 %rs119, 1, 0, %p150;
|
| 1017 |
+
shl.b16 %rs120, %rs119, 2;
|
| 1018 |
+
and.pred %p151, %p8, %p140;
|
| 1019 |
+
selp.b16 %rs121, -1, 0, %p151;
|
| 1020 |
+
shl.b16 %rs122, %rs121, 3;
|
| 1021 |
+
or.b16 %rs123, %rs122, %rs120;
|
| 1022 |
+
and.pred %p152, %p5, %p139;
|
| 1023 |
+
selp.b16 %rs124, 1, 0, %p152;
|
| 1024 |
+
and.pred %p153, %p6, %p138;
|
| 1025 |
+
selp.b16 %rs125, -1, 0, %p153;
|
| 1026 |
+
shl.b16 %rs126, %rs125, 1;
|
| 1027 |
+
or.b16 %rs127, %rs124, %rs126;
|
| 1028 |
+
and.b16 %rs128, %rs127, 3;
|
| 1029 |
+
or.b16 %rs129, %rs128, %rs123;
|
| 1030 |
+
shl.b16 %rs130, %rs129, 4;
|
| 1031 |
+
or.b16 %rs131, %rs118, %rs130;
|
| 1032 |
+
.loc 1 52 64 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:52:64
|
| 1033 |
+
and.b16 %rs132, %rs131, 255;
|
| 1034 |
+
setp.eq.b16 %p154, %rs132, 0;
|
| 1035 |
+
@%p154 bra $L__BB0_52;
|
| 1036 |
+
bra.uni $L__BB0_51;
|
| 1037 |
+
$L__BB0_52:
|
| 1038 |
+
.loc 1 0 64 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0:64
|
| 1039 |
+
ld.param.b64 %rd102, [triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_4];
|
| 1040 |
+
ld.param.b64 %rd101, [triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0_param_3];
|
| 1041 |
+
.loc 1 40 119 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:40:119
|
| 1042 |
+
cvt.f32.bf16 %r79, %rs89;
|
| 1043 |
+
mov.b32 %r80, 0f00000000;
|
| 1044 |
+
.loc 1 41 13 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:41:13
|
| 1045 |
+
sub.f32 %r81, %r80, %r79;
|
| 1046 |
+
.loc 1 47 132 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:47:132
|
| 1047 |
+
cvt.f32.bf16 %r82, %rs105;
|
| 1048 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 1049 |
+
selp.f32 %r83, %r81, %r82, %p113;
|
| 1050 |
+
.loc 1 40 119 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:40:119
|
| 1051 |
+
cvt.f32.bf16 %r84, %rs87;
|
| 1052 |
+
.loc 1 41 13 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:41:13
|
| 1053 |
+
sub.f32 %r85, %r80, %r84;
|
| 1054 |
+
.loc 1 47 132 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:47:132
|
| 1055 |
+
cvt.f32.bf16 %r86, %rs103;
|
| 1056 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 1057 |
+
selp.f32 %r87, %r85, %r86, %p112;
|
| 1058 |
+
.loc 1 40 119 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:40:119
|
| 1059 |
+
cvt.f32.bf16 %r88, %rs85;
|
| 1060 |
+
.loc 1 41 13 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:41:13
|
| 1061 |
+
sub.f32 %r89, %r80, %r88;
|
| 1062 |
+
.loc 1 47 132 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:47:132
|
| 1063 |
+
cvt.f32.bf16 %r90, %rs101;
|
| 1064 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 1065 |
+
selp.f32 %r91, %r89, %r90, %p111;
|
| 1066 |
+
.loc 1 40 119 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:40:119
|
| 1067 |
+
cvt.f32.bf16 %r92, %rs83;
|
| 1068 |
+
.loc 1 41 13 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:41:13
|
| 1069 |
+
sub.f32 %r93, %r80, %r92;
|
| 1070 |
+
.loc 1 47 132 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:47:132
|
| 1071 |
+
cvt.f32.bf16 %r94, %rs99;
|
| 1072 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 1073 |
+
selp.f32 %r95, %r93, %r94, %p110;
|
| 1074 |
+
.loc 1 40 119 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:40:119
|
| 1075 |
+
cvt.f32.bf16 %r96, %rs81;
|
| 1076 |
+
.loc 1 41 13 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:41:13
|
| 1077 |
+
sub.f32 %r97, %r80, %r96;
|
| 1078 |
+
.loc 1 47 132 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:47:132
|
| 1079 |
+
cvt.f32.bf16 %r98, %rs97;
|
| 1080 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 1081 |
+
selp.f32 %r99, %r97, %r98, %p109;
|
| 1082 |
+
.loc 1 40 119 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:40:119
|
| 1083 |
+
cvt.f32.bf16 %r100, %rs79;
|
| 1084 |
+
.loc 1 41 13 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:41:13
|
| 1085 |
+
sub.f32 %r101, %r80, %r100;
|
| 1086 |
+
.loc 1 47 132 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:47:132
|
| 1087 |
+
cvt.f32.bf16 %r102, %rs95;
|
| 1088 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 1089 |
+
selp.f32 %r103, %r101, %r102, %p108;
|
| 1090 |
+
.loc 1 40 119 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:40:119
|
| 1091 |
+
cvt.f32.bf16 %r104, %rs77;
|
| 1092 |
+
.loc 1 41 13 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:41:13
|
| 1093 |
+
sub.f32 %r105, %r80, %r104;
|
| 1094 |
+
.loc 1 47 132 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:47:132
|
| 1095 |
+
cvt.f32.bf16 %r106, %rs93;
|
| 1096 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 1097 |
+
selp.f32 %r107, %r105, %r106, %p107;
|
| 1098 |
+
.loc 1 40 119 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:40:119
|
| 1099 |
+
cvt.f32.bf16 %r108, %rs75;
|
| 1100 |
+
.loc 1 41 13 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:41:13
|
| 1101 |
+
sub.f32 %r109, %r80, %r108;
|
| 1102 |
+
.loc 1 47 132 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:47:132
|
| 1103 |
+
cvt.f32.bf16 %r110, %rs91;
|
| 1104 |
+
.loc 1 0 0 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:0
|
| 1105 |
+
selp.f32 %r111, %r109, %r110, %p106;
|
| 1106 |
+
.loc 1 26 75 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:26:75
|
| 1107 |
+
cvt.f32.bf16 %r112, %rs40;
|
| 1108 |
+
cvt.f32.bf16 %r113, %rs39;
|
| 1109 |
+
cvt.f32.bf16 %r114, %rs38;
|
| 1110 |
+
cvt.f32.bf16 %r115, %rs37;
|
| 1111 |
+
cvt.f32.bf16 %r116, %rs36;
|
| 1112 |
+
cvt.f32.bf16 %r117, %rs35;
|
| 1113 |
+
cvt.f32.bf16 %r118, %rs34;
|
| 1114 |
+
cvt.f32.bf16 %r119, %rs33;
|
| 1115 |
+
.loc 1 52 64 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:52:64
|
| 1116 |
+
bar.sync 0;
|
| 1117 |
+
.loc 1 53 40 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:53:40
|
| 1118 |
+
mul.lo.s64 %rd444, %rd90, %rd106;
|
| 1119 |
+
mul.lo.s64 %rd445, %rd91, %rd106;
|
| 1120 |
+
mul.lo.s64 %rd446, %rd92, %rd106;
|
| 1121 |
+
mul.lo.s64 %rd447, %rd93, %rd106;
|
| 1122 |
+
mul.lo.s64 %rd448, %rd94, %rd106;
|
| 1123 |
+
mul.lo.s64 %rd449, %rd95, %rd106;
|
| 1124 |
+
mul.lo.s64 %rd450, %rd96, %rd106;
|
| 1125 |
+
mul.lo.s64 %rd451, %rd97, %rd106;
|
| 1126 |
+
.loc 1 53 31 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:53:31
|
| 1127 |
+
add.s64 %rd453, %rd101, %rd314;
|
| 1128 |
+
shl.b64 %rd454, %rd444, 1;
|
| 1129 |
+
add.s64 %rd413, %rd453, %rd454;
|
| 1130 |
+
add.s64 %rd456, %rd101, %rd317;
|
| 1131 |
+
shl.b64 %rd457, %rd445, 1;
|
| 1132 |
+
add.s64 %rd416, %rd456, %rd457;
|
| 1133 |
+
add.s64 %rd459, %rd101, %rd320;
|
| 1134 |
+
shl.b64 %rd460, %rd446, 1;
|
| 1135 |
+
add.s64 %rd419, %rd459, %rd460;
|
| 1136 |
+
add.s64 %rd462, %rd101, %rd323;
|
| 1137 |
+
shl.b64 %rd463, %rd447, 1;
|
| 1138 |
+
add.s64 %rd422, %rd462, %rd463;
|
| 1139 |
+
add.s64 %rd465, %rd101, %rd326;
|
| 1140 |
+
shl.b64 %rd466, %rd448, 1;
|
| 1141 |
+
add.s64 %rd425, %rd465, %rd466;
|
| 1142 |
+
add.s64 %rd468, %rd101, %rd329;
|
| 1143 |
+
shl.b64 %rd469, %rd449, 1;
|
| 1144 |
+
add.s64 %rd428, %rd468, %rd469;
|
| 1145 |
+
add.s64 %rd471, %rd101, %rd332;
|
| 1146 |
+
shl.b64 %rd472, %rd450, 1;
|
| 1147 |
+
add.s64 %rd431, %rd471, %rd472;
|
| 1148 |
+
add.s64 %rd474, %rd101, %rd335;
|
| 1149 |
+
shl.b64 %rd475, %rd451, 1;
|
| 1150 |
+
add.s64 %rd434, %rd474, %rd475;
|
| 1151 |
+
.loc 1 53 48 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:53:48
|
| 1152 |
+
// begin inline asm
|
| 1153 |
+
mov.u64 %rd414, 0x0;
|
| 1154 |
+
createpolicy.fractional.L2::evict_last.b64 %rd414, 1.0;
|
| 1155 |
+
// end inline asm
|
| 1156 |
+
// begin inline asm
|
| 1157 |
+
mov.u16 %rs133, 0x0;
|
| 1158 |
+
@%p1 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs133 }, [ %rd413 + 0 ], %rd414;
|
| 1159 |
+
// end inline asm
|
| 1160 |
+
// begin inline asm
|
| 1161 |
+
mov.u64 %rd417, 0x0;
|
| 1162 |
+
createpolicy.fractional.L2::evict_last.b64 %rd417, 1.0;
|
| 1163 |
+
// end inline asm
|
| 1164 |
+
// begin inline asm
|
| 1165 |
+
mov.u16 %rs134, 0x0;
|
| 1166 |
+
@%p2 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs134 }, [ %rd416 + 0 ], %rd417;
|
| 1167 |
+
// end inline asm
|
| 1168 |
+
// begin inline asm
|
| 1169 |
+
mov.u64 %rd420, 0x0;
|
| 1170 |
+
createpolicy.fractional.L2::evict_last.b64 %rd420, 1.0;
|
| 1171 |
+
// end inline asm
|
| 1172 |
+
// begin inline asm
|
| 1173 |
+
mov.u16 %rs135, 0x0;
|
| 1174 |
+
@%p3 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs135 }, [ %rd419 + 0 ], %rd420;
|
| 1175 |
+
// end inline asm
|
| 1176 |
+
// begin inline asm
|
| 1177 |
+
mov.u64 %rd423, 0x0;
|
| 1178 |
+
createpolicy.fractional.L2::evict_last.b64 %rd423, 1.0;
|
| 1179 |
+
// end inline asm
|
| 1180 |
+
// begin inline asm
|
| 1181 |
+
mov.u16 %rs136, 0x0;
|
| 1182 |
+
@%p4 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs136 }, [ %rd422 + 0 ], %rd423;
|
| 1183 |
+
// end inline asm
|
| 1184 |
+
// begin inline asm
|
| 1185 |
+
mov.u64 %rd426, 0x0;
|
| 1186 |
+
createpolicy.fractional.L2::evict_last.b64 %rd426, 1.0;
|
| 1187 |
+
// end inline asm
|
| 1188 |
+
// begin inline asm
|
| 1189 |
+
mov.u16 %rs137, 0x0;
|
| 1190 |
+
@%p5 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs137 }, [ %rd425 + 0 ], %rd426;
|
| 1191 |
+
// end inline asm
|
| 1192 |
+
// begin inline asm
|
| 1193 |
+
mov.u64 %rd429, 0x0;
|
| 1194 |
+
createpolicy.fractional.L2::evict_last.b64 %rd429, 1.0;
|
| 1195 |
+
// end inline asm
|
| 1196 |
+
// begin inline asm
|
| 1197 |
+
mov.u16 %rs138, 0x0;
|
| 1198 |
+
@%p6 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs138 }, [ %rd428 + 0 ], %rd429;
|
| 1199 |
+
// end inline asm
|
| 1200 |
+
// begin inline asm
|
| 1201 |
+
mov.u64 %rd432, 0x0;
|
| 1202 |
+
createpolicy.fractional.L2::evict_last.b64 %rd432, 1.0;
|
| 1203 |
+
// end inline asm
|
| 1204 |
+
// begin inline asm
|
| 1205 |
+
mov.u16 %rs139, 0x0;
|
| 1206 |
+
@%p7 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs139 }, [ %rd431 + 0 ], %rd432;
|
| 1207 |
+
// end inline asm
|
| 1208 |
+
// begin inline asm
|
| 1209 |
+
mov.u64 %rd435, 0x0;
|
| 1210 |
+
createpolicy.fractional.L2::evict_last.b64 %rd435, 1.0;
|
| 1211 |
+
// end inline asm
|
| 1212 |
+
// begin inline asm
|
| 1213 |
+
mov.u16 %rs140, 0x0;
|
| 1214 |
+
@%p8 ld.global.L1::evict_last.L2::cache_hint.b16 { %rs140 }, [ %rd434 + 0 ], %rd435;
|
| 1215 |
+
// end inline asm
|
| 1216 |
+
.loc 1 33 46 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:46
|
| 1217 |
+
mov.b32 %r120, {%rs67, %rs133};
|
| 1218 |
+
.loc 1 33 86 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:86
|
| 1219 |
+
mov.b32 {%rs149, %rs150}, %r120;
|
| 1220 |
+
cvt.f32.bf16 %r121, %rs149;
|
| 1221 |
+
cvt.f32.bf16 %r122, %rs150;
|
| 1222 |
+
.loc 1 34 18 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:34:18
|
| 1223 |
+
mul.f32 %r123, %r111, %r122;
|
| 1224 |
+
.loc 1 33 46 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:46
|
| 1225 |
+
mov.b32 %r124, {%rs68, %rs134};
|
| 1226 |
+
.loc 1 33 86 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:86
|
| 1227 |
+
mov.b32 {%rs151, %rs152}, %r124;
|
| 1228 |
+
cvt.f32.bf16 %r125, %rs151;
|
| 1229 |
+
cvt.f32.bf16 %r126, %rs152;
|
| 1230 |
+
.loc 1 34 18 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:34:18
|
| 1231 |
+
mul.f32 %r127, %r107, %r126;
|
| 1232 |
+
.loc 1 33 46 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:46
|
| 1233 |
+
mov.b32 %r128, {%rs69, %rs135};
|
| 1234 |
+
.loc 1 33 86 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:86
|
| 1235 |
+
mov.b32 {%rs153, %rs154}, %r128;
|
| 1236 |
+
cvt.f32.bf16 %r129, %rs153;
|
| 1237 |
+
cvt.f32.bf16 %r130, %rs154;
|
| 1238 |
+
.loc 1 34 18 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:34:18
|
| 1239 |
+
mul.f32 %r131, %r103, %r130;
|
| 1240 |
+
.loc 1 33 46 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:46
|
| 1241 |
+
mov.b32 %r132, {%rs70, %rs136};
|
| 1242 |
+
.loc 1 33 86 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:86
|
| 1243 |
+
mov.b32 {%rs155, %rs156}, %r132;
|
| 1244 |
+
cvt.f32.bf16 %r133, %rs155;
|
| 1245 |
+
cvt.f32.bf16 %r134, %rs156;
|
| 1246 |
+
.loc 1 34 18 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:34:18
|
| 1247 |
+
mul.f32 %r135, %r99, %r134;
|
| 1248 |
+
.loc 1 33 46 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:46
|
| 1249 |
+
mov.b32 %r136, {%rs71, %rs137};
|
| 1250 |
+
.loc 1 33 86 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:86
|
| 1251 |
+
mov.b32 {%rs157, %rs158}, %r136;
|
| 1252 |
+
cvt.f32.bf16 %r137, %rs157;
|
| 1253 |
+
cvt.f32.bf16 %r138, %rs158;
|
| 1254 |
+
.loc 1 34 18 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:34:18
|
| 1255 |
+
mul.f32 %r139, %r95, %r138;
|
| 1256 |
+
.loc 1 33 46 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:46
|
| 1257 |
+
mov.b32 %r140, {%rs72, %rs138};
|
| 1258 |
+
.loc 1 33 86 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:86
|
| 1259 |
+
mov.b32 {%rs159, %rs160}, %r140;
|
| 1260 |
+
cvt.f32.bf16 %r141, %rs159;
|
| 1261 |
+
cvt.f32.bf16 %r142, %rs160;
|
| 1262 |
+
.loc 1 34 18 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:34:18
|
| 1263 |
+
mul.f32 %r143, %r91, %r142;
|
| 1264 |
+
.loc 1 33 46 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:46
|
| 1265 |
+
mov.b32 %r144, {%rs73, %rs139};
|
| 1266 |
+
.loc 1 33 86 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:86
|
| 1267 |
+
mov.b32 {%rs161, %rs162}, %r144;
|
| 1268 |
+
cvt.f32.bf16 %r145, %rs161;
|
| 1269 |
+
cvt.f32.bf16 %r146, %rs162;
|
| 1270 |
+
.loc 1 34 18 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:34:18
|
| 1271 |
+
mul.f32 %r147, %r87, %r146;
|
| 1272 |
+
.loc 1 33 46 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:46
|
| 1273 |
+
mov.b32 %r148, {%rs74, %rs140};
|
| 1274 |
+
.loc 1 33 86 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:33:86
|
| 1275 |
+
mov.b32 {%rs163, %rs164}, %r148;
|
| 1276 |
+
cvt.f32.bf16 %r149, %rs163;
|
| 1277 |
+
cvt.f32.bf16 %r150, %rs164;
|
| 1278 |
+
.loc 1 34 18 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:34:18
|
| 1279 |
+
mul.f32 %r151, %r83, %r150;
|
| 1280 |
+
.loc 1 55 19 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:55:19
|
| 1281 |
+
fma.rn.f32 %r152, %r119, %r121, %r123;
|
| 1282 |
+
fma.rn.f32 %r153, %r118, %r125, %r127;
|
| 1283 |
+
fma.rn.f32 %r154, %r117, %r129, %r131;
|
| 1284 |
+
fma.rn.f32 %r155, %r116, %r133, %r135;
|
| 1285 |
+
fma.rn.f32 %r156, %r115, %r137, %r139;
|
| 1286 |
+
fma.rn.f32 %r157, %r114, %r141, %r143;
|
| 1287 |
+
fma.rn.f32 %r158, %r113, %r145, %r147;
|
| 1288 |
+
fma.rn.f32 %r159, %r112, %r149, %r151;
|
| 1289 |
+
.loc 1 56 25 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:56:25
|
| 1290 |
+
add.s64 %rd436, %rd102, %rd196;
|
| 1291 |
+
add.s64 %rd437, %rd102, %rd197;
|
| 1292 |
+
add.s64 %rd438, %rd102, %rd198;
|
| 1293 |
+
add.s64 %rd439, %rd102, %rd199;
|
| 1294 |
+
add.s64 %rd440, %rd102, %rd200;
|
| 1295 |
+
add.s64 %rd441, %rd102, %rd201;
|
| 1296 |
+
add.s64 %rd442, %rd102, %rd202;
|
| 1297 |
+
add.s64 %rd443, %rd102, %rd203;
|
| 1298 |
+
.loc 1 56 37 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:56:37
|
| 1299 |
+
cvt.rn.bf16.f32 %rs141, %r152;
|
| 1300 |
+
cvt.rn.bf16.f32 %rs142, %r153;
|
| 1301 |
+
cvt.rn.bf16.f32 %rs143, %r154;
|
| 1302 |
+
cvt.rn.bf16.f32 %rs144, %r155;
|
| 1303 |
+
cvt.rn.bf16.f32 %rs145, %r156;
|
| 1304 |
+
cvt.rn.bf16.f32 %rs146, %r157;
|
| 1305 |
+
cvt.rn.bf16.f32 %rs147, %r158;
|
| 1306 |
+
cvt.rn.bf16.f32 %rs148, %r159;
|
| 1307 |
+
// begin inline asm
|
| 1308 |
+
@%p1 st.global.b16 [ %rd436 + 0 ], { %rs141 };
|
| 1309 |
+
// end inline asm
|
| 1310 |
+
// begin inline asm
|
| 1311 |
+
@%p2 st.global.b16 [ %rd437 + 0 ], { %rs142 };
|
| 1312 |
+
// end inline asm
|
| 1313 |
+
// begin inline asm
|
| 1314 |
+
@%p3 st.global.b16 [ %rd438 + 0 ], { %rs143 };
|
| 1315 |
+
// end inline asm
|
| 1316 |
+
// begin inline asm
|
| 1317 |
+
@%p4 st.global.b16 [ %rd439 + 0 ], { %rs144 };
|
| 1318 |
+
// end inline asm
|
| 1319 |
+
// begin inline asm
|
| 1320 |
+
@%p5 st.global.b16 [ %rd440 + 0 ], { %rs145 };
|
| 1321 |
+
// end inline asm
|
| 1322 |
+
// begin inline asm
|
| 1323 |
+
@%p6 st.global.b16 [ %rd441 + 0 ], { %rs146 };
|
| 1324 |
+
// end inline asm
|
| 1325 |
+
// begin inline asm
|
| 1326 |
+
@%p7 st.global.b16 [ %rd442 + 0 ], { %rs147 };
|
| 1327 |
+
// end inline asm
|
| 1328 |
+
// begin inline asm
|
| 1329 |
+
@%p8 st.global.b16 [ %rd443 + 0 ], { %rs148 };
|
| 1330 |
+
// end inline asm
|
| 1331 |
+
.loc 1 56 4 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:56:4
|
| 1332 |
+
ret;
|
| 1333 |
+
$L__BB0_49:
|
| 1334 |
+
.loc 1 32 62 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:32:62
|
| 1335 |
+
{ // callseq 0, 0
|
| 1336 |
+
.param .b64 param0;
|
| 1337 |
+
.param .b64 param1;
|
| 1338 |
+
.param .b32 param2;
|
| 1339 |
+
.param .b64 param3;
|
| 1340 |
+
.param .b64 param4;
|
| 1341 |
+
mov.b64 %rd228, assertFunc_0;
|
| 1342 |
+
cvta.global.u64 %rd229, %rd228;
|
| 1343 |
+
st.param.b64 [param3], %rd229;
|
| 1344 |
+
mov.b64 %rd230, assertFile_0;
|
| 1345 |
+
cvta.global.u64 %rd231, %rd230;
|
| 1346 |
+
st.param.b64 [param1], %rd231;
|
| 1347 |
+
mov.b64 %rd232, assertMessage_0;
|
| 1348 |
+
cvta.global.u64 %rd233, %rd232;
|
| 1349 |
+
st.param.b64 [param0], %rd233;
|
| 1350 |
+
st.param.b64 [param4], 1;
|
| 1351 |
+
st.param.b32 [param2], 32;
|
| 1352 |
+
call.uni __assertfail, (param0, param1, param2, param3, param4);
|
| 1353 |
+
} // callseq 0
|
| 1354 |
+
trap;
|
| 1355 |
+
$L__BB0_51:
|
| 1356 |
+
.loc 1 52 64 // cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py:52:64
|
| 1357 |
+
{ // callseq 1, 0
|
| 1358 |
+
.param .b64 param0;
|
| 1359 |
+
.param .b64 param1;
|
| 1360 |
+
.param .b32 param2;
|
| 1361 |
+
.param .b64 param3;
|
| 1362 |
+
.param .b64 param4;
|
| 1363 |
+
mov.b64 %rd406, assertFunc_1;
|
| 1364 |
+
cvta.global.u64 %rd407, %rd406;
|
| 1365 |
+
st.param.b64 [param3], %rd407;
|
| 1366 |
+
mov.b64 %rd408, assertFile_1;
|
| 1367 |
+
cvta.global.u64 %rd409, %rd408;
|
| 1368 |
+
st.param.b64 [param1], %rd409;
|
| 1369 |
+
mov.b64 %rd410, assertMessage_1;
|
| 1370 |
+
cvta.global.u64 %rd411, %rd410;
|
| 1371 |
+
st.param.b64 [param0], %rd411;
|
| 1372 |
+
st.param.b64 [param4], 1;
|
| 1373 |
+
st.param.b32 [param2], 52;
|
| 1374 |
+
call.uni __assertfail, (param0, param1, param2, param3, param4);
|
| 1375 |
+
} // callseq 1
|
| 1376 |
+
trap;
|
| 1377 |
+
$L__tmp1:
|
| 1378 |
+
$L__func_end0:
|
| 1379 |
+
// -- End function
|
| 1380 |
+
}
|
| 1381 |
+
.file 1 "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py"
|
| 1382 |
+
.section .debug_abbrev
|
| 1383 |
+
{
|
| 1384 |
+
.b8 1 // Abbreviation Code
|
| 1385 |
+
.b8 17 // DW_TAG_compile_unit
|
| 1386 |
+
.b8 0 // DW_CHILDREN_no
|
| 1387 |
+
.b8 37 // DW_AT_producer
|
| 1388 |
+
.b8 8 // DW_FORM_string
|
| 1389 |
+
.b8 19 // DW_AT_language
|
| 1390 |
+
.b8 5 // DW_FORM_data2
|
| 1391 |
+
.b8 3 // DW_AT_name
|
| 1392 |
+
.b8 8 // DW_FORM_string
|
| 1393 |
+
.b8 16 // DW_AT_stmt_list
|
| 1394 |
+
.b8 6 // DW_FORM_data4
|
| 1395 |
+
.b8 27 // DW_AT_comp_dir
|
| 1396 |
+
.b8 8 // DW_FORM_string
|
| 1397 |
+
.b8 0 // EOM(1)
|
| 1398 |
+
.b8 0 // EOM(2)
|
| 1399 |
+
.b8 0 // EOM(3)
|
| 1400 |
+
}
|
| 1401 |
+
.section .debug_info
|
| 1402 |
+
{
|
| 1403 |
+
.b32 135 // Length of Unit
|
| 1404 |
+
.b8 2 // DWARF version number
|
| 1405 |
+
.b8 0
|
| 1406 |
+
.b32 .debug_abbrev // Offset Into Abbrev. Section
|
| 1407 |
+
.b8 8 // Address Size (in bytes)
|
| 1408 |
+
.b8 1 // Abbrev [1] 0xb:0x80 DW_TAG_compile_unit
|
| 1409 |
+
.b8 116 // DW_AT_producer
|
| 1410 |
+
.b8 114
|
| 1411 |
+
.b8 105
|
| 1412 |
+
.b8 116
|
| 1413 |
+
.b8 111
|
| 1414 |
+
.b8 110
|
| 1415 |
+
.b8 0
|
| 1416 |
+
.b8 2 // DW_AT_language
|
| 1417 |
+
.b8 0
|
| 1418 |
+
.b8 99 // DW_AT_name
|
| 1419 |
+
.b8 118
|
| 1420 |
+
.b8 121
|
| 1421 |
+
.b8 111
|
| 1422 |
+
.b8 113
|
| 1423 |
+
.b8 103
|
| 1424 |
+
.b8 55
|
| 1425 |
+
.b8 106
|
| 1426 |
+
.b8 122
|
| 1427 |
+
.b8 101
|
| 1428 |
+
.b8 97
|
| 1429 |
+
.b8 100
|
| 1430 |
+
.b8 97
|
| 1431 |
+
.b8 114
|
| 1432 |
+
.b8 114
|
| 1433 |
+
.b8 103
|
| 1434 |
+
.b8 103
|
| 1435 |
+
.b8 103
|
| 1436 |
+
.b8 120
|
| 1437 |
+
.b8 104
|
| 1438 |
+
.b8 115
|
| 1439 |
+
.b8 50
|
| 1440 |
+
.b8 100
|
| 1441 |
+
.b8 106
|
| 1442 |
+
.b8 109
|
| 1443 |
+
.b8 120
|
| 1444 |
+
.b8 117
|
| 1445 |
+
.b8 103
|
| 1446 |
+
.b8 120
|
| 1447 |
+
.b8 121
|
| 1448 |
+
.b8 118
|
| 1449 |
+
.b8 106
|
| 1450 |
+
.b8 104
|
| 1451 |
+
.b8 105
|
| 1452 |
+
.b8 109
|
| 1453 |
+
.b8 55
|
| 1454 |
+
.b8 50
|
| 1455 |
+
.b8 118
|
| 1456 |
+
.b8 102
|
| 1457 |
+
.b8 115
|
| 1458 |
+
.b8 116
|
| 1459 |
+
.b8 113
|
| 1460 |
+
.b8 99
|
| 1461 |
+
.b8 52
|
| 1462 |
+
.b8 105
|
| 1463 |
+
.b8 111
|
| 1464 |
+
.b8 52
|
| 1465 |
+
.b8 113
|
| 1466 |
+
.b8 115
|
| 1467 |
+
.b8 101
|
| 1468 |
+
.b8 99
|
| 1469 |
+
.b8 106
|
| 1470 |
+
.b8 46
|
| 1471 |
+
.b8 112
|
| 1472 |
+
.b8 121
|
| 1473 |
+
.b8 0
|
| 1474 |
+
.b32 .debug_line // DW_AT_stmt_list
|
| 1475 |
+
.b8 47 // DW_AT_comp_dir
|
| 1476 |
+
.b8 119
|
| 1477 |
+
.b8 111
|
| 1478 |
+
.b8 114
|
| 1479 |
+
.b8 107
|
| 1480 |
+
.b8 115
|
| 1481 |
+
.b8 112
|
| 1482 |
+
.b8 97
|
| 1483 |
+
.b8 99
|
| 1484 |
+
.b8 101
|
| 1485 |
+
.b8 47
|
| 1486 |
+
.b8 104
|
| 1487 |
+
.b8 97
|
| 1488 |
+
.b8 110
|
| 1489 |
+
.b8 114
|
| 1490 |
+
.b8 117
|
| 1491 |
+
.b8 105
|
| 1492 |
+
.b8 47
|
| 1493 |
+
.b8 83
|
| 1494 |
+
.b8 112
|
| 1495 |
+
.b8 101
|
| 1496 |
+
.b8 99
|
| 1497 |
+
.b8 70
|
| 1498 |
+
.b8 111
|
| 1499 |
+
.b8 114
|
| 1500 |
+
.b8 103
|
| 1501 |
+
.b8 101
|
| 1502 |
+
.b8 45
|
| 1503 |
+
.b8 101
|
| 1504 |
+
.b8 120
|
| 1505 |
+
.b8 116
|
| 1506 |
+
.b8 47
|
| 1507 |
+
.b8 99
|
| 1508 |
+
.b8 97
|
| 1509 |
+
.b8 99
|
| 1510 |
+
.b8 104
|
| 1511 |
+
.b8 101
|
| 1512 |
+
.b8 47
|
| 1513 |
+
.b8 99
|
| 1514 |
+
.b8 111
|
| 1515 |
+
.b8 109
|
| 1516 |
+
.b8 112
|
| 1517 |
+
.b8 105
|
| 1518 |
+
.b8 108
|
| 1519 |
+
.b8 101
|
| 1520 |
+
.b8 100
|
| 1521 |
+
.b8 95
|
| 1522 |
+
.b8 107
|
| 1523 |
+
.b8 101
|
| 1524 |
+
.b8 114
|
| 1525 |
+
.b8 110
|
| 1526 |
+
.b8 101
|
| 1527 |
+
.b8 108
|
| 1528 |
+
.b8 115
|
| 1529 |
+
.b8 47
|
| 1530 |
+
.b8 118
|
| 1531 |
+
.b8 121
|
| 1532 |
+
.b8 0
|
| 1533 |
+
}
|
| 1534 |
+
.section .debug_macinfo { }
|
SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.source
ADDED
|
@@ -0,0 +1,299 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":18:0)
|
| 2 |
+
#loc78 = loc("in_ptr0"(#loc))
|
| 3 |
+
#loc79 = loc("in_ptr1"(#loc))
|
| 4 |
+
#loc80 = loc("in_ptr2"(#loc))
|
| 5 |
+
#loc81 = loc("in_ptr3"(#loc))
|
| 6 |
+
#loc82 = loc("out_ptr0"(#loc))
|
| 7 |
+
#loc83 = loc("ks0"(#loc))
|
| 8 |
+
#loc84 = loc("ks1"(#loc))
|
| 9 |
+
#loc85 = loc("ks2"(#loc))
|
| 10 |
+
#loc86 = loc("ks3"(#loc))
|
| 11 |
+
#loc87 = loc("ks4"(#loc))
|
| 12 |
+
#loc88 = loc("xnumel"(#loc))
|
| 13 |
+
module {
|
| 14 |
+
tt.func public @triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0(%in_ptr0: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %in_ptr1: !tt.ptr<i64> {tt.divisibility = 16 : i32} loc("in_ptr1"(#loc)), %in_ptr2: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("in_ptr2"(#loc)), %in_ptr3: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("in_ptr3"(#loc)), %out_ptr0: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("out_ptr0"(#loc)), %ks0: i64 loc("ks0"(#loc)), %ks1: i64 loc("ks1"(#loc)), %ks2: i64 loc("ks2"(#loc)), %ks3: i64 loc("ks3"(#loc)), %ks4: i64 loc("ks4"(#loc)), %xnumel: i32 loc("xnumel"(#loc))) attributes {noinline = false} {
|
| 15 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc89)
|
| 16 |
+
%xoffset_0 = arith.constant 1024 : i32 loc(#loc90)
|
| 17 |
+
%xoffset_1 = arith.constant 1024 : i32 loc(#loc90)
|
| 18 |
+
%xoffset_2 = arith.muli %xoffset, %xoffset_1 : i32 loc(#loc90)
|
| 19 |
+
%xindex = tt.make_range {end = 1024 : i32, start = 0 : i32} : tensor<1024xi32> loc(#loc91)
|
| 20 |
+
%xindex_3 = tt.splat %xoffset_2 : i32 -> tensor<1024xi32> loc(#loc92)
|
| 21 |
+
%xindex_4 = arith.addi %xindex_3, %xindex : tensor<1024xi32> loc(#loc92)
|
| 22 |
+
%xmask = tt.splat %xnumel : i32 -> tensor<1024xi32> loc(#loc93)
|
| 23 |
+
%xmask_5 = arith.cmpi slt, %xindex_4, %xmask : tensor<1024xi32> loc(#loc93)
|
| 24 |
+
%x2 = arith.extsi %xindex_4 : tensor<1024xi32> to tensor<1024xi64> loc(#loc94)
|
| 25 |
+
%x2_6 = tt.splat %ks0 : i64 -> tensor<1024xi64> loc(#loc94)
|
| 26 |
+
%x2_7 = arith.divsi %x2, %x2_6 : tensor<1024xi64> loc(#loc94)
|
| 27 |
+
%x2_8 = tt.splat %ks1 : i64 -> tensor<1024xi64> loc(#loc95)
|
| 28 |
+
%x2_9 = arith.remsi %x2_7, %x2_8 : tensor<1024xi64> loc(#loc95)
|
| 29 |
+
%x0 = arith.extsi %xindex_4 : tensor<1024xi32> to tensor<1024xi64> loc(#loc96)
|
| 30 |
+
%x0_10 = tt.splat %ks3 : i64 -> tensor<1024xi64> loc(#loc96)
|
| 31 |
+
%x0_11 = arith.remsi %x0, %x0_10 : tensor<1024xi64> loc(#loc96)
|
| 32 |
+
%x5 = arith.extsi %xindex_4 : tensor<1024xi32> to tensor<1024xi64> loc(#loc97)
|
| 33 |
+
%x5_12 = tt.splat %ks3 : i64 -> tensor<1024xi64> loc(#loc97)
|
| 34 |
+
%x5_13 = arith.divsi %x5, %x5_12 : tensor<1024xi64> loc(#loc97)
|
| 35 |
+
%tmp0 = tt.splat %in_ptr0 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>> loc(#loc98)
|
| 36 |
+
%tmp0_14 = tt.addptr %tmp0, %xindex_4 : tensor<1024x!tt.ptr<bf16>>, tensor<1024xi32> loc(#loc98)
|
| 37 |
+
%tmp0_15 = tt.load %tmp0_14, %xmask_5 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>> loc(#loc99)
|
| 38 |
+
%tmp0_16 = arith.extf %tmp0_15 : tensor<1024xbf16> to tensor<1024xf32> loc(#loc100)
|
| 39 |
+
%tmp1 = tt.splat %in_ptr1 : !tt.ptr<i64> -> tensor<1024x!tt.ptr<i64>> loc(#loc101)
|
| 40 |
+
%tmp1_17 = tt.addptr %tmp1, %x2_9 : tensor<1024x!tt.ptr<i64>>, tensor<1024xi64> loc(#loc101)
|
| 41 |
+
%tmp1_18 = tt.load %tmp1_17, %xmask_5 evictionPolicy = evict_last : tensor<1024x!tt.ptr<i64>> loc(#loc102)
|
| 42 |
+
%tmp3 = tt.splat %ks2 : i64 -> tensor<1024xi64> loc(#loc103)
|
| 43 |
+
%tmp3_19 = arith.addi %tmp1_18, %tmp3 : tensor<1024xi64> loc(#loc103)
|
| 44 |
+
%tmp4 = arith.constant 0 : i32 loc(#loc104)
|
| 45 |
+
%tmp4_20 = arith.extsi %tmp4 : i32 to i64 loc(#loc104)
|
| 46 |
+
%tmp4_21 = tt.splat %tmp4_20 : i64 -> tensor<1024xi64> loc(#loc104)
|
| 47 |
+
%tmp4_22 = arith.cmpi slt, %tmp1_18, %tmp4_21 : tensor<1024xi64> loc(#loc104)
|
| 48 |
+
%tmp5 = arith.select %tmp4_22, %tmp3_19, %tmp1_18 : tensor<1024xi1>, tensor<1024xi64> loc(#loc105)
|
| 49 |
+
%c0_i32 = arith.constant 0 : i32 loc(#loc18)
|
| 50 |
+
%0 = arith.extsi %c0_i32 : i32 to i64 loc(#loc18)
|
| 51 |
+
%1 = tt.splat %0 : i64 -> tensor<1024xi64> loc(#loc18)
|
| 52 |
+
%2 = arith.cmpi sle, %1, %tmp5 : tensor<1024xi64> loc(#loc18)
|
| 53 |
+
%3 = tt.splat %ks2 : i64 -> tensor<1024xi64> loc(#loc19)
|
| 54 |
+
%4 = arith.cmpi slt, %tmp5, %3 : tensor<1024xi64> loc(#loc19)
|
| 55 |
+
%5 = arith.andi %2, %4 : tensor<1024xi1> loc(#loc20)
|
| 56 |
+
%true = arith.constant true loc(#loc21)
|
| 57 |
+
%cst = arith.constant dense<true> : tensor<1024xi1> loc(#loc21)
|
| 58 |
+
%6 = arith.xori %xmask_5, %cst : tensor<1024xi1> loc(#loc21)
|
| 59 |
+
%7 = arith.ori %5, %6 : tensor<1024xi1> loc(#loc22)
|
| 60 |
+
tt.assert %7, "index out of bounds: 0 <= tmp5 < ks2" : tensor<1024xi1> loc(#loc23)
|
| 61 |
+
%tmp7 = tt.splat %ks3 : i64 -> tensor<1024xi64> loc(#loc106)
|
| 62 |
+
%tmp7_23 = arith.muli %tmp7, %tmp5 : tensor<1024xi64> loc(#loc106)
|
| 63 |
+
%tmp7_24 = arith.addi %x0_11, %tmp7_23 : tensor<1024xi64> loc(#loc107)
|
| 64 |
+
%tmp7_25 = tt.splat %in_ptr2 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>> loc(#loc108)
|
| 65 |
+
%tmp7_26 = tt.addptr %tmp7_25, %tmp7_24 : tensor<1024x!tt.ptr<bf16>>, tensor<1024xi64> loc(#loc108)
|
| 66 |
+
%tmp7_27 = tt.load %tmp7_26, %xmask_5 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>> loc(#loc109)
|
| 67 |
+
%tmp7_28 = arith.extf %tmp7_27 : tensor<1024xbf16> to tensor<1024xf32> loc(#loc110)
|
| 68 |
+
%tmp8 = arith.mulf %tmp0_16, %tmp7_28 : tensor<1024xf32> loc(#loc111)
|
| 69 |
+
%tmp10 = arith.constant 0 : i64 loc(#loc112)
|
| 70 |
+
%tmp10_29 = arith.constant dense<0> : tensor<1xi64> loc(#loc112)
|
| 71 |
+
%tmp11 = arith.constant dense<0> : tensor<1024xi64> loc(#loc113)
|
| 72 |
+
%tmp11_30 = arith.cmpi sge, %x0_11, %tmp11 : tensor<1024xi64> loc(#loc113)
|
| 73 |
+
%tmp12 = arith.constant 2 : i32 loc(#loc114)
|
| 74 |
+
%tmp12_31 = arith.constant 2 : i64 loc(#loc114)
|
| 75 |
+
%tmp12_32 = arith.divsi %ks3, %tmp12_31 : i64 loc(#loc114)
|
| 76 |
+
%tmp12_33 = arith.constant -1 : i32 loc(#loc115)
|
| 77 |
+
%tmp12_34 = arith.constant -1 : i64 loc(#loc115)
|
| 78 |
+
%tmp12_35 = arith.muli %tmp12_34, %tmp12_32 : i64 loc(#loc115)
|
| 79 |
+
%tmp12_36 = arith.addi %ks3, %tmp12_35 : i64 loc(#loc116)
|
| 80 |
+
%tmp13 = tt.splat %tmp12_36 : i64 -> tensor<1024xi64> loc(#loc117)
|
| 81 |
+
%tmp13_37 = arith.cmpi slt, %x0_11, %tmp13 : tensor<1024xi64> loc(#loc117)
|
| 82 |
+
%tmp14 = tt.splat %ks3 : i64 -> tensor<1024xi64> loc(#loc118)
|
| 83 |
+
%tmp14_38 = arith.muli %tmp14, %x5_13 : tensor<1024xi64> loc(#loc118)
|
| 84 |
+
%tmp14_39 = arith.constant 2 : i32 loc(#loc119)
|
| 85 |
+
%tmp14_40 = arith.constant 2 : i64 loc(#loc119)
|
| 86 |
+
%tmp14_41 = arith.divsi %ks3, %tmp14_40 : i64 loc(#loc119)
|
| 87 |
+
%tmp14_42 = tt.splat %tmp14_41 : i64 -> tensor<1024xi64> loc(#loc120)
|
| 88 |
+
%tmp14_43 = arith.addi %tmp14_38, %tmp14_42 : tensor<1024xi64> loc(#loc120)
|
| 89 |
+
%tmp14_44 = arith.addi %tmp14_43, %x0_11 : tensor<1024xi64> loc(#loc121)
|
| 90 |
+
%tmp14_45 = tt.splat %in_ptr0 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>> loc(#loc122)
|
| 91 |
+
%tmp14_46 = tt.addptr %tmp14_45, %tmp14_44 : tensor<1024x!tt.ptr<bf16>>, tensor<1024xi64> loc(#loc122)
|
| 92 |
+
%tmp14_47 = arith.andi %tmp13_37, %xmask_5 : tensor<1024xi1> loc(#loc123)
|
| 93 |
+
%tmp14_48 = arith.constant 0.000000e+00 : f32 loc(#loc124)
|
| 94 |
+
%tmp14_49 = arith.constant dense<0.000000e+00> : tensor<1024xf32> loc(#loc124)
|
| 95 |
+
%tmp14_50 = arith.truncf %tmp14_49 : tensor<1024xf32> to tensor<1024xbf16> loc(#loc124)
|
| 96 |
+
%tmp14_51 = tt.load %tmp14_46, %tmp14_47, %tmp14_50 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>> loc(#loc124)
|
| 97 |
+
%tmp14_52 = arith.extf %tmp14_51 : tensor<1024xbf16> to tensor<1024xf32> loc(#loc125)
|
| 98 |
+
%tmp15 = arith.constant 0.000000e+00 : f32 loc(#loc126)
|
| 99 |
+
%tmp15_53 = arith.constant dense<0.000000e+00> : tensor<1024xf32> loc(#loc126)
|
| 100 |
+
%tmp15_54 = arith.subf %tmp15_53, %tmp14_52 : tensor<1024xf32> loc(#loc126)
|
| 101 |
+
%tmp16 = arith.constant 0.000000e+00 : f32 loc(#loc127)
|
| 102 |
+
%tmp16_55 = arith.constant dense<0.000000e+00> : tensor<1024xf32> loc(#loc127)
|
| 103 |
+
%tmp17 = arith.select %tmp13_37, %tmp15_54, %tmp16_55 : tensor<1024xi1>, tensor<1024xf32> loc(#loc128)
|
| 104 |
+
%tmp18 = tt.splat %tmp12_36 : i64 -> tensor<1024xi64> loc(#loc129)
|
| 105 |
+
%tmp18_56 = arith.cmpi sge, %x0_11, %tmp18 : tensor<1024xi64> loc(#loc129)
|
| 106 |
+
%tmp20 = tt.splat %ks3 : i64 -> tensor<1024xi64> loc(#loc130)
|
| 107 |
+
%tmp20_57 = arith.cmpi slt, %x0_11, %tmp20 : tensor<1024xi64> loc(#loc130)
|
| 108 |
+
%tmp21 = tt.splat %ks3 : i64 -> tensor<1024xi64> loc(#loc131)
|
| 109 |
+
%tmp21_58 = arith.muli %tmp21, %x5_13 : tensor<1024xi64> loc(#loc131)
|
| 110 |
+
%tmp21_59 = arith.constant -1 : i32 loc(#loc132)
|
| 111 |
+
%tmp21_60 = arith.constant -1 : i64 loc(#loc132)
|
| 112 |
+
%tmp21_61 = arith.muli %tmp21_60, %ks3 : i64 loc(#loc132)
|
| 113 |
+
%tmp21_62 = tt.splat %tmp21_61 : i64 -> tensor<1024xi64> loc(#loc133)
|
| 114 |
+
%tmp21_63 = arith.addi %x0_11, %tmp21_62 : tensor<1024xi64> loc(#loc133)
|
| 115 |
+
%tmp21_64 = arith.constant 2 : i32 loc(#loc134)
|
| 116 |
+
%tmp21_65 = arith.constant 2 : i64 loc(#loc134)
|
| 117 |
+
%tmp21_66 = arith.divsi %ks3, %tmp21_65 : i64 loc(#loc134)
|
| 118 |
+
%tmp21_67 = tt.splat %tmp21_66 : i64 -> tensor<1024xi64> loc(#loc135)
|
| 119 |
+
%tmp21_68 = arith.addi %tmp21_63, %tmp21_67 : tensor<1024xi64> loc(#loc135)
|
| 120 |
+
%tmp21_69 = arith.addi %tmp21_58, %tmp21_68 : tensor<1024xi64> loc(#loc136)
|
| 121 |
+
%tmp21_70 = tt.splat %in_ptr0 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>> loc(#loc137)
|
| 122 |
+
%tmp21_71 = tt.addptr %tmp21_70, %tmp21_69 : tensor<1024x!tt.ptr<bf16>>, tensor<1024xi64> loc(#loc137)
|
| 123 |
+
%tmp21_72 = arith.andi %tmp18_56, %xmask_5 : tensor<1024xi1> loc(#loc138)
|
| 124 |
+
%tmp21_73 = arith.constant 0.000000e+00 : f32 loc(#loc139)
|
| 125 |
+
%tmp21_74 = arith.constant dense<0.000000e+00> : tensor<1024xf32> loc(#loc139)
|
| 126 |
+
%tmp21_75 = arith.truncf %tmp21_74 : tensor<1024xf32> to tensor<1024xbf16> loc(#loc139)
|
| 127 |
+
%tmp21_76 = tt.load %tmp21_71, %tmp21_72, %tmp21_75 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>> loc(#loc139)
|
| 128 |
+
%tmp21_77 = arith.extf %tmp21_76 : tensor<1024xbf16> to tensor<1024xf32> loc(#loc140)
|
| 129 |
+
%tmp22 = arith.select %tmp13_37, %tmp17, %tmp21_77 : tensor<1024xi1>, tensor<1024xf32> loc(#loc141)
|
| 130 |
+
%tmp24 = tt.splat %ks4 : i64 -> tensor<1024xi64> loc(#loc142)
|
| 131 |
+
%tmp24_78 = arith.addi %tmp1_18, %tmp24 : tensor<1024xi64> loc(#loc142)
|
| 132 |
+
%tmp25 = arith.select %tmp4_22, %tmp24_78, %tmp1_18 : tensor<1024xi1>, tensor<1024xi64> loc(#loc143)
|
| 133 |
+
%c0_i32_79 = arith.constant 0 : i32 loc(#loc62)
|
| 134 |
+
%8 = arith.extsi %c0_i32_79 : i32 to i64 loc(#loc62)
|
| 135 |
+
%9 = tt.splat %8 : i64 -> tensor<1024xi64> loc(#loc62)
|
| 136 |
+
%10 = arith.cmpi sle, %9, %tmp25 : tensor<1024xi64> loc(#loc62)
|
| 137 |
+
%11 = tt.splat %ks4 : i64 -> tensor<1024xi64> loc(#loc63)
|
| 138 |
+
%12 = arith.cmpi slt, %tmp25, %11 : tensor<1024xi64> loc(#loc63)
|
| 139 |
+
%13 = arith.andi %10, %12 : tensor<1024xi1> loc(#loc64)
|
| 140 |
+
%true_80 = arith.constant true loc(#loc65)
|
| 141 |
+
%cst_81 = arith.constant dense<true> : tensor<1024xi1> loc(#loc65)
|
| 142 |
+
%14 = arith.xori %xmask_5, %cst_81 : tensor<1024xi1> loc(#loc65)
|
| 143 |
+
%15 = arith.ori %13, %14 : tensor<1024xi1> loc(#loc66)
|
| 144 |
+
tt.assert %15, "index out of bounds: 0 <= tmp25 < ks4" : tensor<1024xi1> loc(#loc67)
|
| 145 |
+
%tmp27 = tt.splat %ks3 : i64 -> tensor<1024xi64> loc(#loc144)
|
| 146 |
+
%tmp27_82 = arith.muli %tmp27, %tmp25 : tensor<1024xi64> loc(#loc144)
|
| 147 |
+
%tmp27_83 = arith.addi %x0_11, %tmp27_82 : tensor<1024xi64> loc(#loc145)
|
| 148 |
+
%tmp27_84 = tt.splat %in_ptr3 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>> loc(#loc146)
|
| 149 |
+
%tmp27_85 = tt.addptr %tmp27_84, %tmp27_83 : tensor<1024x!tt.ptr<bf16>>, tensor<1024xi64> loc(#loc146)
|
| 150 |
+
%tmp27_86 = tt.load %tmp27_85, %xmask_5 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>> loc(#loc147)
|
| 151 |
+
%tmp27_87 = arith.extf %tmp27_86 : tensor<1024xbf16> to tensor<1024xf32> loc(#loc148)
|
| 152 |
+
%tmp28 = arith.mulf %tmp22, %tmp27_87 : tensor<1024xf32> loc(#loc149)
|
| 153 |
+
%tmp29 = arith.addf %tmp8, %tmp28 : tensor<1024xf32> loc(#loc150)
|
| 154 |
+
%16 = tt.splat %out_ptr0 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>> loc(#loc75)
|
| 155 |
+
%17 = tt.addptr %16, %xindex_4 : tensor<1024x!tt.ptr<bf16>>, tensor<1024xi32> loc(#loc75)
|
| 156 |
+
%18 = arith.truncf %tmp29 : tensor<1024xf32> to tensor<1024xbf16> loc(#loc76)
|
| 157 |
+
tt.store %17, %18, %xmask_5 : tensor<1024x!tt.ptr<bf16>> loc(#loc76)
|
| 158 |
+
tt.return loc(#loc77)
|
| 159 |
+
} loc(#loc)
|
| 160 |
+
} loc(#loc)
|
| 161 |
+
#loc1 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":19:28)
|
| 162 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":19:33)
|
| 163 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":20:36)
|
| 164 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":20:23)
|
| 165 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":21:21)
|
| 166 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":23:21)
|
| 167 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":23:28)
|
| 168 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":24:19)
|
| 169 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":25:19)
|
| 170 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":26:30)
|
| 171 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":26:35)
|
| 172 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":26:75)
|
| 173 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":27:30)
|
| 174 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":27:35)
|
| 175 |
+
#loc15 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":29:18)
|
| 176 |
+
#loc16 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":30:18)
|
| 177 |
+
#loc17 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":31:32)
|
| 178 |
+
#loc18 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:28)
|
| 179 |
+
#loc19 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:44)
|
| 180 |
+
#loc20 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:37)
|
| 181 |
+
#loc21 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:54)
|
| 182 |
+
#loc22 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:52)
|
| 183 |
+
#loc23 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:62)
|
| 184 |
+
#loc24 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:39)
|
| 185 |
+
#loc25 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:35)
|
| 186 |
+
#loc26 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:30)
|
| 187 |
+
#loc27 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:46)
|
| 188 |
+
#loc28 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:86)
|
| 189 |
+
#loc29 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":34:18)
|
| 190 |
+
#loc30 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":36:28)
|
| 191 |
+
#loc31 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":37:20)
|
| 192 |
+
#loc32 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":38:31)
|
| 193 |
+
#loc33 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":38:24)
|
| 194 |
+
#loc34 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":38:18)
|
| 195 |
+
#loc35 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":39:19)
|
| 196 |
+
#loc36 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:35)
|
| 197 |
+
#loc37 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:48)
|
| 198 |
+
#loc38 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:41)
|
| 199 |
+
#loc39 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:54)
|
| 200 |
+
#loc40 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:31)
|
| 201 |
+
#loc41 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:68)
|
| 202 |
+
#loc42 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:60)
|
| 203 |
+
#loc43 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:119)
|
| 204 |
+
#loc44 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":41:13)
|
| 205 |
+
#loc45 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":42:38)
|
| 206 |
+
#loc46 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":43:35)
|
| 207 |
+
#loc47 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":44:20)
|
| 208 |
+
#loc48 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":46:19)
|
| 209 |
+
#loc49 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:35)
|
| 210 |
+
#loc50 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:52)
|
| 211 |
+
#loc51 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:47)
|
| 212 |
+
#loc52 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:67)
|
| 213 |
+
#loc53 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:60)
|
| 214 |
+
#loc54 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:41)
|
| 215 |
+
#loc55 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:31)
|
| 216 |
+
#loc56 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:81)
|
| 217 |
+
#loc57 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:73)
|
| 218 |
+
#loc58 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:132)
|
| 219 |
+
#loc59 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":48:35)
|
| 220 |
+
#loc60 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":50:19)
|
| 221 |
+
#loc61 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":51:34)
|
| 222 |
+
#loc62 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:28)
|
| 223 |
+
#loc63 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:46)
|
| 224 |
+
#loc64 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:38)
|
| 225 |
+
#loc65 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:56)
|
| 226 |
+
#loc66 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:54)
|
| 227 |
+
#loc67 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:64)
|
| 228 |
+
#loc68 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:40)
|
| 229 |
+
#loc69 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:36)
|
| 230 |
+
#loc70 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:31)
|
| 231 |
+
#loc71 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:48)
|
| 232 |
+
#loc72 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:88)
|
| 233 |
+
#loc73 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":54:20)
|
| 234 |
+
#loc74 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":55:19)
|
| 235 |
+
#loc75 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":56:25)
|
| 236 |
+
#loc76 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":56:37)
|
| 237 |
+
#loc77 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":56:4)
|
| 238 |
+
#loc89 = loc("xoffset"(#loc1))
|
| 239 |
+
#loc90 = loc("xoffset"(#loc2))
|
| 240 |
+
#loc91 = loc("xindex"(#loc3))
|
| 241 |
+
#loc92 = loc("xindex"(#loc4))
|
| 242 |
+
#loc93 = loc("xmask"(#loc5))
|
| 243 |
+
#loc94 = loc("x2"(#loc6))
|
| 244 |
+
#loc95 = loc("x2"(#loc7))
|
| 245 |
+
#loc96 = loc("x0"(#loc8))
|
| 246 |
+
#loc97 = loc("x5"(#loc9))
|
| 247 |
+
#loc98 = loc("tmp0"(#loc10))
|
| 248 |
+
#loc99 = loc("tmp0"(#loc11))
|
| 249 |
+
#loc100 = loc("tmp0"(#loc12))
|
| 250 |
+
#loc101 = loc("tmp1"(#loc13))
|
| 251 |
+
#loc102 = loc("tmp1"(#loc14))
|
| 252 |
+
#loc103 = loc("tmp3"(#loc15))
|
| 253 |
+
#loc104 = loc("tmp4"(#loc16))
|
| 254 |
+
#loc105 = loc("tmp5"(#loc17))
|
| 255 |
+
#loc106 = loc("tmp7"(#loc24))
|
| 256 |
+
#loc107 = loc("tmp7"(#loc25))
|
| 257 |
+
#loc108 = loc("tmp7"(#loc26))
|
| 258 |
+
#loc109 = loc("tmp7"(#loc27))
|
| 259 |
+
#loc110 = loc("tmp7"(#loc28))
|
| 260 |
+
#loc111 = loc("tmp8"(#loc29))
|
| 261 |
+
#loc112 = loc("tmp10"(#loc30))
|
| 262 |
+
#loc113 = loc("tmp11"(#loc31))
|
| 263 |
+
#loc114 = loc("tmp12"(#loc32))
|
| 264 |
+
#loc115 = loc("tmp12"(#loc33))
|
| 265 |
+
#loc116 = loc("tmp12"(#loc34))
|
| 266 |
+
#loc117 = loc("tmp13"(#loc35))
|
| 267 |
+
#loc118 = loc("tmp14"(#loc36))
|
| 268 |
+
#loc119 = loc("tmp14"(#loc37))
|
| 269 |
+
#loc120 = loc("tmp14"(#loc38))
|
| 270 |
+
#loc121 = loc("tmp14"(#loc39))
|
| 271 |
+
#loc122 = loc("tmp14"(#loc40))
|
| 272 |
+
#loc123 = loc("tmp14"(#loc41))
|
| 273 |
+
#loc124 = loc("tmp14"(#loc42))
|
| 274 |
+
#loc125 = loc("tmp14"(#loc43))
|
| 275 |
+
#loc126 = loc("tmp15"(#loc44))
|
| 276 |
+
#loc127 = loc("tmp16"(#loc45))
|
| 277 |
+
#loc128 = loc("tmp17"(#loc46))
|
| 278 |
+
#loc129 = loc("tmp18"(#loc47))
|
| 279 |
+
#loc130 = loc("tmp20"(#loc48))
|
| 280 |
+
#loc131 = loc("tmp21"(#loc49))
|
| 281 |
+
#loc132 = loc("tmp21"(#loc50))
|
| 282 |
+
#loc133 = loc("tmp21"(#loc51))
|
| 283 |
+
#loc134 = loc("tmp21"(#loc52))
|
| 284 |
+
#loc135 = loc("tmp21"(#loc53))
|
| 285 |
+
#loc136 = loc("tmp21"(#loc54))
|
| 286 |
+
#loc137 = loc("tmp21"(#loc55))
|
| 287 |
+
#loc138 = loc("tmp21"(#loc56))
|
| 288 |
+
#loc139 = loc("tmp21"(#loc57))
|
| 289 |
+
#loc140 = loc("tmp21"(#loc58))
|
| 290 |
+
#loc141 = loc("tmp22"(#loc59))
|
| 291 |
+
#loc142 = loc("tmp24"(#loc60))
|
| 292 |
+
#loc143 = loc("tmp25"(#loc61))
|
| 293 |
+
#loc144 = loc("tmp27"(#loc68))
|
| 294 |
+
#loc145 = loc("tmp27"(#loc69))
|
| 295 |
+
#loc146 = loc("tmp27"(#loc70))
|
| 296 |
+
#loc147 = loc("tmp27"(#loc71))
|
| 297 |
+
#loc148 = loc("tmp27"(#loc72))
|
| 298 |
+
#loc149 = loc("tmp28"(#loc73))
|
| 299 |
+
#loc150 = loc("tmp29"(#loc74))
|
SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.ttgir
ADDED
|
@@ -0,0 +1,232 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#blocked = #ttg.blocked<{sizePerThread = [8], threadsPerWarp = [32], warpsPerCTA = [4], order = [0]}>
|
| 2 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":18:0)
|
| 3 |
+
#loc70 = loc("in_ptr0"(#loc))
|
| 4 |
+
#loc71 = loc("in_ptr1"(#loc))
|
| 5 |
+
#loc72 = loc("in_ptr2"(#loc))
|
| 6 |
+
#loc73 = loc("in_ptr3"(#loc))
|
| 7 |
+
#loc74 = loc("out_ptr0"(#loc))
|
| 8 |
+
#loc75 = loc("ks0"(#loc))
|
| 9 |
+
#loc76 = loc("ks1"(#loc))
|
| 10 |
+
#loc77 = loc("ks2"(#loc))
|
| 11 |
+
#loc78 = loc("ks3"(#loc))
|
| 12 |
+
#loc79 = loc("ks4"(#loc))
|
| 13 |
+
#loc80 = loc("xnumel"(#loc))
|
| 14 |
+
module attributes {"ttg.num-ctas" = 1 : i32, "ttg.num-warps" = 4 : i32, ttg.target = "cuda:90", "ttg.threads-per-warp" = 32 : i32} {
|
| 15 |
+
tt.func public @triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0(%in_ptr0: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %in_ptr1: !tt.ptr<i64> {tt.divisibility = 16 : i32} loc("in_ptr1"(#loc)), %in_ptr2: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("in_ptr2"(#loc)), %in_ptr3: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("in_ptr3"(#loc)), %out_ptr0: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("out_ptr0"(#loc)), %ks0: i64 loc("ks0"(#loc)), %ks1: i64 loc("ks1"(#loc)), %ks2: i64 loc("ks2"(#loc)), %ks3: i64 loc("ks3"(#loc)), %ks4: i64 loc("ks4"(#loc)), %xnumel: i32 loc("xnumel"(#loc))) attributes {noinline = false} {
|
| 16 |
+
%cst = arith.constant dense<true> : tensor<1024xi1, #blocked> loc(#loc1)
|
| 17 |
+
%c1024_i32 = arith.constant 1024 : i32 loc(#loc1)
|
| 18 |
+
%cst_0 = arith.constant dense<0.000000e+00> : tensor<1024xbf16, #blocked> loc(#loc1)
|
| 19 |
+
%c2_i64 = arith.constant 2 : i64 loc(#loc1)
|
| 20 |
+
%c-1_i64 = arith.constant -1 : i64 loc(#loc1)
|
| 21 |
+
%cst_1 = arith.constant dense<0> : tensor<1024xi64, #blocked> loc(#loc1)
|
| 22 |
+
%cst_2 = arith.constant dense<0.000000e+00> : tensor<1024xf32, #blocked> loc(#loc1)
|
| 23 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc81)
|
| 24 |
+
%xoffset_3 = arith.muli %xoffset, %c1024_i32 : i32 loc(#loc82)
|
| 25 |
+
%xindex = tt.make_range {end = 1024 : i32, start = 0 : i32} : tensor<1024xi32, #blocked> loc(#loc83)
|
| 26 |
+
%xindex_4 = tt.splat %xoffset_3 : i32 -> tensor<1024xi32, #blocked> loc(#loc84)
|
| 27 |
+
%xindex_5 = arith.addi %xindex_4, %xindex : tensor<1024xi32, #blocked> loc(#loc84)
|
| 28 |
+
%xmask = tt.splat %xnumel : i32 -> tensor<1024xi32, #blocked> loc(#loc85)
|
| 29 |
+
%xmask_6 = arith.cmpi slt, %xindex_5, %xmask : tensor<1024xi32, #blocked> loc(#loc85)
|
| 30 |
+
%x2 = arith.extsi %xindex_5 : tensor<1024xi32, #blocked> to tensor<1024xi64, #blocked> loc(#loc86)
|
| 31 |
+
%x2_7 = tt.splat %ks0 : i64 -> tensor<1024xi64, #blocked> loc(#loc86)
|
| 32 |
+
%x2_8 = arith.divsi %x2, %x2_7 : tensor<1024xi64, #blocked> loc(#loc86)
|
| 33 |
+
%x2_9 = tt.splat %ks1 : i64 -> tensor<1024xi64, #blocked> loc(#loc87)
|
| 34 |
+
%x2_10 = arith.remsi %x2_8, %x2_9 : tensor<1024xi64, #blocked> loc(#loc87)
|
| 35 |
+
%x0 = tt.splat %ks3 : i64 -> tensor<1024xi64, #blocked> loc(#loc88)
|
| 36 |
+
%x0_11 = arith.remsi %x2, %x0 : tensor<1024xi64, #blocked> loc(#loc88)
|
| 37 |
+
%x5 = arith.divsi %x2, %x0 : tensor<1024xi64, #blocked> loc(#loc89)
|
| 38 |
+
%tmp0 = tt.splat %in_ptr0 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>, #blocked> loc(#loc90)
|
| 39 |
+
%tmp0_12 = tt.addptr %tmp0, %xindex_5 : tensor<1024x!tt.ptr<bf16>, #blocked>, tensor<1024xi32, #blocked> loc(#loc90)
|
| 40 |
+
%tmp0_13 = tt.load %tmp0_12, %xmask_6 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>, #blocked> loc(#loc91)
|
| 41 |
+
%tmp0_14 = arith.extf %tmp0_13 : tensor<1024xbf16, #blocked> to tensor<1024xf32, #blocked> loc(#loc92)
|
| 42 |
+
%tmp1 = tt.splat %in_ptr1 : !tt.ptr<i64> -> tensor<1024x!tt.ptr<i64>, #blocked> loc(#loc93)
|
| 43 |
+
%tmp1_15 = tt.addptr %tmp1, %x2_10 : tensor<1024x!tt.ptr<i64>, #blocked>, tensor<1024xi64, #blocked> loc(#loc93)
|
| 44 |
+
%tmp1_16 = tt.load %tmp1_15, %xmask_6 evictionPolicy = evict_last : tensor<1024x!tt.ptr<i64>, #blocked> loc(#loc94)
|
| 45 |
+
%tmp3 = tt.splat %ks2 : i64 -> tensor<1024xi64, #blocked> loc(#loc95)
|
| 46 |
+
%tmp3_17 = arith.addi %tmp1_16, %tmp3 : tensor<1024xi64, #blocked> loc(#loc95)
|
| 47 |
+
%tmp4 = arith.cmpi slt, %tmp1_16, %cst_1 : tensor<1024xi64, #blocked> loc(#loc96)
|
| 48 |
+
%tmp5 = arith.select %tmp4, %tmp3_17, %tmp1_16 : tensor<1024xi1, #blocked>, tensor<1024xi64, #blocked> loc(#loc97)
|
| 49 |
+
%0 = arith.cmpi sge, %tmp5, %cst_1 : tensor<1024xi64, #blocked> loc(#loc19)
|
| 50 |
+
%1 = arith.cmpi slt, %tmp5, %tmp3 : tensor<1024xi64, #blocked> loc(#loc20)
|
| 51 |
+
%2 = arith.andi %0, %1 : tensor<1024xi1, #blocked> loc(#loc21)
|
| 52 |
+
%3 = arith.xori %xmask_6, %cst : tensor<1024xi1, #blocked> loc(#loc22)
|
| 53 |
+
%4 = arith.ori %2, %3 : tensor<1024xi1, #blocked> loc(#loc23)
|
| 54 |
+
tt.assert %4, "index out of bounds: 0 <= tmp5 < ks2" : tensor<1024xi1, #blocked> loc(#loc24)
|
| 55 |
+
%tmp7 = arith.muli %x0, %tmp5 : tensor<1024xi64, #blocked> loc(#loc98)
|
| 56 |
+
%tmp7_18 = arith.addi %x0_11, %tmp7 : tensor<1024xi64, #blocked> loc(#loc99)
|
| 57 |
+
%tmp7_19 = tt.splat %in_ptr2 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>, #blocked> loc(#loc100)
|
| 58 |
+
%tmp7_20 = tt.addptr %tmp7_19, %tmp7_18 : tensor<1024x!tt.ptr<bf16>, #blocked>, tensor<1024xi64, #blocked> loc(#loc100)
|
| 59 |
+
%tmp7_21 = tt.load %tmp7_20, %xmask_6 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>, #blocked> loc(#loc101)
|
| 60 |
+
%tmp7_22 = arith.extf %tmp7_21 : tensor<1024xbf16, #blocked> to tensor<1024xf32, #blocked> loc(#loc102)
|
| 61 |
+
%tmp8 = arith.mulf %tmp0_14, %tmp7_22 : tensor<1024xf32, #blocked> loc(#loc103)
|
| 62 |
+
%tmp12 = arith.divsi %ks3, %c2_i64 : i64 loc(#loc104)
|
| 63 |
+
%tmp12_23 = arith.subi %ks3, %tmp12 : i64 loc(#loc105)
|
| 64 |
+
%tmp13 = tt.splat %tmp12_23 : i64 -> tensor<1024xi64, #blocked> loc(#loc106)
|
| 65 |
+
%tmp13_24 = arith.cmpi slt, %x0_11, %tmp13 : tensor<1024xi64, #blocked> loc(#loc106)
|
| 66 |
+
%tmp14 = arith.muli %x0, %x5 : tensor<1024xi64, #blocked> loc(#loc107)
|
| 67 |
+
%tmp14_25 = tt.splat %tmp12 : i64 -> tensor<1024xi64, #blocked> loc(#loc108)
|
| 68 |
+
%tmp14_26 = arith.addi %tmp14, %tmp14_25 : tensor<1024xi64, #blocked> loc(#loc108)
|
| 69 |
+
%tmp14_27 = arith.addi %tmp14_26, %x0_11 : tensor<1024xi64, #blocked> loc(#loc109)
|
| 70 |
+
%tmp14_28 = tt.addptr %tmp0, %tmp14_27 : tensor<1024x!tt.ptr<bf16>, #blocked>, tensor<1024xi64, #blocked> loc(#loc110)
|
| 71 |
+
%tmp14_29 = arith.andi %tmp13_24, %xmask_6 : tensor<1024xi1, #blocked> loc(#loc111)
|
| 72 |
+
%tmp14_30 = tt.load %tmp14_28, %tmp14_29, %cst_0 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>, #blocked> loc(#loc112)
|
| 73 |
+
%tmp14_31 = arith.extf %tmp14_30 : tensor<1024xbf16, #blocked> to tensor<1024xf32, #blocked> loc(#loc113)
|
| 74 |
+
%tmp15 = arith.subf %cst_2, %tmp14_31 : tensor<1024xf32, #blocked> loc(#loc114)
|
| 75 |
+
%tmp18 = arith.cmpi sge, %x0_11, %tmp13 : tensor<1024xi64, #blocked> loc(#loc115)
|
| 76 |
+
%tmp21 = arith.muli %ks3, %c-1_i64 : i64 loc(#loc116)
|
| 77 |
+
%tmp21_32 = tt.splat %tmp21 : i64 -> tensor<1024xi64, #blocked> loc(#loc117)
|
| 78 |
+
%tmp21_33 = arith.addi %x0_11, %tmp21_32 : tensor<1024xi64, #blocked> loc(#loc117)
|
| 79 |
+
%tmp21_34 = arith.addi %tmp21_33, %tmp14_25 : tensor<1024xi64, #blocked> loc(#loc118)
|
| 80 |
+
%tmp21_35 = arith.addi %tmp14, %tmp21_34 : tensor<1024xi64, #blocked> loc(#loc119)
|
| 81 |
+
%tmp21_36 = tt.addptr %tmp0, %tmp21_35 : tensor<1024x!tt.ptr<bf16>, #blocked>, tensor<1024xi64, #blocked> loc(#loc120)
|
| 82 |
+
%tmp21_37 = arith.andi %tmp18, %xmask_6 : tensor<1024xi1, #blocked> loc(#loc121)
|
| 83 |
+
%tmp21_38 = tt.load %tmp21_36, %tmp21_37, %cst_0 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>, #blocked> loc(#loc122)
|
| 84 |
+
%tmp21_39 = arith.extf %tmp21_38 : tensor<1024xbf16, #blocked> to tensor<1024xf32, #blocked> loc(#loc123)
|
| 85 |
+
%tmp22 = arith.select %tmp13_24, %tmp15, %tmp21_39 : tensor<1024xi1, #blocked>, tensor<1024xf32, #blocked> loc(#loc135)
|
| 86 |
+
%tmp24 = tt.splat %ks4 : i64 -> tensor<1024xi64, #blocked> loc(#loc126)
|
| 87 |
+
%tmp24_40 = arith.addi %tmp1_16, %tmp24 : tensor<1024xi64, #blocked> loc(#loc126)
|
| 88 |
+
%tmp25 = arith.select %tmp4, %tmp24_40, %tmp1_16 : tensor<1024xi1, #blocked>, tensor<1024xi64, #blocked> loc(#loc127)
|
| 89 |
+
%5 = arith.cmpi sge, %tmp25, %cst_1 : tensor<1024xi64, #blocked> loc(#loc55)
|
| 90 |
+
%6 = arith.cmpi slt, %tmp25, %tmp24 : tensor<1024xi64, #blocked> loc(#loc56)
|
| 91 |
+
%7 = arith.andi %5, %6 : tensor<1024xi1, #blocked> loc(#loc57)
|
| 92 |
+
%8 = arith.ori %7, %3 : tensor<1024xi1, #blocked> loc(#loc58)
|
| 93 |
+
tt.assert %8, "index out of bounds: 0 <= tmp25 < ks4" : tensor<1024xi1, #blocked> loc(#loc59)
|
| 94 |
+
%tmp27 = arith.muli %x0, %tmp25 : tensor<1024xi64, #blocked> loc(#loc128)
|
| 95 |
+
%tmp27_41 = arith.addi %x0_11, %tmp27 : tensor<1024xi64, #blocked> loc(#loc129)
|
| 96 |
+
%tmp27_42 = tt.splat %in_ptr3 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>, #blocked> loc(#loc130)
|
| 97 |
+
%tmp27_43 = tt.addptr %tmp27_42, %tmp27_41 : tensor<1024x!tt.ptr<bf16>, #blocked>, tensor<1024xi64, #blocked> loc(#loc130)
|
| 98 |
+
%tmp27_44 = tt.load %tmp27_43, %xmask_6 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>, #blocked> loc(#loc131)
|
| 99 |
+
%tmp27_45 = arith.extf %tmp27_44 : tensor<1024xbf16, #blocked> to tensor<1024xf32, #blocked> loc(#loc132)
|
| 100 |
+
%tmp28 = arith.mulf %tmp22, %tmp27_45 : tensor<1024xf32, #blocked> loc(#loc133)
|
| 101 |
+
%tmp29 = arith.addf %tmp8, %tmp28 : tensor<1024xf32, #blocked> loc(#loc134)
|
| 102 |
+
%9 = tt.splat %out_ptr0 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>, #blocked> loc(#loc67)
|
| 103 |
+
%10 = tt.addptr %9, %xindex_5 : tensor<1024x!tt.ptr<bf16>, #blocked>, tensor<1024xi32, #blocked> loc(#loc67)
|
| 104 |
+
%11 = arith.truncf %tmp29 : tensor<1024xf32, #blocked> to tensor<1024xbf16, #blocked> loc(#loc68)
|
| 105 |
+
tt.store %10, %11, %xmask_6 : tensor<1024x!tt.ptr<bf16>, #blocked> loc(#loc68)
|
| 106 |
+
tt.return loc(#loc69)
|
| 107 |
+
} loc(#loc)
|
| 108 |
+
} loc(#loc)
|
| 109 |
+
#loc1 = loc(unknown)
|
| 110 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":19:28)
|
| 111 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":19:33)
|
| 112 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":20:36)
|
| 113 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":20:23)
|
| 114 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":21:21)
|
| 115 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":23:21)
|
| 116 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":23:28)
|
| 117 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":24:19)
|
| 118 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":25:19)
|
| 119 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":26:30)
|
| 120 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":26:35)
|
| 121 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":26:75)
|
| 122 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":27:30)
|
| 123 |
+
#loc15 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":27:35)
|
| 124 |
+
#loc16 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":29:18)
|
| 125 |
+
#loc17 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":30:18)
|
| 126 |
+
#loc18 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":31:32)
|
| 127 |
+
#loc19 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:28)
|
| 128 |
+
#loc20 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:44)
|
| 129 |
+
#loc21 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:37)
|
| 130 |
+
#loc22 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:54)
|
| 131 |
+
#loc23 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:52)
|
| 132 |
+
#loc24 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:62)
|
| 133 |
+
#loc25 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:39)
|
| 134 |
+
#loc26 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:35)
|
| 135 |
+
#loc27 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:30)
|
| 136 |
+
#loc28 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:46)
|
| 137 |
+
#loc29 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:86)
|
| 138 |
+
#loc30 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":34:18)
|
| 139 |
+
#loc31 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":38:31)
|
| 140 |
+
#loc32 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":38:18)
|
| 141 |
+
#loc33 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":39:19)
|
| 142 |
+
#loc34 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:35)
|
| 143 |
+
#loc35 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:41)
|
| 144 |
+
#loc36 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:54)
|
| 145 |
+
#loc37 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:31)
|
| 146 |
+
#loc38 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:68)
|
| 147 |
+
#loc39 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:60)
|
| 148 |
+
#loc40 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:119)
|
| 149 |
+
#loc41 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":41:13)
|
| 150 |
+
#loc42 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":44:20)
|
| 151 |
+
#loc43 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:52)
|
| 152 |
+
#loc44 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:47)
|
| 153 |
+
#loc45 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:60)
|
| 154 |
+
#loc46 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:41)
|
| 155 |
+
#loc47 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:31)
|
| 156 |
+
#loc48 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:81)
|
| 157 |
+
#loc49 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:73)
|
| 158 |
+
#loc50 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:132)
|
| 159 |
+
#loc51 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":48:35)
|
| 160 |
+
#loc52 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":43:35)
|
| 161 |
+
#loc53 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":50:19)
|
| 162 |
+
#loc54 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":51:34)
|
| 163 |
+
#loc55 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:28)
|
| 164 |
+
#loc56 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:46)
|
| 165 |
+
#loc57 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:38)
|
| 166 |
+
#loc58 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:54)
|
| 167 |
+
#loc59 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:64)
|
| 168 |
+
#loc60 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:40)
|
| 169 |
+
#loc61 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:36)
|
| 170 |
+
#loc62 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:31)
|
| 171 |
+
#loc63 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:48)
|
| 172 |
+
#loc64 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:88)
|
| 173 |
+
#loc65 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":54:20)
|
| 174 |
+
#loc66 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":55:19)
|
| 175 |
+
#loc67 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":56:25)
|
| 176 |
+
#loc68 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":56:37)
|
| 177 |
+
#loc69 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":56:4)
|
| 178 |
+
#loc81 = loc("xoffset"(#loc2))
|
| 179 |
+
#loc82 = loc("xoffset"(#loc3))
|
| 180 |
+
#loc83 = loc("xindex"(#loc4))
|
| 181 |
+
#loc84 = loc("xindex"(#loc5))
|
| 182 |
+
#loc85 = loc("xmask"(#loc6))
|
| 183 |
+
#loc86 = loc("x2"(#loc7))
|
| 184 |
+
#loc87 = loc("x2"(#loc8))
|
| 185 |
+
#loc88 = loc("x0"(#loc9))
|
| 186 |
+
#loc89 = loc("x5"(#loc10))
|
| 187 |
+
#loc90 = loc("tmp0"(#loc11))
|
| 188 |
+
#loc91 = loc("tmp0"(#loc12))
|
| 189 |
+
#loc92 = loc("tmp0"(#loc13))
|
| 190 |
+
#loc93 = loc("tmp1"(#loc14))
|
| 191 |
+
#loc94 = loc("tmp1"(#loc15))
|
| 192 |
+
#loc95 = loc("tmp3"(#loc16))
|
| 193 |
+
#loc96 = loc("tmp4"(#loc17))
|
| 194 |
+
#loc97 = loc("tmp5"(#loc18))
|
| 195 |
+
#loc98 = loc("tmp7"(#loc25))
|
| 196 |
+
#loc99 = loc("tmp7"(#loc26))
|
| 197 |
+
#loc100 = loc("tmp7"(#loc27))
|
| 198 |
+
#loc101 = loc("tmp7"(#loc28))
|
| 199 |
+
#loc102 = loc("tmp7"(#loc29))
|
| 200 |
+
#loc103 = loc("tmp8"(#loc30))
|
| 201 |
+
#loc104 = loc("tmp12"(#loc31))
|
| 202 |
+
#loc105 = loc("tmp12"(#loc32))
|
| 203 |
+
#loc106 = loc("tmp13"(#loc33))
|
| 204 |
+
#loc107 = loc("tmp14"(#loc34))
|
| 205 |
+
#loc108 = loc("tmp14"(#loc35))
|
| 206 |
+
#loc109 = loc("tmp14"(#loc36))
|
| 207 |
+
#loc110 = loc("tmp14"(#loc37))
|
| 208 |
+
#loc111 = loc("tmp14"(#loc38))
|
| 209 |
+
#loc112 = loc("tmp14"(#loc39))
|
| 210 |
+
#loc113 = loc("tmp14"(#loc40))
|
| 211 |
+
#loc114 = loc("tmp15"(#loc41))
|
| 212 |
+
#loc115 = loc("tmp18"(#loc42))
|
| 213 |
+
#loc116 = loc("tmp21"(#loc43))
|
| 214 |
+
#loc117 = loc("tmp21"(#loc44))
|
| 215 |
+
#loc118 = loc("tmp21"(#loc45))
|
| 216 |
+
#loc119 = loc("tmp21"(#loc46))
|
| 217 |
+
#loc120 = loc("tmp21"(#loc47))
|
| 218 |
+
#loc121 = loc("tmp21"(#loc48))
|
| 219 |
+
#loc122 = loc("tmp21"(#loc49))
|
| 220 |
+
#loc123 = loc("tmp21"(#loc50))
|
| 221 |
+
#loc124 = loc("tmp22"(#loc51))
|
| 222 |
+
#loc125 = loc("tmp17"(#loc52))
|
| 223 |
+
#loc126 = loc("tmp24"(#loc53))
|
| 224 |
+
#loc127 = loc("tmp25"(#loc54))
|
| 225 |
+
#loc128 = loc("tmp27"(#loc60))
|
| 226 |
+
#loc129 = loc("tmp27"(#loc61))
|
| 227 |
+
#loc130 = loc("tmp27"(#loc62))
|
| 228 |
+
#loc131 = loc("tmp27"(#loc63))
|
| 229 |
+
#loc132 = loc("tmp27"(#loc64))
|
| 230 |
+
#loc133 = loc("tmp28"(#loc65))
|
| 231 |
+
#loc134 = loc("tmp29"(#loc66))
|
| 232 |
+
#loc135 = loc(fused[#loc124, #loc125])
|
SpecForge-ext/cache/compiled_kernels/triton/3/2TU6ZCF6AOXLWQQED5J7FS5ZXMYK7TIOQ6T2MLB767275BROXJCA/triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0.ttir
ADDED
|
@@ -0,0 +1,231 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":18:0)
|
| 2 |
+
#loc70 = loc("in_ptr0"(#loc))
|
| 3 |
+
#loc71 = loc("in_ptr1"(#loc))
|
| 4 |
+
#loc72 = loc("in_ptr2"(#loc))
|
| 5 |
+
#loc73 = loc("in_ptr3"(#loc))
|
| 6 |
+
#loc74 = loc("out_ptr0"(#loc))
|
| 7 |
+
#loc75 = loc("ks0"(#loc))
|
| 8 |
+
#loc76 = loc("ks1"(#loc))
|
| 9 |
+
#loc77 = loc("ks2"(#loc))
|
| 10 |
+
#loc78 = loc("ks3"(#loc))
|
| 11 |
+
#loc79 = loc("ks4"(#loc))
|
| 12 |
+
#loc80 = loc("xnumel"(#loc))
|
| 13 |
+
module {
|
| 14 |
+
tt.func public @triton_poi_fused_add_cat_index_mul_neg_slice_squeeze_unsqueeze_0(%in_ptr0: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %in_ptr1: !tt.ptr<i64> {tt.divisibility = 16 : i32} loc("in_ptr1"(#loc)), %in_ptr2: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("in_ptr2"(#loc)), %in_ptr3: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("in_ptr3"(#loc)), %out_ptr0: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("out_ptr0"(#loc)), %ks0: i64 loc("ks0"(#loc)), %ks1: i64 loc("ks1"(#loc)), %ks2: i64 loc("ks2"(#loc)), %ks3: i64 loc("ks3"(#loc)), %ks4: i64 loc("ks4"(#loc)), %xnumel: i32 loc("xnumel"(#loc))) attributes {noinline = false} {
|
| 15 |
+
%cst = arith.constant dense<0.000000e+00> : tensor<1024xbf16> loc(#loc1)
|
| 16 |
+
%cst_0 = arith.constant dense<0> : tensor<1024xi64> loc(#loc1)
|
| 17 |
+
%cst_1 = arith.constant dense<0.000000e+00> : tensor<1024xf32> loc(#loc1)
|
| 18 |
+
%c-1_i64 = arith.constant -1 : i64 loc(#loc1)
|
| 19 |
+
%c2_i64 = arith.constant 2 : i64 loc(#loc1)
|
| 20 |
+
%cst_2 = arith.constant dense<true> : tensor<1024xi1> loc(#loc1)
|
| 21 |
+
%c1024_i32 = arith.constant 1024 : i32 loc(#loc1)
|
| 22 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc81)
|
| 23 |
+
%xoffset_3 = arith.muli %xoffset, %c1024_i32 : i32 loc(#loc82)
|
| 24 |
+
%xindex = tt.make_range {end = 1024 : i32, start = 0 : i32} : tensor<1024xi32> loc(#loc83)
|
| 25 |
+
%xindex_4 = tt.splat %xoffset_3 : i32 -> tensor<1024xi32> loc(#loc84)
|
| 26 |
+
%xindex_5 = arith.addi %xindex_4, %xindex : tensor<1024xi32> loc(#loc84)
|
| 27 |
+
%xmask = tt.splat %xnumel : i32 -> tensor<1024xi32> loc(#loc85)
|
| 28 |
+
%xmask_6 = arith.cmpi slt, %xindex_5, %xmask : tensor<1024xi32> loc(#loc85)
|
| 29 |
+
%x2 = arith.extsi %xindex_5 : tensor<1024xi32> to tensor<1024xi64> loc(#loc86)
|
| 30 |
+
%x2_7 = tt.splat %ks0 : i64 -> tensor<1024xi64> loc(#loc86)
|
| 31 |
+
%x2_8 = arith.divsi %x2, %x2_7 : tensor<1024xi64> loc(#loc86)
|
| 32 |
+
%x2_9 = tt.splat %ks1 : i64 -> tensor<1024xi64> loc(#loc87)
|
| 33 |
+
%x2_10 = arith.remsi %x2_8, %x2_9 : tensor<1024xi64> loc(#loc87)
|
| 34 |
+
%x0 = tt.splat %ks3 : i64 -> tensor<1024xi64> loc(#loc88)
|
| 35 |
+
%x0_11 = arith.remsi %x2, %x0 : tensor<1024xi64> loc(#loc88)
|
| 36 |
+
%x5 = arith.divsi %x2, %x0 : tensor<1024xi64> loc(#loc89)
|
| 37 |
+
%tmp0 = tt.splat %in_ptr0 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>> loc(#loc90)
|
| 38 |
+
%tmp0_12 = tt.addptr %tmp0, %xindex_5 : tensor<1024x!tt.ptr<bf16>>, tensor<1024xi32> loc(#loc90)
|
| 39 |
+
%tmp0_13 = tt.load %tmp0_12, %xmask_6 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>> loc(#loc91)
|
| 40 |
+
%tmp0_14 = arith.extf %tmp0_13 : tensor<1024xbf16> to tensor<1024xf32> loc(#loc92)
|
| 41 |
+
%tmp1 = tt.splat %in_ptr1 : !tt.ptr<i64> -> tensor<1024x!tt.ptr<i64>> loc(#loc93)
|
| 42 |
+
%tmp1_15 = tt.addptr %tmp1, %x2_10 : tensor<1024x!tt.ptr<i64>>, tensor<1024xi64> loc(#loc93)
|
| 43 |
+
%tmp1_16 = tt.load %tmp1_15, %xmask_6 evictionPolicy = evict_last : tensor<1024x!tt.ptr<i64>> loc(#loc94)
|
| 44 |
+
%tmp3 = tt.splat %ks2 : i64 -> tensor<1024xi64> loc(#loc95)
|
| 45 |
+
%tmp3_17 = arith.addi %tmp1_16, %tmp3 : tensor<1024xi64> loc(#loc95)
|
| 46 |
+
%tmp4 = arith.cmpi slt, %tmp1_16, %cst_0 : tensor<1024xi64> loc(#loc96)
|
| 47 |
+
%tmp5 = arith.select %tmp4, %tmp3_17, %tmp1_16 : tensor<1024xi1>, tensor<1024xi64> loc(#loc97)
|
| 48 |
+
%0 = arith.cmpi sge, %tmp5, %cst_0 : tensor<1024xi64> loc(#loc19)
|
| 49 |
+
%1 = arith.cmpi slt, %tmp5, %tmp3 : tensor<1024xi64> loc(#loc20)
|
| 50 |
+
%2 = arith.andi %0, %1 : tensor<1024xi1> loc(#loc21)
|
| 51 |
+
%3 = arith.xori %xmask_6, %cst_2 : tensor<1024xi1> loc(#loc22)
|
| 52 |
+
%4 = arith.ori %2, %3 : tensor<1024xi1> loc(#loc23)
|
| 53 |
+
tt.assert %4, "index out of bounds: 0 <= tmp5 < ks2" : tensor<1024xi1> loc(#loc24)
|
| 54 |
+
%tmp7 = arith.muli %x0, %tmp5 : tensor<1024xi64> loc(#loc98)
|
| 55 |
+
%tmp7_18 = arith.addi %x0_11, %tmp7 : tensor<1024xi64> loc(#loc99)
|
| 56 |
+
%tmp7_19 = tt.splat %in_ptr2 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>> loc(#loc100)
|
| 57 |
+
%tmp7_20 = tt.addptr %tmp7_19, %tmp7_18 : tensor<1024x!tt.ptr<bf16>>, tensor<1024xi64> loc(#loc100)
|
| 58 |
+
%tmp7_21 = tt.load %tmp7_20, %xmask_6 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>> loc(#loc101)
|
| 59 |
+
%tmp7_22 = arith.extf %tmp7_21 : tensor<1024xbf16> to tensor<1024xf32> loc(#loc102)
|
| 60 |
+
%tmp8 = arith.mulf %tmp0_14, %tmp7_22 : tensor<1024xf32> loc(#loc103)
|
| 61 |
+
%tmp12 = arith.divsi %ks3, %c2_i64 : i64 loc(#loc104)
|
| 62 |
+
%tmp12_23 = arith.subi %ks3, %tmp12 : i64 loc(#loc105)
|
| 63 |
+
%tmp13 = tt.splat %tmp12_23 : i64 -> tensor<1024xi64> loc(#loc106)
|
| 64 |
+
%tmp13_24 = arith.cmpi slt, %x0_11, %tmp13 : tensor<1024xi64> loc(#loc106)
|
| 65 |
+
%tmp14 = arith.muli %x0, %x5 : tensor<1024xi64> loc(#loc107)
|
| 66 |
+
%tmp14_25 = tt.splat %tmp12 : i64 -> tensor<1024xi64> loc(#loc108)
|
| 67 |
+
%tmp14_26 = arith.addi %tmp14, %tmp14_25 : tensor<1024xi64> loc(#loc108)
|
| 68 |
+
%tmp14_27 = arith.addi %tmp14_26, %x0_11 : tensor<1024xi64> loc(#loc109)
|
| 69 |
+
%tmp14_28 = tt.addptr %tmp0, %tmp14_27 : tensor<1024x!tt.ptr<bf16>>, tensor<1024xi64> loc(#loc110)
|
| 70 |
+
%tmp14_29 = arith.andi %tmp13_24, %xmask_6 : tensor<1024xi1> loc(#loc111)
|
| 71 |
+
%tmp14_30 = tt.load %tmp14_28, %tmp14_29, %cst evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>> loc(#loc112)
|
| 72 |
+
%tmp14_31 = arith.extf %tmp14_30 : tensor<1024xbf16> to tensor<1024xf32> loc(#loc113)
|
| 73 |
+
%tmp15 = arith.subf %cst_1, %tmp14_31 : tensor<1024xf32> loc(#loc114)
|
| 74 |
+
%tmp18 = arith.cmpi sge, %x0_11, %tmp13 : tensor<1024xi64> loc(#loc115)
|
| 75 |
+
%tmp21 = arith.muli %ks3, %c-1_i64 : i64 loc(#loc116)
|
| 76 |
+
%tmp21_32 = tt.splat %tmp21 : i64 -> tensor<1024xi64> loc(#loc117)
|
| 77 |
+
%tmp21_33 = arith.addi %x0_11, %tmp21_32 : tensor<1024xi64> loc(#loc117)
|
| 78 |
+
%tmp21_34 = arith.addi %tmp21_33, %tmp14_25 : tensor<1024xi64> loc(#loc118)
|
| 79 |
+
%tmp21_35 = arith.addi %tmp14, %tmp21_34 : tensor<1024xi64> loc(#loc119)
|
| 80 |
+
%tmp21_36 = tt.addptr %tmp0, %tmp21_35 : tensor<1024x!tt.ptr<bf16>>, tensor<1024xi64> loc(#loc120)
|
| 81 |
+
%tmp21_37 = arith.andi %tmp18, %xmask_6 : tensor<1024xi1> loc(#loc121)
|
| 82 |
+
%tmp21_38 = tt.load %tmp21_36, %tmp21_37, %cst evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>> loc(#loc122)
|
| 83 |
+
%tmp21_39 = arith.extf %tmp21_38 : tensor<1024xbf16> to tensor<1024xf32> loc(#loc123)
|
| 84 |
+
%tmp22 = arith.select %tmp13_24, %tmp15, %tmp21_39 : tensor<1024xi1>, tensor<1024xf32> loc(#loc135)
|
| 85 |
+
%tmp24 = tt.splat %ks4 : i64 -> tensor<1024xi64> loc(#loc126)
|
| 86 |
+
%tmp24_40 = arith.addi %tmp1_16, %tmp24 : tensor<1024xi64> loc(#loc126)
|
| 87 |
+
%tmp25 = arith.select %tmp4, %tmp24_40, %tmp1_16 : tensor<1024xi1>, tensor<1024xi64> loc(#loc127)
|
| 88 |
+
%5 = arith.cmpi sge, %tmp25, %cst_0 : tensor<1024xi64> loc(#loc55)
|
| 89 |
+
%6 = arith.cmpi slt, %tmp25, %tmp24 : tensor<1024xi64> loc(#loc56)
|
| 90 |
+
%7 = arith.andi %5, %6 : tensor<1024xi1> loc(#loc57)
|
| 91 |
+
%8 = arith.ori %7, %3 : tensor<1024xi1> loc(#loc58)
|
| 92 |
+
tt.assert %8, "index out of bounds: 0 <= tmp25 < ks4" : tensor<1024xi1> loc(#loc59)
|
| 93 |
+
%tmp27 = arith.muli %x0, %tmp25 : tensor<1024xi64> loc(#loc128)
|
| 94 |
+
%tmp27_41 = arith.addi %x0_11, %tmp27 : tensor<1024xi64> loc(#loc129)
|
| 95 |
+
%tmp27_42 = tt.splat %in_ptr3 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>> loc(#loc130)
|
| 96 |
+
%tmp27_43 = tt.addptr %tmp27_42, %tmp27_41 : tensor<1024x!tt.ptr<bf16>>, tensor<1024xi64> loc(#loc130)
|
| 97 |
+
%tmp27_44 = tt.load %tmp27_43, %xmask_6 evictionPolicy = evict_last : tensor<1024x!tt.ptr<bf16>> loc(#loc131)
|
| 98 |
+
%tmp27_45 = arith.extf %tmp27_44 : tensor<1024xbf16> to tensor<1024xf32> loc(#loc132)
|
| 99 |
+
%tmp28 = arith.mulf %tmp22, %tmp27_45 : tensor<1024xf32> loc(#loc133)
|
| 100 |
+
%tmp29 = arith.addf %tmp8, %tmp28 : tensor<1024xf32> loc(#loc134)
|
| 101 |
+
%9 = tt.splat %out_ptr0 : !tt.ptr<bf16> -> tensor<1024x!tt.ptr<bf16>> loc(#loc67)
|
| 102 |
+
%10 = tt.addptr %9, %xindex_5 : tensor<1024x!tt.ptr<bf16>>, tensor<1024xi32> loc(#loc67)
|
| 103 |
+
%11 = arith.truncf %tmp29 : tensor<1024xf32> to tensor<1024xbf16> loc(#loc68)
|
| 104 |
+
tt.store %10, %11, %xmask_6 : tensor<1024x!tt.ptr<bf16>> loc(#loc68)
|
| 105 |
+
tt.return loc(#loc69)
|
| 106 |
+
} loc(#loc)
|
| 107 |
+
} loc(#loc)
|
| 108 |
+
#loc1 = loc(unknown)
|
| 109 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":19:28)
|
| 110 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":19:33)
|
| 111 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":20:36)
|
| 112 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":20:23)
|
| 113 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":21:21)
|
| 114 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":23:21)
|
| 115 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":23:28)
|
| 116 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":24:19)
|
| 117 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":25:19)
|
| 118 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":26:30)
|
| 119 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":26:35)
|
| 120 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":26:75)
|
| 121 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":27:30)
|
| 122 |
+
#loc15 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":27:35)
|
| 123 |
+
#loc16 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":29:18)
|
| 124 |
+
#loc17 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":30:18)
|
| 125 |
+
#loc18 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":31:32)
|
| 126 |
+
#loc19 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:28)
|
| 127 |
+
#loc20 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:44)
|
| 128 |
+
#loc21 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:37)
|
| 129 |
+
#loc22 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:54)
|
| 130 |
+
#loc23 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:52)
|
| 131 |
+
#loc24 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":32:62)
|
| 132 |
+
#loc25 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:39)
|
| 133 |
+
#loc26 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:35)
|
| 134 |
+
#loc27 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:30)
|
| 135 |
+
#loc28 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:46)
|
| 136 |
+
#loc29 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":33:86)
|
| 137 |
+
#loc30 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":34:18)
|
| 138 |
+
#loc31 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":38:31)
|
| 139 |
+
#loc32 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":38:18)
|
| 140 |
+
#loc33 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":39:19)
|
| 141 |
+
#loc34 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:35)
|
| 142 |
+
#loc35 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:41)
|
| 143 |
+
#loc36 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:54)
|
| 144 |
+
#loc37 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:31)
|
| 145 |
+
#loc38 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:68)
|
| 146 |
+
#loc39 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:60)
|
| 147 |
+
#loc40 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":40:119)
|
| 148 |
+
#loc41 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":41:13)
|
| 149 |
+
#loc42 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":44:20)
|
| 150 |
+
#loc43 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:52)
|
| 151 |
+
#loc44 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:47)
|
| 152 |
+
#loc45 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:60)
|
| 153 |
+
#loc46 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:41)
|
| 154 |
+
#loc47 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:31)
|
| 155 |
+
#loc48 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:81)
|
| 156 |
+
#loc49 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:73)
|
| 157 |
+
#loc50 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":47:132)
|
| 158 |
+
#loc51 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":48:35)
|
| 159 |
+
#loc52 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":43:35)
|
| 160 |
+
#loc53 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":50:19)
|
| 161 |
+
#loc54 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":51:34)
|
| 162 |
+
#loc55 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:28)
|
| 163 |
+
#loc56 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:46)
|
| 164 |
+
#loc57 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:38)
|
| 165 |
+
#loc58 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:54)
|
| 166 |
+
#loc59 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":52:64)
|
| 167 |
+
#loc60 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:40)
|
| 168 |
+
#loc61 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:36)
|
| 169 |
+
#loc62 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:31)
|
| 170 |
+
#loc63 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:48)
|
| 171 |
+
#loc64 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":53:88)
|
| 172 |
+
#loc65 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":54:20)
|
| 173 |
+
#loc66 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":55:19)
|
| 174 |
+
#loc67 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":56:25)
|
| 175 |
+
#loc68 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":56:37)
|
| 176 |
+
#loc69 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vy/cvyoqg7jzeadarrgggxhs2djmxugxyvjhim72vfstqc4io4qsecj.py":56:4)
|
| 177 |
+
#loc81 = loc("xoffset"(#loc2))
|
| 178 |
+
#loc82 = loc("xoffset"(#loc3))
|
| 179 |
+
#loc83 = loc("xindex"(#loc4))
|
| 180 |
+
#loc84 = loc("xindex"(#loc5))
|
| 181 |
+
#loc85 = loc("xmask"(#loc6))
|
| 182 |
+
#loc86 = loc("x2"(#loc7))
|
| 183 |
+
#loc87 = loc("x2"(#loc8))
|
| 184 |
+
#loc88 = loc("x0"(#loc9))
|
| 185 |
+
#loc89 = loc("x5"(#loc10))
|
| 186 |
+
#loc90 = loc("tmp0"(#loc11))
|
| 187 |
+
#loc91 = loc("tmp0"(#loc12))
|
| 188 |
+
#loc92 = loc("tmp0"(#loc13))
|
| 189 |
+
#loc93 = loc("tmp1"(#loc14))
|
| 190 |
+
#loc94 = loc("tmp1"(#loc15))
|
| 191 |
+
#loc95 = loc("tmp3"(#loc16))
|
| 192 |
+
#loc96 = loc("tmp4"(#loc17))
|
| 193 |
+
#loc97 = loc("tmp5"(#loc18))
|
| 194 |
+
#loc98 = loc("tmp7"(#loc25))
|
| 195 |
+
#loc99 = loc("tmp7"(#loc26))
|
| 196 |
+
#loc100 = loc("tmp7"(#loc27))
|
| 197 |
+
#loc101 = loc("tmp7"(#loc28))
|
| 198 |
+
#loc102 = loc("tmp7"(#loc29))
|
| 199 |
+
#loc103 = loc("tmp8"(#loc30))
|
| 200 |
+
#loc104 = loc("tmp12"(#loc31))
|
| 201 |
+
#loc105 = loc("tmp12"(#loc32))
|
| 202 |
+
#loc106 = loc("tmp13"(#loc33))
|
| 203 |
+
#loc107 = loc("tmp14"(#loc34))
|
| 204 |
+
#loc108 = loc("tmp14"(#loc35))
|
| 205 |
+
#loc109 = loc("tmp14"(#loc36))
|
| 206 |
+
#loc110 = loc("tmp14"(#loc37))
|
| 207 |
+
#loc111 = loc("tmp14"(#loc38))
|
| 208 |
+
#loc112 = loc("tmp14"(#loc39))
|
| 209 |
+
#loc113 = loc("tmp14"(#loc40))
|
| 210 |
+
#loc114 = loc("tmp15"(#loc41))
|
| 211 |
+
#loc115 = loc("tmp18"(#loc42))
|
| 212 |
+
#loc116 = loc("tmp21"(#loc43))
|
| 213 |
+
#loc117 = loc("tmp21"(#loc44))
|
| 214 |
+
#loc118 = loc("tmp21"(#loc45))
|
| 215 |
+
#loc119 = loc("tmp21"(#loc46))
|
| 216 |
+
#loc120 = loc("tmp21"(#loc47))
|
| 217 |
+
#loc121 = loc("tmp21"(#loc48))
|
| 218 |
+
#loc122 = loc("tmp21"(#loc49))
|
| 219 |
+
#loc123 = loc("tmp21"(#loc50))
|
| 220 |
+
#loc124 = loc("tmp22"(#loc51))
|
| 221 |
+
#loc125 = loc("tmp17"(#loc52))
|
| 222 |
+
#loc126 = loc("tmp24"(#loc53))
|
| 223 |
+
#loc127 = loc("tmp25"(#loc54))
|
| 224 |
+
#loc128 = loc("tmp27"(#loc60))
|
| 225 |
+
#loc129 = loc("tmp27"(#loc61))
|
| 226 |
+
#loc130 = loc("tmp27"(#loc62))
|
| 227 |
+
#loc131 = loc("tmp27"(#loc63))
|
| 228 |
+
#loc132 = loc("tmp27"(#loc64))
|
| 229 |
+
#loc133 = loc("tmp28"(#loc65))
|
| 230 |
+
#loc134 = loc("tmp29"(#loc66))
|
| 231 |
+
#loc135 = loc(fused[#loc124, #loc125])
|
SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/__grp__triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"child_paths": {"triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.source": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.source", "triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.ttir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.ttir", "triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.ttgir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.ttgir", "triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.llir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.llir", "triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.ptx": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.ptx", "triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.cubin": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.cubin", "triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.json": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.json"}}
|
SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"hash": "e06ef592ad45788917e8ca2aaf880ce2d9dc1b17df1f92a71a87d94ada7fc9a8", "target": {"backend": "cuda", "arch": 90, "warp_size": 32}, "num_warps": 8, "num_ctas": 1, "num_stages": 1, "warp_size": 32, "maxnreg": null, "cluster_dims": [1, 1, 1], "ptx_version": null, "ptx_options": null, "ir_override": null, "enable_fp_fusion": true, "launch_cooperative_grid": false, "launch_pdl": false, "supported_fp8_dtypes": ["fp8e4b15", "fp8e4nv", "fp8e5"], "deprecated_fp8_dot_operand_dtypes": ["fp8e4b15"], "default_dot_input_precision": "tf32", "allowed_dot_input_precisions": ["tf32", "tf32x3", "ieee"], "max_num_imprecise_acc_default": 1073741824, "extern_libs": [["libdevice", "/workspace/specforge/lib/python3.11/site-packages/triton/backends/nvidia/lib/libdevice.10.bc"]], "debug": true, "backend_name": "cuda", "sanitize_overflow": false, "arch": "sm90", "instrumentation_mode": "", "triton_version": "3.5.1", "tensordesc_meta": [], "shared": 16384, "tmem_size": 0, "global_scratch_size": 0, "global_scratch_align": 1, "profile_scratch_size": 0, "profile_scratch_align": 1, "name": "triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2"}
|
SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.llir
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.ptx
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.source
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.ttgir
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/4BXPLEVNIV4ISF7IZIVK7CAM4LM5YGYX34PZFJY2Q7MUVWT7ZGUA/triton_per_fused__to_copy_arange_bitwise_and_eq_gt_index_put_lt_new_zeros_scalar_tensor_sort_sum_unsqueeze_view_where_2.ttir
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/__grp__triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"child_paths": {"triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.source": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.source", "triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.ttir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.ttir", "triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.ttgir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.ttgir", "triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.llir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.llir", "triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.ptx": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.ptx", "triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.cubin": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.cubin", "triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.json": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.json"}}
|
SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.cubin
ADDED
|
Binary file (22.3 kB). View file
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"hash": "fe376ba41d2f05ff2bb7c13c37b09b85f38cb341d26f28c38925cd0f032bd098", "target": {"backend": "cuda", "arch": 90, "warp_size": 32}, "num_warps": 2, "num_ctas": 1, "num_stages": 1, "warp_size": 32, "maxnreg": null, "cluster_dims": [1, 1, 1], "ptx_version": null, "ptx_options": null, "ir_override": null, "enable_fp_fusion": true, "launch_cooperative_grid": false, "launch_pdl": false, "supported_fp8_dtypes": ["fp8e4b15", "fp8e4nv", "fp8e5"], "deprecated_fp8_dot_operand_dtypes": ["fp8e4b15"], "default_dot_input_precision": "tf32", "allowed_dot_input_precisions": ["tf32", "tf32x3", "ieee"], "max_num_imprecise_acc_default": 1073741824, "extern_libs": [["libdevice", "/workspace/specforge/lib/python3.11/site-packages/triton/backends/nvidia/lib/libdevice.10.bc"]], "debug": true, "backend_name": "cuda", "sanitize_overflow": false, "arch": "sm90", "instrumentation_mode": "", "triton_version": "3.5.1", "tensordesc_meta": [], "shared": 0, "tmem_size": 0, "global_scratch_size": 0, "global_scratch_align": 1, "profile_scratch_size": 0, "profile_scratch_align": 1, "name": "triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2"}
|
SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.llir
ADDED
|
@@ -0,0 +1,266 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
; ModuleID = 'LLVMDialectModule'
|
| 2 |
+
source_filename = "LLVMDialectModule"
|
| 3 |
+
target datalayout = "e-p3:32:32-p4:32:32-p5:32:32-p6:32:32-p7:32:32-i64:64-i128:128-v16:16-v32:32-n16:32:64"
|
| 4 |
+
|
| 5 |
+
@assertFunc_0 = internal constant [8 x i8] c"unknown\00"
|
| 6 |
+
@assertFile_0 = internal constant [114 x i8] c"/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py\00"
|
| 7 |
+
@assertMessage_0 = internal constant [90 x i8] c"index out of bounds: 0 <= tmp15 < 1 + (triton_helpers.div_floor_integer(127 + ks1, 128))\00"
|
| 8 |
+
|
| 9 |
+
; Function Attrs: noreturn
|
| 10 |
+
declare !dbg !5 void @__assertfail(ptr, ptr, i32, ptr, i64) local_unnamed_addr #0
|
| 11 |
+
|
| 12 |
+
define ptx_kernel void @triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2(ptr addrspace(1) %0, ptr addrspace(1) %1, ptr addrspace(1) %2, ptr addrspace(1) %3, ptr addrspace(1) %4, i64 %5, i64 %6, i32 %7, i32 %8, ptr addrspace(1) readnone captures(none) %9, ptr addrspace(1) readnone captures(none) %10) local_unnamed_addr #1 !dbg !9 {
|
| 13 |
+
%12 = tail call i32 @llvm.nvvm.read.ptx.sreg.ctaid.x(), !dbg !10
|
| 14 |
+
%13 = icmp samesign ult i32 %12, 32, !dbg !11
|
| 15 |
+
%14 = tail call i32 @llvm.nvvm.read.ptx.sreg.tid.x(), !dbg !12
|
| 16 |
+
%15 = and i32 %14, 31, !dbg !12
|
| 17 |
+
%16 = zext nneg i32 %12 to i64, !dbg !13
|
| 18 |
+
%17 = mul i64 %5, %16, !dbg !13
|
| 19 |
+
%18 = icmp sgt i32 %8, 0, !dbg !14
|
| 20 |
+
br i1 %18, label %.lr.ph, label %._crit_edge, !dbg !14
|
| 21 |
+
|
| 22 |
+
.lr.ph: ; preds = %11
|
| 23 |
+
%19 = getelementptr i32, ptr addrspace(1) %0, i64 %17
|
| 24 |
+
br i1 %13, label %.lr.ph.split, label %.lr.ph.split.us
|
| 25 |
+
|
| 26 |
+
.lr.ph.split.us: ; preds = %.lr.ph, %.lr.ph.split.us
|
| 27 |
+
%20 = phi i32 [ %26, %.lr.ph.split.us ], [ 0, %.lr.ph ]
|
| 28 |
+
%21 = or disjoint i32 %20, %15, !dbg !15
|
| 29 |
+
%22 = sext i32 %21 to i64, !dbg !16
|
| 30 |
+
%23 = getelementptr i32, ptr addrspace(1) %19, i64 %22, !dbg !17
|
| 31 |
+
%24 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_first.b64 $0, 1.0;", "=l"() #5, !dbg !18
|
| 32 |
+
%25 = tail call i32 asm sideeffect "mov.u32 $0, 0x0;\0A\09@$3 ld.global.L1::evict_first.L2::cache_hint.b32 { $0 }, [ $1 + 0 ], $2;", "=r,l,l,b"(ptr addrspace(1) %23, i64 %24, i1 false) #5, !dbg !18
|
| 33 |
+
%26 = add i32 %20, 32, !dbg !14
|
| 34 |
+
%27 = icmp slt i32 %26, %8, !dbg !14
|
| 35 |
+
br i1 %27, label %.lr.ph.split.us, label %._crit_edge, !dbg !14
|
| 36 |
+
|
| 37 |
+
.lr.ph.split: ; preds = %.lr.ph, %.lr.ph.split
|
| 38 |
+
%28 = phi i64 [ %36, %.lr.ph.split ], [ 0, %.lr.ph ]
|
| 39 |
+
%29 = phi i32 [ %37, %.lr.ph.split ], [ 0, %.lr.ph ]
|
| 40 |
+
%30 = or disjoint i32 %29, %15, !dbg !15
|
| 41 |
+
%31 = icmp slt i32 %30, %8, !dbg !19
|
| 42 |
+
%32 = sext i32 %30 to i64, !dbg !16
|
| 43 |
+
%33 = getelementptr i32, ptr addrspace(1) %19, i64 %32, !dbg !17
|
| 44 |
+
%34 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_first.b64 $0, 1.0;", "=l"() #5, !dbg !18
|
| 45 |
+
%35 = tail call i32 asm sideeffect "mov.u32 $0, 0x0;\0A\09@$3 ld.global.L1::evict_first.L2::cache_hint.b32 { $0 }, [ $1 + 0 ], $2;", "=r,l,l,b"(ptr addrspace(1) %33, i64 %34, i1 %31) #5, !dbg !18
|
| 46 |
+
%narrow16 = select i1 %31, i32 %35, i32 0, !dbg !20
|
| 47 |
+
%spec.select = sext i32 %narrow16 to i64, !dbg !20
|
| 48 |
+
%36 = add i64 %28, %spec.select, !dbg !20
|
| 49 |
+
%37 = add i32 %29, 32, !dbg !14
|
| 50 |
+
%38 = icmp slt i32 %37, %8, !dbg !14
|
| 51 |
+
br i1 %38, label %.lr.ph.split, label %._crit_edge, !dbg !14
|
| 52 |
+
|
| 53 |
+
._crit_edge: ; preds = %.lr.ph.split.us, %.lr.ph.split, %11
|
| 54 |
+
%.lcssa = phi i64 [ 0, %11 ], [ %36, %.lr.ph.split ], [ 0, %.lr.ph.split.us ], !dbg !21
|
| 55 |
+
%extelt.offset = lshr i64 %.lcssa, 32, !dbg !22
|
| 56 |
+
%39 = trunc nuw i64 %extelt.offset to i32, !dbg !22
|
| 57 |
+
%40 = trunc i64 %.lcssa to i32, !dbg !22
|
| 58 |
+
%41 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %40, i32 16, i32 31), !dbg !22
|
| 59 |
+
%42 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %39, i32 16, i32 31), !dbg !22
|
| 60 |
+
%43 = insertelement <2 x i32> poison, i32 %41, i64 0, !dbg !22
|
| 61 |
+
%44 = insertelement <2 x i32> %43, i32 %42, i64 1, !dbg !22
|
| 62 |
+
%45 = bitcast <2 x i32> %44 to i64, !dbg !22
|
| 63 |
+
%46 = add i64 %.lcssa, %45, !dbg !26
|
| 64 |
+
%extelt.offset3 = lshr i64 %46, 32, !dbg !22
|
| 65 |
+
%47 = trunc nuw i64 %extelt.offset3 to i32, !dbg !22
|
| 66 |
+
%48 = trunc i64 %46 to i32, !dbg !22
|
| 67 |
+
%49 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %48, i32 8, i32 31), !dbg !22
|
| 68 |
+
%50 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %47, i32 8, i32 31), !dbg !22
|
| 69 |
+
%51 = insertelement <2 x i32> poison, i32 %49, i64 0, !dbg !22
|
| 70 |
+
%52 = insertelement <2 x i32> %51, i32 %50, i64 1, !dbg !22
|
| 71 |
+
%53 = bitcast <2 x i32> %52 to i64, !dbg !22
|
| 72 |
+
%54 = add i64 %46, %53, !dbg !26
|
| 73 |
+
%extelt.offset4 = lshr i64 %54, 32, !dbg !22
|
| 74 |
+
%55 = trunc nuw i64 %extelt.offset4 to i32, !dbg !22
|
| 75 |
+
%56 = trunc i64 %54 to i32, !dbg !22
|
| 76 |
+
%57 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %56, i32 4, i32 31), !dbg !22
|
| 77 |
+
%58 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %55, i32 4, i32 31), !dbg !22
|
| 78 |
+
%59 = insertelement <2 x i32> poison, i32 %57, i64 0, !dbg !22
|
| 79 |
+
%60 = insertelement <2 x i32> %59, i32 %58, i64 1, !dbg !22
|
| 80 |
+
%61 = bitcast <2 x i32> %60 to i64, !dbg !22
|
| 81 |
+
%62 = add i64 %54, %61, !dbg !26
|
| 82 |
+
%extelt.offset5 = lshr i64 %62, 32, !dbg !22
|
| 83 |
+
%63 = trunc nuw i64 %extelt.offset5 to i32, !dbg !22
|
| 84 |
+
%64 = trunc i64 %62 to i32, !dbg !22
|
| 85 |
+
%65 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %64, i32 2, i32 31), !dbg !22
|
| 86 |
+
%66 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %63, i32 2, i32 31), !dbg !22
|
| 87 |
+
%67 = insertelement <2 x i32> poison, i32 %65, i64 0, !dbg !22
|
| 88 |
+
%68 = insertelement <2 x i32> %67, i32 %66, i64 1, !dbg !22
|
| 89 |
+
%69 = bitcast <2 x i32> %68 to i64, !dbg !22
|
| 90 |
+
%70 = add i64 %62, %69, !dbg !26
|
| 91 |
+
%extelt.offset6 = lshr i64 %70, 32, !dbg !22
|
| 92 |
+
%71 = trunc nuw i64 %extelt.offset6 to i32, !dbg !22
|
| 93 |
+
%72 = trunc i64 %70 to i32, !dbg !22
|
| 94 |
+
%73 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %72, i32 1, i32 31), !dbg !22
|
| 95 |
+
%74 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %71, i32 1, i32 31), !dbg !22
|
| 96 |
+
%75 = insertelement <2 x i32> poison, i32 %73, i64 0, !dbg !22
|
| 97 |
+
%76 = insertelement <2 x i32> %75, i32 %74, i64 1, !dbg !22
|
| 98 |
+
%77 = bitcast <2 x i32> %76 to i64, !dbg !22
|
| 99 |
+
%78 = add i64 %70, %77, !dbg !26
|
| 100 |
+
%79 = trunc i64 %78 to i32, !dbg !27
|
| 101 |
+
%80 = getelementptr i32, ptr addrspace(1) %2, i64 %16, !dbg !28
|
| 102 |
+
%81 = and i32 %14, 32, !dbg !29
|
| 103 |
+
%82 = icmp eq i32 %81, 0, !dbg !29
|
| 104 |
+
%83 = and i32 %14, 63, !dbg !29
|
| 105 |
+
%84 = icmp eq i32 %83, 0, !dbg !29
|
| 106 |
+
%85 = and i1 %13, %84, !dbg !29
|
| 107 |
+
tail call void asm sideeffect "@$2 st.global.b32 [ $1 + 0 ], { $0 };", "r,l,b"(i32 %79, ptr addrspace(1) %80, i1 %85) #5, !dbg !29
|
| 108 |
+
%86 = icmp slt i64 %5, 2, !dbg !30
|
| 109 |
+
%87 = icmp sgt i64 %5, 1, !dbg !31
|
| 110 |
+
%88 = select i1 %87, i64 %5, i64 0, !dbg !32
|
| 111 |
+
%89 = zext i1 %86 to i64, !dbg !33
|
| 112 |
+
%90 = add i64 %88, %89, !dbg !34
|
| 113 |
+
%91 = mul i64 %90, %16, !dbg !35
|
| 114 |
+
%92 = add i64 %5, 1, !dbg !36
|
| 115 |
+
%93 = add i64 %6, 127, !dbg !37
|
| 116 |
+
%94 = sdiv i64 %93, 128, !dbg !38
|
| 117 |
+
%95 = and i64 %93, 127, !dbg !42
|
| 118 |
+
%.not = icmp ne i64 %95, 0, !dbg !42
|
| 119 |
+
%96 = icmp slt i64 %93, 0, !dbg !43
|
| 120 |
+
%narrow = and i1 %96, %.not, !dbg !44
|
| 121 |
+
%97 = sext i1 %narrow to i64, !dbg !44
|
| 122 |
+
%98 = add nsw i64 %94, %97, !dbg !44
|
| 123 |
+
br i1 %18, label %.lr.ph14, label %._crit_edge15, !dbg !45
|
| 124 |
+
|
| 125 |
+
.lr.ph14: ; preds = %._crit_edge, %119
|
| 126 |
+
%99 = phi i32 [ %131, %119 ], [ 0, %._crit_edge ]
|
| 127 |
+
%100 = or disjoint i32 %99, %15, !dbg !46
|
| 128 |
+
%101 = icmp slt i32 %100, %8, !dbg !47
|
| 129 |
+
%102 = sext i32 %100 to i64, !dbg !48
|
| 130 |
+
%103 = add i64 %91, %102, !dbg !48
|
| 131 |
+
%104 = getelementptr i64, ptr addrspace(1) %1, i64 %103, !dbg !49
|
| 132 |
+
%105 = and i1 %13, %101, !dbg !50
|
| 133 |
+
%106 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_first.b64 $0, 1.0;", "=l"() #5, !dbg !51
|
| 134 |
+
%107 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09@$3 ld.global.L1::evict_first.L2::cache_hint.b64 { $0 }, [ $1 + 0 ], $2;", "=l,l,l,b"(ptr addrspace(1) %104, i64 %106, i1 %105) #5, !dbg !51
|
| 135 |
+
%108 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_first.b64 $0, 1.0;", "=l"() #5, !dbg !51
|
| 136 |
+
%109 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09@$3 ld.global.L1::evict_first.L2::cache_hint.b64 { $0 }, [ $1 + 0 ], $2;", "=l,l,l,b"(ptr addrspace(1) %104, i64 %108, i1 %105) #5, !dbg !51
|
| 137 |
+
%110 = icmp slt i32 %100, %79, !dbg !52
|
| 138 |
+
%sext7 = shl i64 %109, 32, !dbg !53
|
| 139 |
+
%111 = ashr exact i64 %sext7, 32, !dbg !53
|
| 140 |
+
%112 = select i1 %110, i64 %111, i64 %5, !dbg !53
|
| 141 |
+
%113 = icmp slt i64 %112, 0, !dbg !54
|
| 142 |
+
%114 = select i1 %113, i64 %92, i64 0, !dbg !55
|
| 143 |
+
%115 = add i64 %114, %112, !dbg !55
|
| 144 |
+
%116 = icmp slt i64 %115, 0, !dbg !56
|
| 145 |
+
%117 = icmp sgt i64 %115, %98, !dbg !57
|
| 146 |
+
%.not12 = or i1 %116, %117, !dbg !58
|
| 147 |
+
%.not9 = and i1 %105, %.not12, !dbg !59
|
| 148 |
+
br i1 %.not9, label %118, label %119, !dbg !59
|
| 149 |
+
|
| 150 |
+
118: ; preds = %.lr.ph14
|
| 151 |
+
tail call void @__assertfail(ptr nonnull @assertMessage_0, ptr nonnull @assertFile_0, i32 59, ptr nonnull @assertFunc_0, i64 1), !dbg !59
|
| 152 |
+
unreachable, !dbg !59
|
| 153 |
+
|
| 154 |
+
119: ; preds = %.lr.ph14
|
| 155 |
+
%sext = shl i64 %107, 32, !dbg !53
|
| 156 |
+
%120 = ashr exact i64 %sext, 32, !dbg !53
|
| 157 |
+
%121 = select i1 %110, i64 %120, i64 %5, !dbg !53
|
| 158 |
+
%122 = icmp slt i64 %121, 0, !dbg !54
|
| 159 |
+
%123 = select i1 %122, i64 %92, i64 0, !dbg !55
|
| 160 |
+
%124 = trunc i64 %109 to i32, !dbg !60
|
| 161 |
+
tail call void @llvm.nvvm.barrier.cta.sync.aligned.all(i32 0), !dbg !59
|
| 162 |
+
%125 = getelementptr i32, ptr addrspace(1) %3, i64 %103, !dbg !61
|
| 163 |
+
%126 = and i1 %82, %105, !dbg !62
|
| 164 |
+
tail call void asm sideeffect "@$2 st.global.b32 [ $1 + 0 ], { $0 };", "r,l,b"(i32 %124, ptr addrspace(1) %125, i1 %126) #5, !dbg !62
|
| 165 |
+
%127 = getelementptr i32, ptr addrspace(1) %4, i64 %121, !dbg !63
|
| 166 |
+
%128 = getelementptr i32, ptr addrspace(1) %127, i64 %123, !dbg !63
|
| 167 |
+
%129 = getelementptr i32, ptr addrspace(1) %128, i64 %16, !dbg !63
|
| 168 |
+
%130 = getelementptr i32, ptr addrspace(1) %129, i64 %17, !dbg !63
|
| 169 |
+
tail call void asm sideeffect "@$2 st.global.b32 [ $1 + 0 ], { $0 };", "r,l,b"(i32 1, ptr addrspace(1) %130, i1 %126) #5, !dbg !64
|
| 170 |
+
%131 = add i32 %99, 32, !dbg !45
|
| 171 |
+
%132 = icmp slt i32 %131, %8, !dbg !45
|
| 172 |
+
br i1 %132, label %.lr.ph14, label %._crit_edge15, !dbg !45
|
| 173 |
+
|
| 174 |
+
._crit_edge15: ; preds = %119, %._crit_edge
|
| 175 |
+
ret void, !dbg !65
|
| 176 |
+
}
|
| 177 |
+
|
| 178 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 179 |
+
declare noundef range(i32 0, 2147483647) i32 @llvm.nvvm.read.ptx.sreg.ctaid.x() #2
|
| 180 |
+
|
| 181 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 182 |
+
declare noundef range(i32 0, 1024) i32 @llvm.nvvm.read.ptx.sreg.tid.x() #2
|
| 183 |
+
|
| 184 |
+
; Function Attrs: convergent nocallback nounwind memory(inaccessiblemem: readwrite)
|
| 185 |
+
declare i32 @llvm.nvvm.shfl.sync.bfly.i32(i32, i32, i32, i32) #3
|
| 186 |
+
|
| 187 |
+
; Function Attrs: convergent nocallback nounwind
|
| 188 |
+
declare void @llvm.nvvm.barrier.cta.sync.aligned.all(i32) #4
|
| 189 |
+
|
| 190 |
+
attributes #0 = { noreturn }
|
| 191 |
+
attributes #1 = { "nvvm.reqntid"="64" }
|
| 192 |
+
attributes #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
|
| 193 |
+
attributes #3 = { convergent nocallback nounwind memory(inaccessiblemem: readwrite) }
|
| 194 |
+
attributes #4 = { convergent nocallback nounwind }
|
| 195 |
+
attributes #5 = { nounwind }
|
| 196 |
+
|
| 197 |
+
!llvm.dbg.cu = !{!0}
|
| 198 |
+
!llvm.module.flags = !{!2, !3}
|
| 199 |
+
!llvm.ident = !{!4}
|
| 200 |
+
|
| 201 |
+
!0 = distinct !DICompileUnit(language: DW_LANG_C, file: !1, producer: "triton", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly)
|
| 202 |
+
!1 = !DIFile(filename: "cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py", directory: "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr")
|
| 203 |
+
!2 = !{i32 2, !"Debug Info Version", i32 3}
|
| 204 |
+
!3 = !{i32 4, !"nvvm-reflect-ftz", i32 1}
|
| 205 |
+
!4 = !{!"clang version 3.8.0 (tags/RELEASE_380/final)"}
|
| 206 |
+
!5 = !DISubprogram(name: "__assertfail", linkageName: "__assertfail", scope: !6, file: !6, type: !7, spFlags: DISPFlagOptimized)
|
| 207 |
+
!6 = !DIFile(filename: "<unknown>", directory: "")
|
| 208 |
+
!7 = !DISubroutineType(cc: DW_CC_normal, types: !8)
|
| 209 |
+
!8 = !{}
|
| 210 |
+
!9 = distinct !DISubprogram(name: "triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2", linkageName: "triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2", scope: !1, file: !1, line: 18, type: !7, scopeLine: 18, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0)
|
| 211 |
+
!10 = !DILocation(line: 22, column: 28, scope: !9)
|
| 212 |
+
!11 = !DILocation(line: 24, column: 21, scope: !9)
|
| 213 |
+
!12 = !DILocation(line: 25, column: 37, scope: !9)
|
| 214 |
+
!13 = !DILocation(line: 35, column: 45, scope: !9)
|
| 215 |
+
!14 = !DILocation(line: 29, column: 40, scope: !9)
|
| 216 |
+
!15 = !DILocation(line: 30, column: 31, scope: !9)
|
| 217 |
+
!16 = !DILocation(line: 35, column: 41, scope: !9)
|
| 218 |
+
!17 = !DILocation(line: 35, column: 34, scope: !9)
|
| 219 |
+
!18 = !DILocation(line: 35, column: 50, scope: !9)
|
| 220 |
+
!19 = !DILocation(line: 31, column: 29, scope: !9)
|
| 221 |
+
!20 = !DILocation(line: 39, column: 48, scope: !9)
|
| 222 |
+
!21 = !DILocation(line: 28, column: 43, scope: !9)
|
| 223 |
+
!22 = !DILocation(line: 291, column: 36, scope: !23, inlinedAt: !25)
|
| 224 |
+
!23 = distinct !DILexicalBlockFile(scope: !9, file: !24, discriminator: 0)
|
| 225 |
+
!24 = !DIFile(filename: "standard.py", directory: "/workspace/specforge/lib/python3.11/site-packages/triton/language")
|
| 226 |
+
!25 = !DILocation(line: 40, column: 25, scope: !9)
|
| 227 |
+
!26 = !DILocation(line: 261, column: 15, scope: !23, inlinedAt: !25)
|
| 228 |
+
!27 = !DILocation(line: 41, column: 19, scope: !9)
|
| 229 |
+
!28 = !DILocation(line: 42, column: 25, scope: !9)
|
| 230 |
+
!29 = !DILocation(line: 42, column: 36, scope: !9)
|
| 231 |
+
!30 = !DILocation(line: 49, column: 60, scope: !9)
|
| 232 |
+
!31 = !DILocation(line: 49, column: 86, scope: !9)
|
| 233 |
+
!32 = !DILocation(line: 49, column: 77, scope: !9)
|
| 234 |
+
!33 = !DILocation(line: 49, scope: !9)
|
| 235 |
+
!34 = !DILocation(line: 49, column: 68, scope: !9)
|
| 236 |
+
!35 = !DILocation(line: 49, column: 45, scope: !9)
|
| 237 |
+
!36 = !DILocation(line: 55, column: 20, scope: !9)
|
| 238 |
+
!37 = !DILocation(line: 59, column: 94, scope: !9)
|
| 239 |
+
!38 = !DILocation(line: 72, column: 16, scope: !39, inlinedAt: !41)
|
| 240 |
+
!39 = distinct !DILexicalBlockFile(scope: !9, file: !40, discriminator: 0)
|
| 241 |
+
!40 = !DIFile(filename: "triton_helpers.py", directory: "/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime")
|
| 242 |
+
!41 = !DILocation(line: 59, column: 100, scope: !9)
|
| 243 |
+
!42 = !DILocation(line: 74, column: 34, scope: !39, inlinedAt: !41)
|
| 244 |
+
!43 = !DILocation(line: 75, column: 25, scope: !39, inlinedAt: !41)
|
| 245 |
+
!44 = !DILocation(line: 75, column: 47, scope: !39, inlinedAt: !41)
|
| 246 |
+
!45 = !DILocation(line: 43, column: 40, scope: !9)
|
| 247 |
+
!46 = !DILocation(line: 44, column: 31, scope: !9)
|
| 248 |
+
!47 = !DILocation(line: 45, column: 29, scope: !9)
|
| 249 |
+
!48 = !DILocation(line: 49, column: 41, scope: !9)
|
| 250 |
+
!49 = !DILocation(line: 49, column: 34, scope: !9)
|
| 251 |
+
!50 = !DILocation(line: 49, column: 103, scope: !9)
|
| 252 |
+
!51 = !DILocation(line: 49, column: 93, scope: !9)
|
| 253 |
+
!52 = !DILocation(line: 52, column: 22, scope: !9)
|
| 254 |
+
!53 = !DILocation(line: 54, column: 37, scope: !9)
|
| 255 |
+
!54 = !DILocation(line: 57, column: 24, scope: !9)
|
| 256 |
+
!55 = !DILocation(line: 58, column: 39, scope: !9)
|
| 257 |
+
!56 = !DILocation(line: 59, column: 32, scope: !9)
|
| 258 |
+
!57 = !DILocation(line: 59, column: 50, scope: !9)
|
| 259 |
+
!58 = !DILocation(line: 59, column: 112, scope: !9)
|
| 260 |
+
!59 = !DILocation(line: 59, column: 130, scope: !9)
|
| 261 |
+
!60 = !DILocation(line: 50, column: 23, scope: !9)
|
| 262 |
+
!61 = !DILocation(line: 61, column: 29, scope: !9)
|
| 263 |
+
!62 = !DILocation(line: 61, column: 94, scope: !9)
|
| 264 |
+
!63 = !DILocation(line: 62, column: 29, scope: !9)
|
| 265 |
+
!64 = !DILocation(line: 62, column: 95, scope: !9)
|
| 266 |
+
!65 = !DILocation(line: 43, column: 4, scope: !9)
|
SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.ptx
ADDED
|
@@ -0,0 +1,640 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
//
|
| 2 |
+
// Generated by LLVM NVPTX Back-End
|
| 3 |
+
//
|
| 4 |
+
|
| 5 |
+
.version 8.7
|
| 6 |
+
.target sm_90a
|
| 7 |
+
.address_size 64
|
| 8 |
+
|
| 9 |
+
// .globl triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2 // -- Begin function triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2
|
| 10 |
+
.extern .func __assertfail
|
| 11 |
+
(
|
| 12 |
+
.param .b64 __assertfail_param_0,
|
| 13 |
+
.param .b64 __assertfail_param_1,
|
| 14 |
+
.param .b32 __assertfail_param_2,
|
| 15 |
+
.param .b64 __assertfail_param_3,
|
| 16 |
+
.param .b64 __assertfail_param_4
|
| 17 |
+
)
|
| 18 |
+
.noreturn;
|
| 19 |
+
.global .align 1 .b8 assertFunc_0[8] = {117, 110, 107, 110, 111, 119, 110};
|
| 20 |
+
.global .align 1 .b8 assertFile_0[114] = {47, 119, 111, 114, 107, 115, 112, 97, 99, 101, 47, 104, 97, 110, 114, 117, 105, 47, 83, 112, 101, 99, 70, 111, 114, 103, 101, 45, 101, 120, 116, 47, 99, 97, 99, 104, 101, 47, 99, 111, 109, 112, 105, 108, 101, 100, 95, 107, 101, 114, 110, 101, 108, 115, 47, 118, 114, 47, 99, 118, 114, 104, 110, 114, 109, 112, 103, 121, 120, 119, 117, 51, 52, 120, 108, 101, 99, 108, 101, 101, 51, 116, 116, 52, 107, 101, 109, 111, 108, 100, 107, 106, 55, 105, 97, 109, 52, 117, 99, 105, 97, 116, 104, 111, 109, 105, 114, 118, 108, 99, 46, 112, 121};
|
| 21 |
+
.global .align 1 .b8 assertMessage_0[90] = {105, 110, 100, 101, 120, 32, 111, 117, 116, 32, 111, 102, 32, 98, 111, 117, 110, 100, 115, 58, 32, 48, 32, 60, 61, 32, 116, 109, 112, 49, 53, 32, 60, 32, 49, 32, 43, 32, 40, 116, 114, 105, 116, 111, 110, 95, 104, 101, 108, 112, 101, 114, 115, 46, 100, 105, 118, 95, 102, 108, 111, 111, 114, 95, 105, 110, 116, 101, 103, 101, 114, 40, 49, 50, 55, 32, 43, 32, 107, 115, 49, 44, 32, 32, 49, 50, 56, 41, 41};
|
| 22 |
+
// @triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2
|
| 23 |
+
.visible .entry triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2(
|
| 24 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_0,
|
| 25 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_1,
|
| 26 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_2,
|
| 27 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_3,
|
| 28 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_4,
|
| 29 |
+
.param .u64 triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_5,
|
| 30 |
+
.param .u64 triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_6,
|
| 31 |
+
.param .u32 triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_7,
|
| 32 |
+
.param .u32 triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_8,
|
| 33 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_9,
|
| 34 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_10
|
| 35 |
+
)
|
| 36 |
+
.reqntid 64
|
| 37 |
+
{
|
| 38 |
+
.reg .pred %p<32>;
|
| 39 |
+
.reg .b32 %r<53>;
|
| 40 |
+
.reg .b64 %rd<103>;
|
| 41 |
+
.loc 1 18 0 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:18:0
|
| 42 |
+
$L__func_begin0:
|
| 43 |
+
.loc 1 18 0 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:18:0
|
| 44 |
+
|
| 45 |
+
// %bb.0:
|
| 46 |
+
ld.param.b32 %r12, [triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_8];
|
| 47 |
+
ld.param.b64 %rd18, [triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_5];
|
| 48 |
+
ld.param.b64 %rd15, [triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_2];
|
| 49 |
+
$L__tmp0:
|
| 50 |
+
.loc 1 22 28 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:22:28
|
| 51 |
+
mov.u32 %r13, %ctaid.x;
|
| 52 |
+
.loc 1 25 37 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:25:37
|
| 53 |
+
mov.u32 %r1, %tid.x;
|
| 54 |
+
and.b32 %r2, %r1, 31;
|
| 55 |
+
.loc 1 35 45 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:35:45
|
| 56 |
+
cvt.u64.u32 %rd1, %r13;
|
| 57 |
+
mul.lo.s64 %rd2, %rd18, %rd1;
|
| 58 |
+
.loc 1 29 40 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:29:40
|
| 59 |
+
setp.lt.s32 %p2, %r12, 1;
|
| 60 |
+
mov.b64 %rd102, 0;
|
| 61 |
+
cvt.u32.u64 %r49, %rd1;
|
| 62 |
+
shl.b64 %rd100, %rd2, 2;
|
| 63 |
+
@%p2 bra $L__BB0_6;
|
| 64 |
+
// %bb.1: // %.lr.ph
|
| 65 |
+
.loc 1 0 40 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:0:40
|
| 66 |
+
ld.param.b64 %rd13, [triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_0];
|
| 67 |
+
.loc 1 24 21 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:24:21
|
| 68 |
+
setp.lt.u32 %p3, %r49, 32;
|
| 69 |
+
add.s64 %rd3, %rd13, %rd100;
|
| 70 |
+
@%p3 bra $L__BB0_4;
|
| 71 |
+
bra.uni $L__BB0_2;
|
| 72 |
+
$L__BB0_4: // %.lr.ph.split.preheader
|
| 73 |
+
.loc 1 0 21 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:0:21
|
| 74 |
+
mov.b32 %r51, 0;
|
| 75 |
+
mov.b64 %rd102, 0;
|
| 76 |
+
$L__BB0_5: // %.lr.ph.split
|
| 77 |
+
// =>This Inner Loop Header: Depth=1
|
| 78 |
+
.loc 1 31 29 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:31:29
|
| 79 |
+
add.s32 %r20, %r2, %r51;
|
| 80 |
+
setp.lt.s32 %p6, %r20, %r12;
|
| 81 |
+
.loc 1 35 34 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:35:34
|
| 82 |
+
mad.wide.s32 %rd28, %r20, 4, %rd3;
|
| 83 |
+
.loc 1 35 50 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:35:50
|
| 84 |
+
// begin inline asm
|
| 85 |
+
mov.u64 %rd27, 0x0;
|
| 86 |
+
createpolicy.fractional.L2::evict_first.b64 %rd27, 1.0;
|
| 87 |
+
// end inline asm
|
| 88 |
+
// begin inline asm
|
| 89 |
+
mov.u32 %r19, 0x0;
|
| 90 |
+
@%p6 ld.global.L1::evict_first.L2::cache_hint.b32 { %r19 }, [ %rd28 + 0 ], %rd27;
|
| 91 |
+
// end inline asm
|
| 92 |
+
.loc 1 39 48 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:39:48
|
| 93 |
+
selp.b32 %r21, %r19, 0, %p6;
|
| 94 |
+
cvt.s64.s32 %rd30, %r21;
|
| 95 |
+
add.s64 %rd102, %rd102, %rd30;
|
| 96 |
+
.loc 1 29 40 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:29:40
|
| 97 |
+
add.s32 %r51, %r51, 32;
|
| 98 |
+
setp.lt.s32 %p7, %r51, %r12;
|
| 99 |
+
@%p7 bra $L__BB0_5;
|
| 100 |
+
bra.uni $L__BB0_6;
|
| 101 |
+
$L__BB0_2: // %.lr.ph.split.us.preheader
|
| 102 |
+
.loc 1 0 40 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:0:40
|
| 103 |
+
mov.b32 %r50, 0;
|
| 104 |
+
$L__BB0_3: // %.lr.ph.split.us
|
| 105 |
+
// =>This Inner Loop Header: Depth=1
|
| 106 |
+
.loc 1 35 41 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:35:41
|
| 107 |
+
add.s32 %r17, %r2, %r50;
|
| 108 |
+
.loc 1 35 34 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:35:34
|
| 109 |
+
mad.wide.s32 %rd23, %r17, 4, %rd3;
|
| 110 |
+
.loc 1 35 50 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:35:50
|
| 111 |
+
// begin inline asm
|
| 112 |
+
mov.u64 %rd22, 0x0;
|
| 113 |
+
createpolicy.fractional.L2::evict_first.b64 %rd22, 1.0;
|
| 114 |
+
// end inline asm
|
| 115 |
+
mov.pred %p4, 0;
|
| 116 |
+
// begin inline asm
|
| 117 |
+
mov.u32 %r16, 0x0;
|
| 118 |
+
@%p4 ld.global.L1::evict_first.L2::cache_hint.b32 { %r16 }, [ %rd23 + 0 ], %rd22;
|
| 119 |
+
// end inline asm
|
| 120 |
+
.loc 1 29 40 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:29:40
|
| 121 |
+
add.s32 %r50, %r50, 32;
|
| 122 |
+
setp.lt.s32 %p5, %r50, %r12;
|
| 123 |
+
@%p5 bra $L__BB0_3;
|
| 124 |
+
$L__BB0_6: // %._crit_edge
|
| 125 |
+
.loc 1 24 21 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:24:21
|
| 126 |
+
setp.lt.u32 %p10, %r49, 32;
|
| 127 |
+
$L__tmp1:
|
| 128 |
+
.loc 2 291 36 // standard.py:291:36 @[ cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:40:25 ]
|
| 129 |
+
mov.b64 {_, %r24}, %rd102;
|
| 130 |
+
cvt.u32.u64 %r25, %rd102;
|
| 131 |
+
shfl.sync.bfly.b32 %r26, %r25, 16, 31, -1;
|
| 132 |
+
shfl.sync.bfly.b32 %r27, %r24, 16, 31, -1;
|
| 133 |
+
cvt.u64.u32 %rd32, %r26;
|
| 134 |
+
cvt.u64.u32 %rd33, %r27;
|
| 135 |
+
shl.b64 %rd34, %rd33, 32;
|
| 136 |
+
or.b64 %rd35, %rd32, %rd34;
|
| 137 |
+
.loc 2 261 15 // standard.py:261:15 @[ cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:40:25 ]
|
| 138 |
+
add.s64 %rd36, %rd102, %rd35;
|
| 139 |
+
.loc 2 291 36 // standard.py:291:36 @[ cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:40:25 ]
|
| 140 |
+
mov.b64 {_, %r28}, %rd36;
|
| 141 |
+
cvt.u32.u64 %r29, %rd36;
|
| 142 |
+
shfl.sync.bfly.b32 %r30, %r29, 8, 31, -1;
|
| 143 |
+
shfl.sync.bfly.b32 %r31, %r28, 8, 31, -1;
|
| 144 |
+
cvt.u64.u32 %rd37, %r30;
|
| 145 |
+
cvt.u64.u32 %rd38, %r31;
|
| 146 |
+
shl.b64 %rd39, %rd38, 32;
|
| 147 |
+
or.b64 %rd40, %rd37, %rd39;
|
| 148 |
+
.loc 2 261 15 // standard.py:261:15 @[ cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:40:25 ]
|
| 149 |
+
add.s64 %rd41, %rd36, %rd40;
|
| 150 |
+
.loc 2 291 36 // standard.py:291:36 @[ cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:40:25 ]
|
| 151 |
+
mov.b64 {_, %r32}, %rd41;
|
| 152 |
+
cvt.u32.u64 %r33, %rd41;
|
| 153 |
+
shfl.sync.bfly.b32 %r34, %r33, 4, 31, -1;
|
| 154 |
+
shfl.sync.bfly.b32 %r35, %r32, 4, 31, -1;
|
| 155 |
+
cvt.u64.u32 %rd42, %r34;
|
| 156 |
+
cvt.u64.u32 %rd43, %r35;
|
| 157 |
+
shl.b64 %rd44, %rd43, 32;
|
| 158 |
+
or.b64 %rd45, %rd42, %rd44;
|
| 159 |
+
.loc 2 261 15 // standard.py:261:15 @[ cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:40:25 ]
|
| 160 |
+
add.s64 %rd46, %rd41, %rd45;
|
| 161 |
+
.loc 2 291 36 // standard.py:291:36 @[ cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:40:25 ]
|
| 162 |
+
mov.b64 {_, %r36}, %rd46;
|
| 163 |
+
cvt.u32.u64 %r37, %rd46;
|
| 164 |
+
shfl.sync.bfly.b32 %r38, %r37, 2, 31, -1;
|
| 165 |
+
shfl.sync.bfly.b32 %r39, %r36, 2, 31, -1;
|
| 166 |
+
cvt.u64.u32 %rd47, %r38;
|
| 167 |
+
cvt.u64.u32 %rd48, %r39;
|
| 168 |
+
shl.b64 %rd49, %rd48, 32;
|
| 169 |
+
or.b64 %rd50, %rd47, %rd49;
|
| 170 |
+
.loc 2 261 15 // standard.py:261:15 @[ cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:40:25 ]
|
| 171 |
+
add.s64 %rd51, %rd46, %rd50;
|
| 172 |
+
.loc 2 291 36 // standard.py:291:36 @[ cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:40:25 ]
|
| 173 |
+
mov.b64 {_, %r40}, %rd51;
|
| 174 |
+
cvt.u32.u64 %r41, %rd51;
|
| 175 |
+
shfl.sync.bfly.b32 %r42, %r41, 1, 31, -1;
|
| 176 |
+
shfl.sync.bfly.b32 %r43, %r40, 1, 31, -1;
|
| 177 |
+
cvt.u64.u32 %rd52, %r42;
|
| 178 |
+
.loc 2 261 15 // standard.py:261:15 @[ cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:40:25 ]
|
| 179 |
+
add.s64 %rd53, %rd51, %rd52;
|
| 180 |
+
$L__tmp2:
|
| 181 |
+
.loc 1 41 19 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:41:19
|
| 182 |
+
cvt.u32.u64 %r22, %rd53;
|
| 183 |
+
.loc 1 42 25 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:42:25
|
| 184 |
+
shl.b64 %rd54, %rd1, 2;
|
| 185 |
+
add.s64 %rd31, %rd15, %rd54;
|
| 186 |
+
.loc 1 42 36 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:42:36
|
| 187 |
+
and.b32 %r44, %r1, 63;
|
| 188 |
+
setp.eq.b32 %p11, %r44, 0;
|
| 189 |
+
and.pred %p8, %p10, %p11;
|
| 190 |
+
// begin inline asm
|
| 191 |
+
@%p8 st.global.b32 [ %rd31 + 0 ], { %r22 };
|
| 192 |
+
// end inline asm
|
| 193 |
+
.loc 1 43 40 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:43:40
|
| 194 |
+
@%p2 bra $L__BB0_11;
|
| 195 |
+
// %bb.7: // %.lr.ph14.preheader
|
| 196 |
+
.loc 1 0 40 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:0:40
|
| 197 |
+
ld.param.b64 %rd19, [triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_6];
|
| 198 |
+
ld.param.b64 %rd17, [triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_4];
|
| 199 |
+
ld.param.b64 %rd16, [triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_3];
|
| 200 |
+
ld.param.b64 %rd14, [triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2_param_1];
|
| 201 |
+
and.b32 %r8, %r1, 32;
|
| 202 |
+
setp.lt.s64 %p12, %rd18, 2;
|
| 203 |
+
setp.gt.s64 %p13, %rd18, 1;
|
| 204 |
+
selp.b64 %rd55, %rd18, 0, %p13;
|
| 205 |
+
selp.b64 %rd56, 1, 0, %p12;
|
| 206 |
+
add.s64 %rd57, %rd55, %rd56;
|
| 207 |
+
mul.lo.s64 %rd7, %rd57, %rd1;
|
| 208 |
+
add.s64 %rd8, %rd18, 1;
|
| 209 |
+
add.s64 %rd58, %rd19, 127;
|
| 210 |
+
shr.s64 %rd59, %rd58, 63;
|
| 211 |
+
shr.u64 %rd60, %rd59, 57;
|
| 212 |
+
add.s64 %rd61, %rd58, %rd60;
|
| 213 |
+
shr.s64 %rd62, %rd61, 7;
|
| 214 |
+
and.b64 %rd63, %rd58, 127;
|
| 215 |
+
setp.ne.b64 %p14, %rd63, 0;
|
| 216 |
+
setp.lt.s64 %p15, %rd58, 0;
|
| 217 |
+
and.pred %p16, %p15, %p14;
|
| 218 |
+
selp.b64 %rd64, -1, 0, %p16;
|
| 219 |
+
add.s64 %rd9, %rd62, %rd64;
|
| 220 |
+
mov.b32 %r52, 0;
|
| 221 |
+
$L__BB0_8: // %.lr.ph14
|
| 222 |
+
// =>This Inner Loop Header: Depth=1
|
| 223 |
+
.loc 1 45 29 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:45:29
|
| 224 |
+
add.s32 %r10, %r2, %r52;
|
| 225 |
+
setp.lt.s32 %p20, %r10, %r12;
|
| 226 |
+
.loc 1 49 41 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:49:41
|
| 227 |
+
cvt.s64.s32 %rd73, %r10;
|
| 228 |
+
add.s64 %rd10, %rd7, %rd73;
|
| 229 |
+
.loc 1 49 34 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:49:34
|
| 230 |
+
shl.b64 %rd74, %rd10, 3;
|
| 231 |
+
add.s64 %rd67, %rd14, %rd74;
|
| 232 |
+
.loc 1 49 103 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:49:103
|
| 233 |
+
and.pred %p18, %p10, %p20;
|
| 234 |
+
.loc 1 49 93 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:49:93
|
| 235 |
+
// begin inline asm
|
| 236 |
+
mov.u64 %rd65, 0x0;
|
| 237 |
+
createpolicy.fractional.L2::evict_first.b64 %rd65, 1.0;
|
| 238 |
+
// end inline asm
|
| 239 |
+
// begin inline asm
|
| 240 |
+
mov.u64 %rd66, 0x0;
|
| 241 |
+
@%p18 ld.global.L1::evict_first.L2::cache_hint.b64 { %rd66 }, [ %rd67 + 0 ], %rd65;
|
| 242 |
+
// end inline asm
|
| 243 |
+
// begin inline asm
|
| 244 |
+
mov.u64 %rd69, 0x0;
|
| 245 |
+
createpolicy.fractional.L2::evict_first.b64 %rd69, 1.0;
|
| 246 |
+
// end inline asm
|
| 247 |
+
// begin inline asm
|
| 248 |
+
mov.u64 %rd70, 0x0;
|
| 249 |
+
@%p18 ld.global.L1::evict_first.L2::cache_hint.b64 { %rd70 }, [ %rd67 + 0 ], %rd69;
|
| 250 |
+
// end inline asm
|
| 251 |
+
.loc 1 52 22 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:52:22
|
| 252 |
+
setp.lt.s32 %p21, %r10, %r22;
|
| 253 |
+
.loc 1 54 37 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:54:37
|
| 254 |
+
cvt.s64.s32 %rd75, %rd70;
|
| 255 |
+
selp.b64 %rd76, %rd75, %rd18, %p21;
|
| 256 |
+
.loc 1 58 39 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:58:39
|
| 257 |
+
shr.s64 %rd77, %rd76, 63;
|
| 258 |
+
and.b64 %rd78, %rd77, %rd8;
|
| 259 |
+
add.s64 %rd79, %rd78, %rd76;
|
| 260 |
+
.loc 1 59 32 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:59:32
|
| 261 |
+
setp.lt.s64 %p22, %rd79, 0;
|
| 262 |
+
.loc 1 59 50 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:59:50
|
| 263 |
+
setp.gt.s64 %p23, %rd79, %rd9;
|
| 264 |
+
.loc 1 59 112 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:59:112
|
| 265 |
+
or.pred %p24, %p22, %p23;
|
| 266 |
+
.loc 1 59 130 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:59:130
|
| 267 |
+
and.pred %p25, %p18, %p24;
|
| 268 |
+
not.pred %p26, %p25;
|
| 269 |
+
@%p26 bra $L__BB0_10;
|
| 270 |
+
bra.uni $L__BB0_9;
|
| 271 |
+
$L__BB0_10: // in Loop: Header=BB0_8 Depth=1
|
| 272 |
+
.loc 1 42 36 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:42:36
|
| 273 |
+
setp.eq.b32 %p30, %r8, 0;
|
| 274 |
+
.loc 1 54 37 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:54:37
|
| 275 |
+
cvt.s64.s32 %rd82, %rd66;
|
| 276 |
+
selp.b64 %rd83, %rd82, %rd18, %p21;
|
| 277 |
+
.loc 1 58 39 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:58:39
|
| 278 |
+
shr.s64 %rd84, %rd83, 63;
|
| 279 |
+
and.b64 %rd85, %rd84, %rd8;
|
| 280 |
+
.loc 1 50 23 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:50:23
|
| 281 |
+
cvt.u32.u64 %r47, %rd70;
|
| 282 |
+
.loc 1 59 130 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:59:130
|
| 283 |
+
bar.sync 0;
|
| 284 |
+
.loc 1 61 29 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:61:29
|
| 285 |
+
shl.b64 %rd86, %rd10, 2;
|
| 286 |
+
add.s64 %rd80, %rd16, %rd86;
|
| 287 |
+
.loc 1 61 94 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:61:94
|
| 288 |
+
and.pred %p27, %p30, %p18;
|
| 289 |
+
// begin inline asm
|
| 290 |
+
@%p27 st.global.b32 [ %rd80 + 0 ], { %r47 };
|
| 291 |
+
// end inline asm
|
| 292 |
+
.loc 1 62 29 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:62:29
|
| 293 |
+
shl.b64 %rd87, %rd83, 2;
|
| 294 |
+
add.s64 %rd88, %rd17, %rd87;
|
| 295 |
+
shl.b64 %rd89, %rd85, 2;
|
| 296 |
+
add.s64 %rd90, %rd88, %rd89;
|
| 297 |
+
add.s64 %rd92, %rd90, %rd54;
|
| 298 |
+
add.s64 %rd81, %rd92, %rd100;
|
| 299 |
+
mov.b32 %r48, 1;
|
| 300 |
+
.loc 1 62 95 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:62:95
|
| 301 |
+
// begin inline asm
|
| 302 |
+
@%p27 st.global.b32 [ %rd81 + 0 ], { %r48 };
|
| 303 |
+
// end inline asm
|
| 304 |
+
.loc 1 43 40 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:43:40
|
| 305 |
+
add.s32 %r52, %r52, 32;
|
| 306 |
+
setp.lt.s32 %p31, %r52, %r12;
|
| 307 |
+
@%p31 bra $L__BB0_8;
|
| 308 |
+
$L__BB0_11: // %._crit_edge15
|
| 309 |
+
.loc 1 43 4 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:43:4
|
| 310 |
+
ret;
|
| 311 |
+
$L__BB0_9:
|
| 312 |
+
.loc 1 59 130 // cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py:59:130
|
| 313 |
+
{ // callseq 0, 0
|
| 314 |
+
.param .b64 param0;
|
| 315 |
+
.param .b64 param1;
|
| 316 |
+
.param .b32 param2;
|
| 317 |
+
.param .b64 param3;
|
| 318 |
+
.param .b64 param4;
|
| 319 |
+
mov.b64 %rd94, assertFunc_0;
|
| 320 |
+
cvta.global.u64 %rd95, %rd94;
|
| 321 |
+
st.param.b64 [param3], %rd95;
|
| 322 |
+
mov.b64 %rd96, assertFile_0;
|
| 323 |
+
cvta.global.u64 %rd97, %rd96;
|
| 324 |
+
st.param.b64 [param1], %rd97;
|
| 325 |
+
mov.b64 %rd98, assertMessage_0;
|
| 326 |
+
cvta.global.u64 %rd99, %rd98;
|
| 327 |
+
st.param.b64 [param0], %rd99;
|
| 328 |
+
st.param.b64 [param4], 1;
|
| 329 |
+
st.param.b32 [param2], 59;
|
| 330 |
+
call.uni __assertfail, (param0, param1, param2, param3, param4);
|
| 331 |
+
} // callseq 0
|
| 332 |
+
trap;
|
| 333 |
+
$L__tmp3:
|
| 334 |
+
$L__func_end0:
|
| 335 |
+
// -- End function
|
| 336 |
+
}
|
| 337 |
+
.file 1 "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py"
|
| 338 |
+
.file 2 "/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py"
|
| 339 |
+
.section .debug_abbrev
|
| 340 |
+
{
|
| 341 |
+
.b8 1 // Abbreviation Code
|
| 342 |
+
.b8 17 // DW_TAG_compile_unit
|
| 343 |
+
.b8 1 // DW_CHILDREN_yes
|
| 344 |
+
.b8 37 // DW_AT_producer
|
| 345 |
+
.b8 8 // DW_FORM_string
|
| 346 |
+
.b8 19 // DW_AT_language
|
| 347 |
+
.b8 5 // DW_FORM_data2
|
| 348 |
+
.b8 3 // DW_AT_name
|
| 349 |
+
.b8 8 // DW_FORM_string
|
| 350 |
+
.b8 16 // DW_AT_stmt_list
|
| 351 |
+
.b8 6 // DW_FORM_data4
|
| 352 |
+
.b8 27 // DW_AT_comp_dir
|
| 353 |
+
.b8 8 // DW_FORM_string
|
| 354 |
+
.b8 0 // EOM(1)
|
| 355 |
+
.b8 0 // EOM(2)
|
| 356 |
+
.b8 2 // Abbreviation Code
|
| 357 |
+
.b8 46 // DW_TAG_subprogram
|
| 358 |
+
.b8 0 // DW_CHILDREN_no
|
| 359 |
+
.b8 3 // DW_AT_name
|
| 360 |
+
.b8 8 // DW_FORM_string
|
| 361 |
+
.b8 32 // DW_AT_inline
|
| 362 |
+
.b8 11 // DW_FORM_data1
|
| 363 |
+
.b8 0 // EOM(1)
|
| 364 |
+
.b8 0 // EOM(2)
|
| 365 |
+
.b8 3 // Abbreviation Code
|
| 366 |
+
.b8 46 // DW_TAG_subprogram
|
| 367 |
+
.b8 1 // DW_CHILDREN_yes
|
| 368 |
+
.b8 17 // DW_AT_low_pc
|
| 369 |
+
.b8 1 // DW_FORM_addr
|
| 370 |
+
.b8 18 // DW_AT_high_pc
|
| 371 |
+
.b8 1 // DW_FORM_addr
|
| 372 |
+
.b8 49 // DW_AT_abstract_origin
|
| 373 |
+
.b8 19 // DW_FORM_ref4
|
| 374 |
+
.b8 0 // EOM(1)
|
| 375 |
+
.b8 0 // EOM(2)
|
| 376 |
+
.b8 4 // Abbreviation Code
|
| 377 |
+
.b8 29 // DW_TAG_inlined_subroutine
|
| 378 |
+
.b8 0 // DW_CHILDREN_no
|
| 379 |
+
.b8 49 // DW_AT_abstract_origin
|
| 380 |
+
.b8 19 // DW_FORM_ref4
|
| 381 |
+
.b8 17 // DW_AT_low_pc
|
| 382 |
+
.b8 1 // DW_FORM_addr
|
| 383 |
+
.b8 18 // DW_AT_high_pc
|
| 384 |
+
.b8 1 // DW_FORM_addr
|
| 385 |
+
.b8 88 // DW_AT_call_file
|
| 386 |
+
.b8 11 // DW_FORM_data1
|
| 387 |
+
.b8 89 // DW_AT_call_line
|
| 388 |
+
.b8 11 // DW_FORM_data1
|
| 389 |
+
.b8 87 // DW_AT_call_column
|
| 390 |
+
.b8 11 // DW_FORM_data1
|
| 391 |
+
.b8 0 // EOM(1)
|
| 392 |
+
.b8 0 // EOM(2)
|
| 393 |
+
.b8 0 // EOM(3)
|
| 394 |
+
}
|
| 395 |
+
.section .debug_info
|
| 396 |
+
{
|
| 397 |
+
.b32 281 // Length of Unit
|
| 398 |
+
.b8 2 // DWARF version number
|
| 399 |
+
.b8 0
|
| 400 |
+
.b32 .debug_abbrev // Offset Into Abbrev. Section
|
| 401 |
+
.b8 8 // Address Size (in bytes)
|
| 402 |
+
.b8 1 // Abbrev [1] 0xb:0x112 DW_TAG_compile_unit
|
| 403 |
+
.b8 116 // DW_AT_producer
|
| 404 |
+
.b8 114
|
| 405 |
+
.b8 105
|
| 406 |
+
.b8 116
|
| 407 |
+
.b8 111
|
| 408 |
+
.b8 110
|
| 409 |
+
.b8 0
|
| 410 |
+
.b8 2 // DW_AT_language
|
| 411 |
+
.b8 0
|
| 412 |
+
.b8 99 // DW_AT_name
|
| 413 |
+
.b8 118
|
| 414 |
+
.b8 114
|
| 415 |
+
.b8 104
|
| 416 |
+
.b8 110
|
| 417 |
+
.b8 114
|
| 418 |
+
.b8 109
|
| 419 |
+
.b8 112
|
| 420 |
+
.b8 103
|
| 421 |
+
.b8 121
|
| 422 |
+
.b8 120
|
| 423 |
+
.b8 119
|
| 424 |
+
.b8 117
|
| 425 |
+
.b8 51
|
| 426 |
+
.b8 52
|
| 427 |
+
.b8 120
|
| 428 |
+
.b8 108
|
| 429 |
+
.b8 101
|
| 430 |
+
.b8 99
|
| 431 |
+
.b8 108
|
| 432 |
+
.b8 101
|
| 433 |
+
.b8 101
|
| 434 |
+
.b8 51
|
| 435 |
+
.b8 116
|
| 436 |
+
.b8 116
|
| 437 |
+
.b8 52
|
| 438 |
+
.b8 107
|
| 439 |
+
.b8 101
|
| 440 |
+
.b8 109
|
| 441 |
+
.b8 111
|
| 442 |
+
.b8 108
|
| 443 |
+
.b8 100
|
| 444 |
+
.b8 107
|
| 445 |
+
.b8 106
|
| 446 |
+
.b8 55
|
| 447 |
+
.b8 105
|
| 448 |
+
.b8 97
|
| 449 |
+
.b8 109
|
| 450 |
+
.b8 52
|
| 451 |
+
.b8 117
|
| 452 |
+
.b8 99
|
| 453 |
+
.b8 105
|
| 454 |
+
.b8 97
|
| 455 |
+
.b8 116
|
| 456 |
+
.b8 104
|
| 457 |
+
.b8 111
|
| 458 |
+
.b8 109
|
| 459 |
+
.b8 105
|
| 460 |
+
.b8 114
|
| 461 |
+
.b8 118
|
| 462 |
+
.b8 108
|
| 463 |
+
.b8 99
|
| 464 |
+
.b8 46
|
| 465 |
+
.b8 112
|
| 466 |
+
.b8 121
|
| 467 |
+
.b8 0
|
| 468 |
+
.b32 .debug_line // DW_AT_stmt_list
|
| 469 |
+
.b8 47 // DW_AT_comp_dir
|
| 470 |
+
.b8 119
|
| 471 |
+
.b8 111
|
| 472 |
+
.b8 114
|
| 473 |
+
.b8 107
|
| 474 |
+
.b8 115
|
| 475 |
+
.b8 112
|
| 476 |
+
.b8 97
|
| 477 |
+
.b8 99
|
| 478 |
+
.b8 101
|
| 479 |
+
.b8 47
|
| 480 |
+
.b8 104
|
| 481 |
+
.b8 97
|
| 482 |
+
.b8 110
|
| 483 |
+
.b8 114
|
| 484 |
+
.b8 117
|
| 485 |
+
.b8 105
|
| 486 |
+
.b8 47
|
| 487 |
+
.b8 83
|
| 488 |
+
.b8 112
|
| 489 |
+
.b8 101
|
| 490 |
+
.b8 99
|
| 491 |
+
.b8 70
|
| 492 |
+
.b8 111
|
| 493 |
+
.b8 114
|
| 494 |
+
.b8 103
|
| 495 |
+
.b8 101
|
| 496 |
+
.b8 45
|
| 497 |
+
.b8 101
|
| 498 |
+
.b8 120
|
| 499 |
+
.b8 116
|
| 500 |
+
.b8 47
|
| 501 |
+
.b8 99
|
| 502 |
+
.b8 97
|
| 503 |
+
.b8 99
|
| 504 |
+
.b8 104
|
| 505 |
+
.b8 101
|
| 506 |
+
.b8 47
|
| 507 |
+
.b8 99
|
| 508 |
+
.b8 111
|
| 509 |
+
.b8 109
|
| 510 |
+
.b8 112
|
| 511 |
+
.b8 105
|
| 512 |
+
.b8 108
|
| 513 |
+
.b8 101
|
| 514 |
+
.b8 100
|
| 515 |
+
.b8 95
|
| 516 |
+
.b8 107
|
| 517 |
+
.b8 101
|
| 518 |
+
.b8 114
|
| 519 |
+
.b8 110
|
| 520 |
+
.b8 101
|
| 521 |
+
.b8 108
|
| 522 |
+
.b8 115
|
| 523 |
+
.b8 47
|
| 524 |
+
.b8 118
|
| 525 |
+
.b8 114
|
| 526 |
+
.b8 0
|
| 527 |
+
.b8 2 // Abbrev [2] 0x8b:0x63 DW_TAG_subprogram
|
| 528 |
+
.b8 116 // DW_AT_name
|
| 529 |
+
.b8 114
|
| 530 |
+
.b8 105
|
| 531 |
+
.b8 116
|
| 532 |
+
.b8 111
|
| 533 |
+
.b8 110
|
| 534 |
+
.b8 95
|
| 535 |
+
.b8 114
|
| 536 |
+
.b8 101
|
| 537 |
+
.b8 100
|
| 538 |
+
.b8 95
|
| 539 |
+
.b8 102
|
| 540 |
+
.b8 117
|
| 541 |
+
.b8 115
|
| 542 |
+
.b8 101
|
| 543 |
+
.b8 100
|
| 544 |
+
.b8 95
|
| 545 |
+
.b8 95
|
| 546 |
+
.b8 116
|
| 547 |
+
.b8 111
|
| 548 |
+
.b8 95
|
| 549 |
+
.b8 99
|
| 550 |
+
.b8 111
|
| 551 |
+
.b8 112
|
| 552 |
+
.b8 121
|
| 553 |
+
.b8 95
|
| 554 |
+
.b8 97
|
| 555 |
+
.b8 114
|
| 556 |
+
.b8 97
|
| 557 |
+
.b8 110
|
| 558 |
+
.b8 103
|
| 559 |
+
.b8 101
|
| 560 |
+
.b8 95
|
| 561 |
+
.b8 105
|
| 562 |
+
.b8 110
|
| 563 |
+
.b8 100
|
| 564 |
+
.b8 101
|
| 565 |
+
.b8 120
|
| 566 |
+
.b8 95
|
| 567 |
+
.b8 112
|
| 568 |
+
.b8 117
|
| 569 |
+
.b8 116
|
| 570 |
+
.b8 95
|
| 571 |
+
.b8 108
|
| 572 |
+
.b8 116
|
| 573 |
+
.b8 95
|
| 574 |
+
.b8 110
|
| 575 |
+
.b8 101
|
| 576 |
+
.b8 119
|
| 577 |
+
.b8 95
|
| 578 |
+
.b8 122
|
| 579 |
+
.b8 101
|
| 580 |
+
.b8 114
|
| 581 |
+
.b8 111
|
| 582 |
+
.b8 115
|
| 583 |
+
.b8 95
|
| 584 |
+
.b8 115
|
| 585 |
+
.b8 99
|
| 586 |
+
.b8 97
|
| 587 |
+
.b8 108
|
| 588 |
+
.b8 97
|
| 589 |
+
.b8 114
|
| 590 |
+
.b8 95
|
| 591 |
+
.b8 116
|
| 592 |
+
.b8 101
|
| 593 |
+
.b8 110
|
| 594 |
+
.b8 115
|
| 595 |
+
.b8 111
|
| 596 |
+
.b8 114
|
| 597 |
+
.b8 95
|
| 598 |
+
.b8 115
|
| 599 |
+
.b8 117
|
| 600 |
+
.b8 109
|
| 601 |
+
.b8 95
|
| 602 |
+
.b8 117
|
| 603 |
+
.b8 110
|
| 604 |
+
.b8 115
|
| 605 |
+
.b8 113
|
| 606 |
+
.b8 117
|
| 607 |
+
.b8 101
|
| 608 |
+
.b8 101
|
| 609 |
+
.b8 122
|
| 610 |
+
.b8 101
|
| 611 |
+
.b8 95
|
| 612 |
+
.b8 118
|
| 613 |
+
.b8 105
|
| 614 |
+
.b8 101
|
| 615 |
+
.b8 119
|
| 616 |
+
.b8 95
|
| 617 |
+
.b8 119
|
| 618 |
+
.b8 104
|
| 619 |
+
.b8 101
|
| 620 |
+
.b8 114
|
| 621 |
+
.b8 101
|
| 622 |
+
.b8 95
|
| 623 |
+
.b8 50
|
| 624 |
+
.b8 0
|
| 625 |
+
.b8 1 // DW_AT_inline
|
| 626 |
+
.b8 3 // Abbrev [3] 0xee:0x2e DW_TAG_subprogram
|
| 627 |
+
.b64 $L__func_begin0 // DW_AT_low_pc
|
| 628 |
+
.b64 $L__func_end0 // DW_AT_high_pc
|
| 629 |
+
.b32 139 // DW_AT_abstract_origin
|
| 630 |
+
.b8 4 // Abbrev [4] 0x103:0x18 DW_TAG_inlined_subroutine
|
| 631 |
+
.b32 139 // DW_AT_abstract_origin
|
| 632 |
+
.b64 $L__tmp1 // DW_AT_low_pc
|
| 633 |
+
.b64 $L__tmp2 // DW_AT_high_pc
|
| 634 |
+
.b8 1 // DW_AT_call_file
|
| 635 |
+
.b8 40 // DW_AT_call_line
|
| 636 |
+
.b8 25 // DW_AT_call_column
|
| 637 |
+
.b8 0 // End Of Children Mark
|
| 638 |
+
.b8 0 // End Of Children Mark
|
| 639 |
+
}
|
| 640 |
+
.section .debug_macinfo { }
|
SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.source
ADDED
|
@@ -0,0 +1,379 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":18:0)
|
| 2 |
+
#loc77 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":285:0)
|
| 3 |
+
#loc79 = loc(unknown)
|
| 4 |
+
#loc82 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":260:0)
|
| 5 |
+
#loc86 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":69:0)
|
| 6 |
+
#loc97 = loc("in_ptr0"(#loc))
|
| 7 |
+
#loc98 = loc("in_ptr1"(#loc))
|
| 8 |
+
#loc99 = loc("out_ptr1"(#loc))
|
| 9 |
+
#loc100 = loc("out_ptr2"(#loc))
|
| 10 |
+
#loc101 = loc("out_ptr3"(#loc))
|
| 11 |
+
#loc102 = loc("ks0"(#loc))
|
| 12 |
+
#loc103 = loc("ks1"(#loc))
|
| 13 |
+
#loc104 = loc("xnumel"(#loc))
|
| 14 |
+
#loc105 = loc("r0_numel"(#loc))
|
| 15 |
+
#loc151 = loc("input"(#loc77))
|
| 16 |
+
#loc152 = loc("a"(#loc82))
|
| 17 |
+
#loc153 = loc("b"(#loc82))
|
| 18 |
+
#loc154 = loc("a"(#loc86))
|
| 19 |
+
module {
|
| 20 |
+
tt.func public @triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2(%in_ptr0: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %in_ptr1: !tt.ptr<i64> {tt.divisibility = 16 : i32} loc("in_ptr1"(#loc)), %out_ptr1: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr1"(#loc)), %out_ptr2: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr2"(#loc)), %out_ptr3: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr3"(#loc)), %ks0: i64 loc("ks0"(#loc)), %ks1: i64 loc("ks1"(#loc)), %xnumel: i32 {tt.divisibility = 16 : i32} loc("xnumel"(#loc)), %r0_numel: i32 loc("r0_numel"(#loc))) attributes {noinline = false} {
|
| 21 |
+
%xnumel_0 = arith.constant 32 : i32 loc(#loc106)
|
| 22 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc107)
|
| 23 |
+
%xoffset_1 = arith.constant 1 : i32 loc(#loc108)
|
| 24 |
+
%xoffset_2 = arith.constant 1 : i32 loc(#loc108)
|
| 25 |
+
%xoffset_3 = arith.muli %xoffset, %xoffset_2 : i32 loc(#loc108)
|
| 26 |
+
%xindex = tt.make_range {end = 1 : i32, start = 0 : i32} : tensor<1xi32> loc(#loc109)
|
| 27 |
+
%xindex_4 = tt.expand_dims %xindex {axis = 1 : i32} : tensor<1xi32> -> tensor<1x1xi32> loc(#loc110)
|
| 28 |
+
%xindex_5 = tt.splat %xoffset_3 : i32 -> tensor<1x1xi32> loc(#loc111)
|
| 29 |
+
%xindex_6 = arith.addi %xindex_5, %xindex_4 : tensor<1x1xi32> loc(#loc111)
|
| 30 |
+
%xmask = arith.constant dense<32> : tensor<1x1xi32> loc(#loc112)
|
| 31 |
+
%xmask_7 = arith.cmpi slt, %xindex_6, %xmask : tensor<1x1xi32> loc(#loc112)
|
| 32 |
+
%r0_base = tt.make_range {end = 32 : i32, start = 0 : i32} : tensor<32xi32> loc(#loc113)
|
| 33 |
+
%r0_base_8 = tt.expand_dims %r0_base {axis = 0 : i32} : tensor<32xi32> -> tensor<1x32xi32> loc(#loc114)
|
| 34 |
+
%_tmp3 = arith.constant 0 : i64 loc(#loc115)
|
| 35 |
+
%_tmp3_9 = arith.constant dense<0> : tensor<1x32xi64> loc(#loc115)
|
| 36 |
+
%c0_i32 = arith.constant 0 : i32 loc(#loc11)
|
| 37 |
+
%c32_i32 = arith.constant 32 : i32 loc(#loc11)
|
| 38 |
+
%0 = arith.bitcast %c0_i32 : i32 to i32 loc(#loc11)
|
| 39 |
+
%1 = arith.bitcast %r0_numel : i32 to i32 loc(#loc11)
|
| 40 |
+
%2 = arith.bitcast %c32_i32 : i32 to i32 loc(#loc11)
|
| 41 |
+
%3 = ub.poison : i32 loc(#loc11)
|
| 42 |
+
%_tmp3_10 = scf.for %r0_offset = %0 to %1 step %2 iter_args(%_tmp3_14 = %_tmp3_9) -> (tensor<1x32xi64>) : i32 {
|
| 43 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x32xi32> loc(#loc117)
|
| 44 |
+
%r0_index_15 = arith.addi %r0_index, %r0_base_8 : tensor<1x32xi32> loc(#loc117)
|
| 45 |
+
%r0_mask = tt.splat %r0_numel : i32 -> tensor<1x32xi32> loc(#loc118)
|
| 46 |
+
%r0_mask_16 = arith.cmpi slt, %r0_index_15, %r0_mask : tensor<1x32xi32> loc(#loc118)
|
| 47 |
+
%tmp0 = arith.extsi %xindex_6 : tensor<1x1xi32> to tensor<1x1xi64> loc(#loc119)
|
| 48 |
+
%tmp0_17 = tt.splat %ks0 : i64 -> tensor<1x1xi64> loc(#loc119)
|
| 49 |
+
%tmp0_18 = arith.muli %tmp0_17, %tmp0 : tensor<1x1xi64> loc(#loc119)
|
| 50 |
+
%tmp0_19 = arith.extsi %r0_index_15 : tensor<1x32xi32> to tensor<1x32xi64> loc(#loc120)
|
| 51 |
+
%tmp0_20 = tt.broadcast %tmp0_18 : tensor<1x1xi64> -> tensor<1x32xi64> loc(#loc120)
|
| 52 |
+
%tmp0_21 = arith.addi %tmp0_19, %tmp0_20 : tensor<1x32xi64> loc(#loc120)
|
| 53 |
+
%tmp0_22 = tt.splat %in_ptr0 : !tt.ptr<i32> -> tensor<1x32x!tt.ptr<i32>> loc(#loc121)
|
| 54 |
+
%tmp0_23 = tt.addptr %tmp0_22, %tmp0_21 : tensor<1x32x!tt.ptr<i32>>, tensor<1x32xi64> loc(#loc121)
|
| 55 |
+
%tmp0_24 = tt.broadcast %xmask_7 : tensor<1x1xi1> -> tensor<1x32xi1> loc(#loc122)
|
| 56 |
+
%tmp0_25 = arith.andi %r0_mask_16, %tmp0_24 : tensor<1x32xi1> loc(#loc122)
|
| 57 |
+
%tmp0_26 = arith.constant 0.000000e+00 : f32 loc(#loc123)
|
| 58 |
+
%tmp0_27 = arith.constant dense<0.000000e+00> : tensor<1x32xf32> loc(#loc123)
|
| 59 |
+
%tmp0_28 = arith.fptosi %tmp0_27 : tensor<1x32xf32> to tensor<1x32xi32> loc(#loc123)
|
| 60 |
+
%tmp0_29 = tt.load %tmp0_23, %tmp0_25, %tmp0_28 evictionPolicy = evict_first : tensor<1x32x!tt.ptr<i32>> loc(#loc123)
|
| 61 |
+
%tmp1 = arith.extsi %tmp0_29 : tensor<1x32xi32> to tensor<1x32xi64> loc(#loc124)
|
| 62 |
+
%tmp4 = arith.addi %_tmp3_14, %tmp1 : tensor<1x32xi64> loc(#loc125)
|
| 63 |
+
%_tmp3_30 = tt.broadcast %xmask_7 : tensor<1x1xi1> -> tensor<1x32xi1> loc(#loc126)
|
| 64 |
+
%_tmp3_31 = arith.andi %r0_mask_16, %_tmp3_30 : tensor<1x32xi1> loc(#loc126)
|
| 65 |
+
%_tmp3_32 = arith.select %_tmp3_31, %tmp4, %_tmp3_14 : tensor<1x32xi1>, tensor<1x32xi64> loc(#loc127)
|
| 66 |
+
scf.yield %_tmp3_32 : tensor<1x32xi64> loc(#loc23)
|
| 67 |
+
} loc(#loc116)
|
| 68 |
+
%tmp3 = tt.call @"triton.language.standard.sum__i64S1_32S__(1,)cconstexpr_1__(2,)cconstexpr_False__(3,)cNone"(%_tmp3_10) : (tensor<1x32xi64>) -> tensor<1xi64> loc(#loc128)
|
| 69 |
+
%tmp3_11 = tt.expand_dims %tmp3 {axis = 1 : i32} : tensor<1xi64> -> tensor<1x1xi64> loc(#loc129)
|
| 70 |
+
%tmp5 = arith.trunci %tmp3_11 : tensor<1x1xi64> to tensor<1x1xi32> loc(#loc130)
|
| 71 |
+
%4 = tt.splat %out_ptr1 : !tt.ptr<i32> -> tensor<1x1x!tt.ptr<i32>> loc(#loc27)
|
| 72 |
+
%5 = tt.addptr %4, %xindex_6 : tensor<1x1x!tt.ptr<i32>>, tensor<1x1xi32> loc(#loc27)
|
| 73 |
+
tt.store %5, %tmp5, %xmask_7 : tensor<1x1x!tt.ptr<i32>> loc(#loc28)
|
| 74 |
+
%c0_i32_12 = arith.constant 0 : i32 loc(#loc29)
|
| 75 |
+
%c32_i32_13 = arith.constant 32 : i32 loc(#loc29)
|
| 76 |
+
%6 = arith.bitcast %c0_i32_12 : i32 to i32 loc(#loc29)
|
| 77 |
+
%7 = arith.bitcast %r0_numel : i32 to i32 loc(#loc29)
|
| 78 |
+
%8 = arith.bitcast %c32_i32_13 : i32 to i32 loc(#loc29)
|
| 79 |
+
%9 = ub.poison : i32 loc(#loc29)
|
| 80 |
+
scf.for %r0_offset = %6 to %7 step %8 : i32 {
|
| 81 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x32xi32> loc(#loc131)
|
| 82 |
+
%r0_index_14 = arith.addi %r0_index, %r0_base_8 : tensor<1x32xi32> loc(#loc131)
|
| 83 |
+
%r0_mask = tt.splat %r0_numel : i32 -> tensor<1x32xi32> loc(#loc132)
|
| 84 |
+
%r0_mask_15 = arith.cmpi slt, %r0_index_14, %r0_mask : tensor<1x32xi32> loc(#loc132)
|
| 85 |
+
%tmp6 = arith.constant 1 : i32 loc(#loc133)
|
| 86 |
+
%tmp6_16 = arith.extsi %tmp6 : i32 to i64 loc(#loc133)
|
| 87 |
+
%tmp6_17 = arith.cmpi sge, %tmp6_16, %ks0 : i64 loc(#loc133)
|
| 88 |
+
%tmp6_18 = arith.constant 1 : i32 loc(#loc134)
|
| 89 |
+
%tmp6_19 = arith.constant 1 : i32 loc(#loc134)
|
| 90 |
+
%tmp6_20 = arith.extui %tmp6_17 : i1 to i32 loc(#loc134)
|
| 91 |
+
%tmp6_21 = arith.muli %tmp6_19, %tmp6_20 : i32 loc(#loc134)
|
| 92 |
+
%tmp6_22 = arith.constant 1 : i32 loc(#loc135)
|
| 93 |
+
%tmp6_23 = arith.extsi %tmp6_22 : i32 to i64 loc(#loc135)
|
| 94 |
+
%tmp6_24 = arith.cmpi sgt, %ks0, %tmp6_23 : i64 loc(#loc135)
|
| 95 |
+
%tmp6_25 = arith.extui %tmp6_24 : i1 to i64 loc(#loc136)
|
| 96 |
+
%tmp6_26 = arith.muli %ks0, %tmp6_25 : i64 loc(#loc136)
|
| 97 |
+
%tmp6_27 = arith.extsi %tmp6_21 : i32 to i64 loc(#loc137)
|
| 98 |
+
%tmp6_28 = arith.addi %tmp6_27, %tmp6_26 : i64 loc(#loc137)
|
| 99 |
+
%tmp6_29 = arith.extsi %xindex_6 : tensor<1x1xi32> to tensor<1x1xi64> loc(#loc138)
|
| 100 |
+
%tmp6_30 = tt.splat %tmp6_28 : i64 -> tensor<1x1xi64> loc(#loc138)
|
| 101 |
+
%tmp6_31 = arith.muli %tmp6_29, %tmp6_30 : tensor<1x1xi64> loc(#loc138)
|
| 102 |
+
%tmp6_32 = arith.extsi %r0_index_14 : tensor<1x32xi32> to tensor<1x32xi64> loc(#loc139)
|
| 103 |
+
%tmp6_33 = tt.broadcast %tmp6_31 : tensor<1x1xi64> -> tensor<1x32xi64> loc(#loc139)
|
| 104 |
+
%tmp6_34 = arith.addi %tmp6_32, %tmp6_33 : tensor<1x32xi64> loc(#loc139)
|
| 105 |
+
%tmp6_35 = tt.splat %in_ptr1 : !tt.ptr<i64> -> tensor<1x32x!tt.ptr<i64>> loc(#loc140)
|
| 106 |
+
%tmp6_36 = tt.addptr %tmp6_35, %tmp6_34 : tensor<1x32x!tt.ptr<i64>>, tensor<1x32xi64> loc(#loc140)
|
| 107 |
+
%tmp6_37 = tt.broadcast %xmask_7 : tensor<1x1xi1> -> tensor<1x32xi1> loc(#loc141)
|
| 108 |
+
%tmp6_38 = arith.andi %r0_mask_15, %tmp6_37 : tensor<1x32xi1> loc(#loc141)
|
| 109 |
+
%tmp6_39 = arith.constant 0.000000e+00 : f32 loc(#loc142)
|
| 110 |
+
%tmp6_40 = arith.constant dense<0.000000e+00> : tensor<1x32xf32> loc(#loc142)
|
| 111 |
+
%tmp6_41 = arith.fptosi %tmp6_40 : tensor<1x32xf32> to tensor<1x32xi64> loc(#loc142)
|
| 112 |
+
%tmp6_42 = tt.load %tmp6_36, %tmp6_38, %tmp6_41 evictionPolicy = evict_first : tensor<1x32x!tt.ptr<i64>> loc(#loc142)
|
| 113 |
+
%tmp7 = arith.trunci %tmp6_42 : tensor<1x32xi64> to tensor<1x32xi32> loc(#loc143)
|
| 114 |
+
%tmp9 = tt.broadcast %tmp5 : tensor<1x1xi32> -> tensor<1x32xi32> loc(#loc144)
|
| 115 |
+
%tmp9_43 = arith.cmpi slt, %r0_index_14, %tmp9 : tensor<1x32xi32> loc(#loc144)
|
| 116 |
+
%tmp11 = arith.extsi %tmp7 : tensor<1x32xi32> to tensor<1x32xi64> loc(#loc145)
|
| 117 |
+
%tmp11_44 = tt.splat %ks0 : i64 -> tensor<1x32xi64> loc(#loc145)
|
| 118 |
+
%tmp11_45 = arith.select %tmp9_43, %tmp11, %tmp11_44 : tensor<1x32xi1>, tensor<1x32xi64> loc(#loc145)
|
| 119 |
+
%tmp12 = arith.constant 1 : i32 loc(#loc146)
|
| 120 |
+
%tmp12_46 = arith.constant 1 : i64 loc(#loc146)
|
| 121 |
+
%tmp12_47 = arith.addi %tmp12_46, %ks0 : i64 loc(#loc146)
|
| 122 |
+
%tmp13 = tt.splat %tmp12_47 : i64 -> tensor<1x32xi64> loc(#loc147)
|
| 123 |
+
%tmp13_48 = arith.addi %tmp11_45, %tmp13 : tensor<1x32xi64> loc(#loc147)
|
| 124 |
+
%tmp14 = arith.constant 0 : i32 loc(#loc148)
|
| 125 |
+
%tmp14_49 = arith.extsi %tmp14 : i32 to i64 loc(#loc148)
|
| 126 |
+
%tmp14_50 = tt.splat %tmp14_49 : i64 -> tensor<1x32xi64> loc(#loc148)
|
| 127 |
+
%tmp14_51 = arith.cmpi slt, %tmp11_45, %tmp14_50 : tensor<1x32xi64> loc(#loc148)
|
| 128 |
+
%tmp15 = arith.select %tmp14_51, %tmp13_48, %tmp11_45 : tensor<1x32xi1>, tensor<1x32xi64> loc(#loc149)
|
| 129 |
+
%c0_i32_52 = arith.constant 0 : i32 loc(#loc49)
|
| 130 |
+
%10 = arith.extsi %c0_i32_52 : i32 to i64 loc(#loc49)
|
| 131 |
+
%11 = tt.splat %10 : i64 -> tensor<1x32xi64> loc(#loc49)
|
| 132 |
+
%12 = arith.cmpi sle, %11, %tmp15 : tensor<1x32xi64> loc(#loc49)
|
| 133 |
+
%c127_i32 = arith.constant 127 : i32 loc(#loc50)
|
| 134 |
+
%c127_i64 = arith.constant 127 : i64 loc(#loc50)
|
| 135 |
+
%13 = arith.addi %c127_i64, %ks1 : i64 loc(#loc50)
|
| 136 |
+
%14 = tt.call @"torch._inductor.runtime.triton_helpers.div_floor_integer__i64__(1,)cconstexpr_128_"(%13) : (i64) -> i64 loc(#loc51)
|
| 137 |
+
%c1_i32 = arith.constant 1 : i32 loc(#loc52)
|
| 138 |
+
%c1_i64 = arith.constant 1 : i64 loc(#loc52)
|
| 139 |
+
%15 = arith.addi %c1_i64, %14 : i64 loc(#loc52)
|
| 140 |
+
%16 = tt.splat %15 : i64 -> tensor<1x32xi64> loc(#loc53)
|
| 141 |
+
%17 = arith.cmpi slt, %tmp15, %16 : tensor<1x32xi64> loc(#loc53)
|
| 142 |
+
%18 = arith.andi %12, %17 : tensor<1x32xi1> loc(#loc54)
|
| 143 |
+
%19 = tt.broadcast %xmask_7 : tensor<1x1xi1> -> tensor<1x32xi1> loc(#loc55)
|
| 144 |
+
%20 = arith.andi %r0_mask_15, %19 : tensor<1x32xi1> loc(#loc55)
|
| 145 |
+
%true = arith.constant true loc(#loc56)
|
| 146 |
+
%cst = arith.constant dense<true> : tensor<1x32xi1> loc(#loc56)
|
| 147 |
+
%21 = arith.xori %20, %cst : tensor<1x32xi1> loc(#loc56)
|
| 148 |
+
%22 = arith.ori %18, %21 : tensor<1x32xi1> loc(#loc57)
|
| 149 |
+
tt.assert %22, "index out of bounds: 0 <= tmp15 < 1 + (triton_helpers.div_floor_integer(127 + ks1, 128))" : tensor<1x32xi1> loc(#loc58)
|
| 150 |
+
%tmp17 = arith.constant 1 : i32 loc(#loc150)
|
| 151 |
+
%tmp17_53 = arith.constant dense<1> : tensor<1x1xi32> loc(#loc150)
|
| 152 |
+
%c1_i32_54 = arith.constant 1 : i32 loc(#loc60)
|
| 153 |
+
%23 = arith.extsi %c1_i32_54 : i32 to i64 loc(#loc60)
|
| 154 |
+
%24 = arith.cmpi sge, %23, %ks0 : i64 loc(#loc60)
|
| 155 |
+
%c1_i32_55 = arith.constant 1 : i32 loc(#loc61)
|
| 156 |
+
%c1_i32_56 = arith.constant 1 : i32 loc(#loc61)
|
| 157 |
+
%25 = arith.extui %24 : i1 to i32 loc(#loc61)
|
| 158 |
+
%26 = arith.muli %c1_i32_56, %25 : i32 loc(#loc61)
|
| 159 |
+
%c1_i32_57 = arith.constant 1 : i32 loc(#loc62)
|
| 160 |
+
%27 = arith.extsi %c1_i32_57 : i32 to i64 loc(#loc62)
|
| 161 |
+
%28 = arith.cmpi sgt, %ks0, %27 : i64 loc(#loc62)
|
| 162 |
+
%29 = arith.extui %28 : i1 to i64 loc(#loc63)
|
| 163 |
+
%30 = arith.muli %ks0, %29 : i64 loc(#loc63)
|
| 164 |
+
%31 = arith.extsi %26 : i32 to i64 loc(#loc64)
|
| 165 |
+
%32 = arith.addi %31, %30 : i64 loc(#loc64)
|
| 166 |
+
%33 = arith.extsi %xindex_6 : tensor<1x1xi32> to tensor<1x1xi64> loc(#loc65)
|
| 167 |
+
%34 = tt.splat %32 : i64 -> tensor<1x1xi64> loc(#loc65)
|
| 168 |
+
%35 = arith.muli %33, %34 : tensor<1x1xi64> loc(#loc65)
|
| 169 |
+
%36 = arith.extsi %r0_index_14 : tensor<1x32xi32> to tensor<1x32xi64> loc(#loc66)
|
| 170 |
+
%37 = tt.broadcast %35 : tensor<1x1xi64> -> tensor<1x32xi64> loc(#loc66)
|
| 171 |
+
%38 = arith.addi %36, %37 : tensor<1x32xi64> loc(#loc66)
|
| 172 |
+
%39 = tt.splat %out_ptr2 : !tt.ptr<i32> -> tensor<1x32x!tt.ptr<i32>> loc(#loc67)
|
| 173 |
+
%40 = tt.addptr %39, %38 : tensor<1x32x!tt.ptr<i32>>, tensor<1x32xi64> loc(#loc67)
|
| 174 |
+
%41 = tt.broadcast %xmask_7 : tensor<1x1xi1> -> tensor<1x32xi1> loc(#loc68)
|
| 175 |
+
%42 = arith.andi %r0_mask_15, %41 : tensor<1x32xi1> loc(#loc68)
|
| 176 |
+
tt.store %40, %tmp7, %42 : tensor<1x32x!tt.ptr<i32>> loc(#loc69)
|
| 177 |
+
%43 = arith.extsi %xindex_6 : tensor<1x1xi32> to tensor<1x1xi64> loc(#loc70)
|
| 178 |
+
%44 = tt.broadcast %43 : tensor<1x1xi64> -> tensor<1x32xi64> loc(#loc70)
|
| 179 |
+
%45 = arith.addi %tmp15, %44 : tensor<1x32xi64> loc(#loc70)
|
| 180 |
+
%46 = arith.extsi %xindex_6 : tensor<1x1xi32> to tensor<1x1xi64> loc(#loc71)
|
| 181 |
+
%47 = tt.splat %ks0 : i64 -> tensor<1x1xi64> loc(#loc71)
|
| 182 |
+
%48 = arith.muli %47, %46 : tensor<1x1xi64> loc(#loc71)
|
| 183 |
+
%49 = tt.broadcast %48 : tensor<1x1xi64> -> tensor<1x32xi64> loc(#loc72)
|
| 184 |
+
%50 = arith.addi %45, %49 : tensor<1x32xi64> loc(#loc72)
|
| 185 |
+
%51 = tt.splat %out_ptr3 : !tt.ptr<i32> -> tensor<1x32x!tt.ptr<i32>> loc(#loc73)
|
| 186 |
+
%52 = tt.addptr %51, %50 : tensor<1x32x!tt.ptr<i32>>, tensor<1x32xi64> loc(#loc73)
|
| 187 |
+
%53 = tt.broadcast %xmask_7 : tensor<1x1xi1> -> tensor<1x32xi1> loc(#loc74)
|
| 188 |
+
%54 = arith.andi %r0_mask_15, %53 : tensor<1x32xi1> loc(#loc74)
|
| 189 |
+
%cst_58 = arith.constant dense<1> : tensor<1x32xi32> loc(#loc75)
|
| 190 |
+
tt.store %52, %cst_58, %54 : tensor<1x32x!tt.ptr<i32>> loc(#loc75)
|
| 191 |
+
} loc(#loc29)
|
| 192 |
+
tt.return loc(#loc76)
|
| 193 |
+
} loc(#loc)
|
| 194 |
+
tt.func private @"triton.language.standard.sum__i64S1_32S__(1,)cconstexpr_1__(2,)cconstexpr_False__(3,)cNone"(%input: tensor<1x32xi64> loc("input"(#loc77))) -> tensor<1xi64> attributes {noinline = false} {
|
| 195 |
+
%0 = "tt.reduce"(%input) <{axis = 1 : i32}> ({
|
| 196 |
+
^bb0(%arg1: i64 loc(unknown), %arg2: i64 loc(unknown)):
|
| 197 |
+
%2 = tt.call @triton.language.standard._sum_combine__i64_i64__(%arg1, %arg2) : (i64, i64) -> i64 loc(#loc78)
|
| 198 |
+
tt.reduce.return %2 : i64 loc(#loc78)
|
| 199 |
+
}) : (tensor<1x32xi64>) -> tensor<1xi64> loc(#loc78)
|
| 200 |
+
tt.return %0 : tensor<1xi64> loc(#loc80)
|
| 201 |
+
^bb1: // no predecessors
|
| 202 |
+
%1 = ub.poison : tensor<1xi64> loc(#loc81)
|
| 203 |
+
tt.return %1 : tensor<1xi64> loc(#loc81)
|
| 204 |
+
} loc(#loc77)
|
| 205 |
+
tt.func private @triton.language.standard._sum_combine__i64_i64__(%a: i64 loc("a"(#loc82)), %b: i64 loc("b"(#loc82))) -> i64 attributes {noinline = false} {
|
| 206 |
+
%0 = arith.addi %a, %b : i64 loc(#loc83)
|
| 207 |
+
tt.return %0 : i64 loc(#loc84)
|
| 208 |
+
^bb1: // no predecessors
|
| 209 |
+
%1 = ub.poison : i64 loc(#loc85)
|
| 210 |
+
tt.return %1 : i64 loc(#loc85)
|
| 211 |
+
} loc(#loc82)
|
| 212 |
+
tt.func private @"torch._inductor.runtime.triton_helpers.div_floor_integer__i64__(1,)cconstexpr_128_"(%a: i64 loc("a"(#loc86))) -> i64 attributes {noinline = false} {
|
| 213 |
+
%quot = arith.constant 128 : i32 loc(#loc155)
|
| 214 |
+
%quot_0 = arith.constant 128 : i64 loc(#loc155)
|
| 215 |
+
%quot_1 = arith.divsi %a, %quot_0 : i64 loc(#loc155)
|
| 216 |
+
%remainder = arith.constant 128 : i32 loc(#loc156)
|
| 217 |
+
%remainder_2 = arith.constant 128 : i64 loc(#loc156)
|
| 218 |
+
%remainder_3 = arith.remsi %a, %remainder_2 : i64 loc(#loc156)
|
| 219 |
+
%fixed = arith.constant 0 : i32 loc(#loc157)
|
| 220 |
+
%fixed_4 = arith.extsi %fixed : i32 to i64 loc(#loc157)
|
| 221 |
+
%fixed_5 = arith.cmpi ne, %remainder_3, %fixed_4 : i64 loc(#loc157)
|
| 222 |
+
%fixed_6 = arith.constant 1 : i32 loc(#loc158)
|
| 223 |
+
%fixed_7 = arith.constant 1 : i64 loc(#loc158)
|
| 224 |
+
%fixed_8 = arith.subi %quot_1, %fixed_7 : i64 loc(#loc158)
|
| 225 |
+
%fixed_9 = arith.select %fixed_5, %fixed_8, %quot_1 : i64 loc(#loc159)
|
| 226 |
+
%c0_i32 = arith.constant 0 : i32 loc(#loc92)
|
| 227 |
+
%0 = arith.extsi %c0_i32 : i32 to i64 loc(#loc92)
|
| 228 |
+
%1 = arith.cmpi slt, %a, %0 : i64 loc(#loc92)
|
| 229 |
+
%false = arith.constant false loc(#loc93)
|
| 230 |
+
%2 = arith.cmpi ne, %1, %false : i1 loc(#loc93)
|
| 231 |
+
%3 = arith.select %2, %fixed_9, %quot_1 : i64 loc(#loc94)
|
| 232 |
+
tt.return %3 : i64 loc(#loc95)
|
| 233 |
+
^bb1: // no predecessors
|
| 234 |
+
%4 = ub.poison : i64 loc(#loc96)
|
| 235 |
+
tt.return %4 : i64 loc(#loc96)
|
| 236 |
+
} loc(#loc86)
|
| 237 |
+
} loc(#loc)
|
| 238 |
+
#loc1 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":19:13)
|
| 239 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":22:28)
|
| 240 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":22:33)
|
| 241 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":23:36)
|
| 242 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":23:44)
|
| 243 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":23:23)
|
| 244 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":24:21)
|
| 245 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":25:27)
|
| 246 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":25:37)
|
| 247 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":28:43)
|
| 248 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":29:40)
|
| 249 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":30:31)
|
| 250 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":31:29)
|
| 251 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:45)
|
| 252 |
+
#loc15 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:41)
|
| 253 |
+
#loc16 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:34)
|
| 254 |
+
#loc17 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:60)
|
| 255 |
+
#loc18 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:50)
|
| 256 |
+
#loc19 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":36:23)
|
| 257 |
+
#loc20 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":38:23)
|
| 258 |
+
#loc21 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":39:35)
|
| 259 |
+
#loc22 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":39:48)
|
| 260 |
+
#loc23 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":39:8)
|
| 261 |
+
#loc24 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":40:25)
|
| 262 |
+
#loc25 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":40:28)
|
| 263 |
+
#loc26 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":41:19)
|
| 264 |
+
#loc27 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":42:25)
|
| 265 |
+
#loc28 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":42:36)
|
| 266 |
+
#loc29 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":43:40)
|
| 267 |
+
#loc30 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":44:31)
|
| 268 |
+
#loc31 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":45:29)
|
| 269 |
+
#loc32 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:60)
|
| 270 |
+
#loc33 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:52)
|
| 271 |
+
#loc34 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:86)
|
| 272 |
+
#loc35 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:77)
|
| 273 |
+
#loc36 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:68)
|
| 274 |
+
#loc37 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:45)
|
| 275 |
+
#loc38 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:41)
|
| 276 |
+
#loc39 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:34)
|
| 277 |
+
#loc40 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:103)
|
| 278 |
+
#loc41 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:93)
|
| 279 |
+
#loc42 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":50:23)
|
| 280 |
+
#loc43 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":52:22)
|
| 281 |
+
#loc44 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":54:37)
|
| 282 |
+
#loc45 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":55:20)
|
| 283 |
+
#loc46 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":56:24)
|
| 284 |
+
#loc47 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":57:24)
|
| 285 |
+
#loc48 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":58:39)
|
| 286 |
+
#loc49 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:32)
|
| 287 |
+
#loc50 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:94)
|
| 288 |
+
#loc51 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:100)
|
| 289 |
+
#loc52 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:55)
|
| 290 |
+
#loc53 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:50)
|
| 291 |
+
#loc54 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:42)
|
| 292 |
+
#loc55 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:122)
|
| 293 |
+
#loc56 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:112)
|
| 294 |
+
#loc57 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:110)
|
| 295 |
+
#loc58 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:130)
|
| 296 |
+
#loc59 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":60:35)
|
| 297 |
+
#loc60 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:55)
|
| 298 |
+
#loc61 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:47)
|
| 299 |
+
#loc62 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:81)
|
| 300 |
+
#loc63 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:72)
|
| 301 |
+
#loc64 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:63)
|
| 302 |
+
#loc65 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:40)
|
| 303 |
+
#loc66 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:36)
|
| 304 |
+
#loc67 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:29)
|
| 305 |
+
#loc68 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:104)
|
| 306 |
+
#loc69 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:94)
|
| 307 |
+
#loc70 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:53)
|
| 308 |
+
#loc71 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:62)
|
| 309 |
+
#loc72 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:58)
|
| 310 |
+
#loc73 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:29)
|
| 311 |
+
#loc74 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:105)
|
| 312 |
+
#loc75 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:95)
|
| 313 |
+
#loc76 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":43:4)
|
| 314 |
+
#loc78 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:36)
|
| 315 |
+
#loc80 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:11)
|
| 316 |
+
#loc81 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:4)
|
| 317 |
+
#loc83 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:15)
|
| 318 |
+
#loc84 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:11)
|
| 319 |
+
#loc85 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:4)
|
| 320 |
+
#loc87 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":72:16)
|
| 321 |
+
#loc88 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":73:20)
|
| 322 |
+
#loc89 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":74:34)
|
| 323 |
+
#loc90 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":74:44)
|
| 324 |
+
#loc91 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":74:47)
|
| 325 |
+
#loc92 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":75:25)
|
| 326 |
+
#loc93 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":75:32)
|
| 327 |
+
#loc94 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":75:47)
|
| 328 |
+
#loc95 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":75:11)
|
| 329 |
+
#loc96 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":75:4)
|
| 330 |
+
#loc106 = loc("xnumel"(#loc1))
|
| 331 |
+
#loc107 = loc("xoffset"(#loc2))
|
| 332 |
+
#loc108 = loc("xoffset"(#loc3))
|
| 333 |
+
#loc109 = loc("xindex"(#loc4))
|
| 334 |
+
#loc110 = loc("xindex"(#loc5))
|
| 335 |
+
#loc111 = loc("xindex"(#loc6))
|
| 336 |
+
#loc112 = loc("xmask"(#loc7))
|
| 337 |
+
#loc113 = loc("r0_base"(#loc8))
|
| 338 |
+
#loc114 = loc("r0_base"(#loc9))
|
| 339 |
+
#loc115 = loc("_tmp3"(#loc10))
|
| 340 |
+
#loc116 = loc("_tmp3"(#loc11))
|
| 341 |
+
#loc117 = loc("r0_index"(#loc12))
|
| 342 |
+
#loc118 = loc("r0_mask"(#loc13))
|
| 343 |
+
#loc119 = loc("tmp0"(#loc14))
|
| 344 |
+
#loc120 = loc("tmp0"(#loc15))
|
| 345 |
+
#loc121 = loc("tmp0"(#loc16))
|
| 346 |
+
#loc122 = loc("tmp0"(#loc17))
|
| 347 |
+
#loc123 = loc("tmp0"(#loc18))
|
| 348 |
+
#loc124 = loc("tmp1"(#loc19))
|
| 349 |
+
#loc125 = loc("tmp4"(#loc20))
|
| 350 |
+
#loc126 = loc("_tmp3"(#loc21))
|
| 351 |
+
#loc127 = loc("_tmp3"(#loc22))
|
| 352 |
+
#loc128 = loc("tmp3"(#loc24))
|
| 353 |
+
#loc129 = loc("tmp3"(#loc25))
|
| 354 |
+
#loc130 = loc("tmp5"(#loc26))
|
| 355 |
+
#loc131 = loc("r0_index"(#loc30))
|
| 356 |
+
#loc132 = loc("r0_mask"(#loc31))
|
| 357 |
+
#loc133 = loc("tmp6"(#loc32))
|
| 358 |
+
#loc134 = loc("tmp6"(#loc33))
|
| 359 |
+
#loc135 = loc("tmp6"(#loc34))
|
| 360 |
+
#loc136 = loc("tmp6"(#loc35))
|
| 361 |
+
#loc137 = loc("tmp6"(#loc36))
|
| 362 |
+
#loc138 = loc("tmp6"(#loc37))
|
| 363 |
+
#loc139 = loc("tmp6"(#loc38))
|
| 364 |
+
#loc140 = loc("tmp6"(#loc39))
|
| 365 |
+
#loc141 = loc("tmp6"(#loc40))
|
| 366 |
+
#loc142 = loc("tmp6"(#loc41))
|
| 367 |
+
#loc143 = loc("tmp7"(#loc42))
|
| 368 |
+
#loc144 = loc("tmp9"(#loc43))
|
| 369 |
+
#loc145 = loc("tmp11"(#loc44))
|
| 370 |
+
#loc146 = loc("tmp12"(#loc45))
|
| 371 |
+
#loc147 = loc("tmp13"(#loc46))
|
| 372 |
+
#loc148 = loc("tmp14"(#loc47))
|
| 373 |
+
#loc149 = loc("tmp15"(#loc48))
|
| 374 |
+
#loc150 = loc("tmp17"(#loc59))
|
| 375 |
+
#loc155 = loc("quot"(#loc87))
|
| 376 |
+
#loc156 = loc("remainder"(#loc88))
|
| 377 |
+
#loc157 = loc("fixed"(#loc89))
|
| 378 |
+
#loc158 = loc("fixed"(#loc90))
|
| 379 |
+
#loc159 = loc("fixed"(#loc91))
|
SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.ttgir
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#blocked = #ttg.blocked<{sizePerThread = [1, 1], threadsPerWarp = [1, 32], warpsPerCTA = [1, 2], order = [0, 1]}>
|
| 2 |
+
#blocked1 = #ttg.blocked<{sizePerThread = [1, 1], threadsPerWarp = [1, 32], warpsPerCTA = [2, 1], order = [1, 0]}>
|
| 3 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":18:0)
|
| 4 |
+
#loc1 = loc(unknown)
|
| 5 |
+
#loc18 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":40:25)
|
| 6 |
+
#loc68 = loc("in_ptr0"(#loc))
|
| 7 |
+
#loc69 = loc("in_ptr1"(#loc))
|
| 8 |
+
#loc70 = loc("out_ptr1"(#loc))
|
| 9 |
+
#loc71 = loc("out_ptr2"(#loc))
|
| 10 |
+
#loc72 = loc("out_ptr3"(#loc))
|
| 11 |
+
#loc73 = loc("ks0"(#loc))
|
| 12 |
+
#loc74 = loc("ks1"(#loc))
|
| 13 |
+
#loc75 = loc("xnumel"(#loc))
|
| 14 |
+
#loc76 = loc("r0_numel"(#loc))
|
| 15 |
+
#loc91 = loc("tmp3"(#loc18))
|
| 16 |
+
#loc124 = loc(callsite(#loc1 at #loc91))
|
| 17 |
+
module attributes {"ttg.num-ctas" = 1 : i32, "ttg.num-warps" = 2 : i32, ttg.target = "cuda:90", "ttg.threads-per-warp" = 32 : i32} {
|
| 18 |
+
tt.func public @triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2(%in_ptr0: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %in_ptr1: !tt.ptr<i64> {tt.divisibility = 16 : i32} loc("in_ptr1"(#loc)), %out_ptr1: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr1"(#loc)), %out_ptr2: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr2"(#loc)), %out_ptr3: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr3"(#loc)), %ks0: i64 loc("ks0"(#loc)), %ks1: i64 loc("ks1"(#loc)), %xnumel: i32 {tt.divisibility = 16 : i32} loc("xnumel"(#loc)), %r0_numel: i32 loc("r0_numel"(#loc))) attributes {noinline = false} {
|
| 19 |
+
%cst = arith.constant dense<0> : tensor<1x32xi64, #blocked> loc(#loc1)
|
| 20 |
+
%cst_0 = arith.constant dense<0> : tensor<1x32xi64, #blocked1> loc(#loc1)
|
| 21 |
+
%c1_i64 = arith.constant 1 : i64 loc(#loc1)
|
| 22 |
+
%c127_i64 = arith.constant 127 : i64 loc(#loc1)
|
| 23 |
+
%cst_1 = arith.constant dense<true> : tensor<1x32xi1, #blocked1> loc(#loc1)
|
| 24 |
+
%c0_i32 = arith.constant 0 : i32 loc(#loc1)
|
| 25 |
+
%c32_i32 = arith.constant 32 : i32 loc(#loc1)
|
| 26 |
+
%cst_2 = arith.constant dense<0> : tensor<1x32xi32, #blocked1> loc(#loc1)
|
| 27 |
+
%c0_i64 = arith.constant 0 : i64 loc(#loc1)
|
| 28 |
+
%c128_i64 = arith.constant 128 : i64 loc(#loc1)
|
| 29 |
+
%cst_3 = arith.constant dense<1> : tensor<1x32xi32, #blocked> loc(#loc1)
|
| 30 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc77)
|
| 31 |
+
%xmask = arith.cmpi slt, %xoffset, %c32_i32 : i32 loc(#loc78)
|
| 32 |
+
%r0_base = tt.make_range {end = 32 : i32, start = 0 : i32} : tensor<32xi32, #ttg.slice<{dim = 0, parent = #blocked}>> loc(#loc79)
|
| 33 |
+
%r0_base_4 = tt.make_range {end = 32 : i32, start = 0 : i32} : tensor<32xi32, #ttg.slice<{dim = 0, parent = #blocked1}>> loc(#loc79)
|
| 34 |
+
%r0_base_5 = tt.expand_dims %r0_base {axis = 0 : i32} : tensor<32xi32, #ttg.slice<{dim = 0, parent = #blocked}>> -> tensor<1x32xi32, #blocked> loc(#loc79)
|
| 35 |
+
%r0_base_6 = tt.expand_dims %r0_base_4 {axis = 0 : i32} : tensor<32xi32, #ttg.slice<{dim = 0, parent = #blocked1}>> -> tensor<1x32xi32, #blocked1> loc(#loc79)
|
| 36 |
+
%r0_mask = tt.splat %r0_numel : i32 -> tensor<1x32xi32, #blocked1> loc(#loc80)
|
| 37 |
+
%tmp0 = arith.extsi %xoffset : i32 to i64 loc(#loc81)
|
| 38 |
+
%tmp0_7 = arith.muli %ks0, %tmp0 : i64 loc(#loc81)
|
| 39 |
+
%tmp0_8 = tt.splat %tmp0_7 : i64 -> tensor<1x32xi64, #blocked1> loc(#loc121)
|
| 40 |
+
%tmp0_9 = tt.splat %in_ptr0 : !tt.ptr<i32> -> tensor<1x32x!tt.ptr<i32>, #blocked1> loc(#loc83)
|
| 41 |
+
%tmp0_10 = tt.splat %xmask : i1 -> tensor<1x32xi1, #blocked1> loc(#loc122)
|
| 42 |
+
%_tmp3 = scf.for %r0_offset = %c0_i32 to %r0_numel step %c32_i32 iter_args(%_tmp3_31 = %cst_0) -> (tensor<1x32xi64, #blocked1>) : i32 {
|
| 43 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x32xi32, #blocked1> loc(#loc86)
|
| 44 |
+
%r0_index_32 = arith.addi %r0_index, %r0_base_6 : tensor<1x32xi32, #blocked1> loc(#loc86)
|
| 45 |
+
%r0_mask_33 = arith.cmpi slt, %r0_index_32, %r0_mask : tensor<1x32xi32, #blocked1> loc(#loc80)
|
| 46 |
+
%tmp0_34 = arith.extsi %r0_index_32 : tensor<1x32xi32, #blocked1> to tensor<1x32xi64, #blocked1> loc(#loc82)
|
| 47 |
+
%tmp0_35 = arith.addi %tmp0_34, %tmp0_8 : tensor<1x32xi64, #blocked1> loc(#loc82)
|
| 48 |
+
%tmp0_36 = tt.addptr %tmp0_9, %tmp0_35 : tensor<1x32x!tt.ptr<i32>, #blocked1>, tensor<1x32xi64, #blocked1> loc(#loc83)
|
| 49 |
+
%tmp0_37 = arith.andi %r0_mask_33, %tmp0_10 : tensor<1x32xi1, #blocked1> loc(#loc84)
|
| 50 |
+
%tmp0_38 = tt.load %tmp0_36, %tmp0_37, %cst_2 evictionPolicy = evict_first : tensor<1x32x!tt.ptr<i32>, #blocked1> loc(#loc87)
|
| 51 |
+
%tmp1 = arith.extsi %tmp0_38 : tensor<1x32xi32, #blocked1> to tensor<1x32xi64, #blocked1> loc(#loc88)
|
| 52 |
+
%tmp4 = arith.addi %_tmp3_31, %tmp1 : tensor<1x32xi64, #blocked1> loc(#loc89)
|
| 53 |
+
%_tmp3_39 = arith.select %tmp0_37, %tmp4, %_tmp3_31 : tensor<1x32xi1, #blocked1>, tensor<1x32xi64, #blocked1> loc(#loc90)
|
| 54 |
+
scf.yield %_tmp3_39 : tensor<1x32xi64, #blocked1> loc(#loc16)
|
| 55 |
+
} loc(#loc85)
|
| 56 |
+
%tmp3 = "tt.reduce"(%_tmp3) <{axis = 1 : i32}> ({
|
| 57 |
+
^bb0(%tmp3_31: i64 loc(callsite(#loc1 at #loc91)), %tmp3_32: i64 loc(callsite(#loc1 at #loc91))):
|
| 58 |
+
%tmp3_33 = arith.addi %tmp3_31, %tmp3_32 : i64 loc(#loc133)
|
| 59 |
+
tt.reduce.return %tmp3_33 : i64 loc(#loc123)
|
| 60 |
+
}) : (tensor<1x32xi64, #blocked1>) -> tensor<1xi64, #ttg.slice<{dim = 1, parent = #blocked1}>> loc(#loc123)
|
| 61 |
+
%0 = ttg.convert_layout %tmp3 : tensor<1xi64, #ttg.slice<{dim = 1, parent = #blocked1}>> -> tensor<1xi64, #ttg.slice<{dim = 1, parent = #blocked}>> loc(#loc20)
|
| 62 |
+
%tmp3_11 = tt.expand_dims %0 {axis = 1 : i32} : tensor<1xi64, #ttg.slice<{dim = 1, parent = #blocked}>> -> tensor<1x1xi64, #blocked> loc(#loc92)
|
| 63 |
+
%tmp3_12 = tt.expand_dims %tmp3 {axis = 1 : i32} : tensor<1xi64, #ttg.slice<{dim = 1, parent = #blocked1}>> -> tensor<1x1xi64, #blocked1> loc(#loc92)
|
| 64 |
+
%tmp5 = arith.trunci %tmp3_11 : tensor<1x1xi64, #blocked> to tensor<1x1xi32, #blocked> loc(#loc93)
|
| 65 |
+
%tmp5_13 = arith.trunci %tmp3_12 : tensor<1x1xi64, #blocked1> to tensor<1x1xi32, #blocked1> loc(#loc93)
|
| 66 |
+
%1 = tt.addptr %out_ptr1, %xoffset : !tt.ptr<i32>, i32 loc(#loc23)
|
| 67 |
+
%2 = tt.splat %1 : !tt.ptr<i32> -> tensor<1x1x!tt.ptr<i32>, #blocked> loc(#loc24)
|
| 68 |
+
%3 = tt.splat %xmask : i1 -> tensor<1x1xi1, #blocked> loc(#loc24)
|
| 69 |
+
tt.store %2, %tmp5, %3 : tensor<1x1x!tt.ptr<i32>, #blocked> loc(#loc24)
|
| 70 |
+
%r0_mask_14 = tt.splat %r0_numel : i32 -> tensor<1x32xi32, #blocked> loc(#loc94)
|
| 71 |
+
%tmp6 = arith.cmpi sle, %ks0, %c1_i64 : i64 loc(#loc95)
|
| 72 |
+
%tmp6_15 = arith.cmpi sgt, %ks0, %c1_i64 : i64 loc(#loc96)
|
| 73 |
+
%tmp6_16 = arith.extui %tmp6_15 : i1 to i64 loc(#loc97)
|
| 74 |
+
%tmp6_17 = arith.muli %ks0, %tmp6_16 : i64 loc(#loc97)
|
| 75 |
+
%tmp6_18 = arith.extui %tmp6 : i1 to i64 loc(#loc125)
|
| 76 |
+
%tmp6_19 = arith.addi %tmp6_18, %tmp6_17 : i64 loc(#loc98)
|
| 77 |
+
%tmp6_20 = arith.muli %tmp0, %tmp6_19 : i64 loc(#loc100)
|
| 78 |
+
%tmp6_21 = tt.splat %tmp6_20 : i64 -> tensor<1x32xi64, #blocked> loc(#loc126)
|
| 79 |
+
%tmp6_22 = tt.splat %tmp6_20 : i64 -> tensor<1x32xi64, #blocked1> loc(#loc126)
|
| 80 |
+
%tmp6_23 = tt.splat %in_ptr1 : !tt.ptr<i64> -> tensor<1x32x!tt.ptr<i64>, #blocked> loc(#loc102)
|
| 81 |
+
%tmp6_24 = tt.splat %in_ptr1 : !tt.ptr<i64> -> tensor<1x32x!tt.ptr<i64>, #blocked1> loc(#loc102)
|
| 82 |
+
%tmp6_25 = tt.splat %xmask : i1 -> tensor<1x32xi1, #blocked> loc(#loc127)
|
| 83 |
+
%tmp9 = tt.broadcast %tmp5 : tensor<1x1xi32, #blocked> -> tensor<1x32xi32, #blocked> loc(#loc104)
|
| 84 |
+
%tmp9_26 = tt.broadcast %tmp5_13 : tensor<1x1xi32, #blocked1> -> tensor<1x32xi32, #blocked1> loc(#loc104)
|
| 85 |
+
%tmp11 = tt.splat %ks0 : i64 -> tensor<1x32xi64, #blocked> loc(#loc105)
|
| 86 |
+
%tmp11_27 = tt.splat %ks0 : i64 -> tensor<1x32xi64, #blocked1> loc(#loc105)
|
| 87 |
+
%tmp12 = arith.addi %ks0, %c1_i64 : i64 loc(#loc106)
|
| 88 |
+
%tmp13 = tt.splat %tmp12 : i64 -> tensor<1x32xi64, #blocked> loc(#loc107)
|
| 89 |
+
%tmp13_28 = tt.splat %tmp12 : i64 -> tensor<1x32xi64, #blocked1> loc(#loc107)
|
| 90 |
+
%4 = arith.addi %ks1, %c127_i64 : i64 loc(#loc39)
|
| 91 |
+
%quot = arith.divsi %4, %c128_i64 : i64 loc(#loc128)
|
| 92 |
+
%remainder = arith.remsi %4, %c128_i64 : i64 loc(#loc129)
|
| 93 |
+
%fixed = arith.cmpi ne, %remainder, %c0_i64 : i64 loc(#loc130)
|
| 94 |
+
%fixed_29 = arith.subi %quot, %c1_i64 : i64 loc(#loc131)
|
| 95 |
+
%fixed_30 = arith.select %fixed, %fixed_29, %quot : i64 loc(#loc132)
|
| 96 |
+
%5 = arith.cmpi slt, %4, %c0_i64 : i64 loc(#loc113)
|
| 97 |
+
%6 = arith.select %5, %fixed_30, %quot : i64 loc(#loc114)
|
| 98 |
+
%7 = arith.addi %6, %c1_i64 : i64 loc(#loc48)
|
| 99 |
+
%8 = tt.splat %7 : i64 -> tensor<1x32xi64, #blocked1> loc(#loc49)
|
| 100 |
+
%9 = tt.splat %out_ptr2 : !tt.ptr<i32> -> tensor<1x32x!tt.ptr<i32>, #blocked1> loc(#loc50)
|
| 101 |
+
%10 = tt.splat %tmp0 : i64 -> tensor<1x32xi64, #blocked> loc(#loc51)
|
| 102 |
+
%11 = tt.splat %tmp0_7 : i64 -> tensor<1x32xi64, #blocked> loc(#loc115)
|
| 103 |
+
%12 = tt.splat %out_ptr3 : !tt.ptr<i32> -> tensor<1x32x!tt.ptr<i32>, #blocked> loc(#loc54)
|
| 104 |
+
scf.for %r0_offset = %c0_i32 to %r0_numel step %c32_i32 : i32 {
|
| 105 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x32xi32, #blocked> loc(#loc116)
|
| 106 |
+
%r0_index_31 = tt.splat %r0_offset : i32 -> tensor<1x32xi32, #blocked1> loc(#loc116)
|
| 107 |
+
%r0_index_32 = arith.addi %r0_index, %r0_base_5 : tensor<1x32xi32, #blocked> loc(#loc116)
|
| 108 |
+
%r0_index_33 = arith.addi %r0_index_31, %r0_base_6 : tensor<1x32xi32, #blocked1> loc(#loc116)
|
| 109 |
+
%r0_mask_34 = arith.cmpi slt, %r0_index_32, %r0_mask_14 : tensor<1x32xi32, #blocked> loc(#loc94)
|
| 110 |
+
%r0_mask_35 = arith.cmpi slt, %r0_index_33, %r0_mask : tensor<1x32xi32, #blocked1> loc(#loc94)
|
| 111 |
+
%tmp6_36 = arith.extsi %r0_index_32 : tensor<1x32xi32, #blocked> to tensor<1x32xi64, #blocked> loc(#loc101)
|
| 112 |
+
%tmp6_37 = arith.extsi %r0_index_33 : tensor<1x32xi32, #blocked1> to tensor<1x32xi64, #blocked1> loc(#loc101)
|
| 113 |
+
%tmp6_38 = arith.addi %tmp6_36, %tmp6_21 : tensor<1x32xi64, #blocked> loc(#loc101)
|
| 114 |
+
%tmp6_39 = arith.addi %tmp6_37, %tmp6_22 : tensor<1x32xi64, #blocked1> loc(#loc101)
|
| 115 |
+
%tmp6_40 = tt.addptr %tmp6_23, %tmp6_38 : tensor<1x32x!tt.ptr<i64>, #blocked>, tensor<1x32xi64, #blocked> loc(#loc102)
|
| 116 |
+
%tmp6_41 = tt.addptr %tmp6_24, %tmp6_39 : tensor<1x32x!tt.ptr<i64>, #blocked1>, tensor<1x32xi64, #blocked1> loc(#loc102)
|
| 117 |
+
%tmp6_42 = arith.andi %r0_mask_34, %tmp6_25 : tensor<1x32xi1, #blocked> loc(#loc103)
|
| 118 |
+
%tmp6_43 = arith.andi %r0_mask_35, %tmp0_10 : tensor<1x32xi1, #blocked1> loc(#loc103)
|
| 119 |
+
%tmp6_44 = tt.load %tmp6_40, %tmp6_42, %cst evictionPolicy = evict_first : tensor<1x32x!tt.ptr<i64>, #blocked> loc(#loc117)
|
| 120 |
+
%tmp6_45 = tt.load %tmp6_41, %tmp6_43, %cst_0 evictionPolicy = evict_first : tensor<1x32x!tt.ptr<i64>, #blocked1> loc(#loc117)
|
| 121 |
+
%tmp7 = arith.trunci %tmp6_44 : tensor<1x32xi64, #blocked> to tensor<1x32xi32, #blocked> loc(#loc118)
|
| 122 |
+
%tmp7_46 = arith.trunci %tmp6_45 : tensor<1x32xi64, #blocked1> to tensor<1x32xi32, #blocked1> loc(#loc118)
|
| 123 |
+
%tmp9_47 = arith.cmpi slt, %r0_index_32, %tmp9 : tensor<1x32xi32, #blocked> loc(#loc104)
|
| 124 |
+
%tmp9_48 = arith.cmpi slt, %r0_index_33, %tmp9_26 : tensor<1x32xi32, #blocked1> loc(#loc104)
|
| 125 |
+
%tmp11_49 = arith.extsi %tmp7 : tensor<1x32xi32, #blocked> to tensor<1x32xi64, #blocked> loc(#loc105)
|
| 126 |
+
%tmp11_50 = arith.extsi %tmp7_46 : tensor<1x32xi32, #blocked1> to tensor<1x32xi64, #blocked1> loc(#loc105)
|
| 127 |
+
%tmp11_51 = arith.select %tmp9_47, %tmp11_49, %tmp11 : tensor<1x32xi1, #blocked>, tensor<1x32xi64, #blocked> loc(#loc105)
|
| 128 |
+
%tmp11_52 = arith.select %tmp9_48, %tmp11_50, %tmp11_27 : tensor<1x32xi1, #blocked1>, tensor<1x32xi64, #blocked1> loc(#loc105)
|
| 129 |
+
%tmp13_53 = arith.addi %tmp11_51, %tmp13 : tensor<1x32xi64, #blocked> loc(#loc107)
|
| 130 |
+
%tmp13_54 = arith.addi %tmp11_52, %tmp13_28 : tensor<1x32xi64, #blocked1> loc(#loc107)
|
| 131 |
+
%tmp14 = arith.cmpi slt, %tmp11_51, %cst : tensor<1x32xi64, #blocked> loc(#loc119)
|
| 132 |
+
%tmp14_55 = arith.cmpi slt, %tmp11_52, %cst_0 : tensor<1x32xi64, #blocked1> loc(#loc119)
|
| 133 |
+
%tmp15 = arith.select %tmp14, %tmp13_53, %tmp11_51 : tensor<1x32xi1, #blocked>, tensor<1x32xi64, #blocked> loc(#loc120)
|
| 134 |
+
%tmp15_56 = arith.select %tmp14_55, %tmp13_54, %tmp11_52 : tensor<1x32xi1, #blocked1>, tensor<1x32xi64, #blocked1> loc(#loc120)
|
| 135 |
+
%13 = arith.cmpi sge, %tmp15_56, %cst_0 : tensor<1x32xi64, #blocked1> loc(#loc61)
|
| 136 |
+
%14 = arith.cmpi slt, %tmp15_56, %8 : tensor<1x32xi64, #blocked1> loc(#loc49)
|
| 137 |
+
%15 = arith.andi %13, %14 : tensor<1x32xi1, #blocked1> loc(#loc62)
|
| 138 |
+
%16 = arith.xori %tmp6_43, %cst_1 : tensor<1x32xi1, #blocked1> loc(#loc63)
|
| 139 |
+
%17 = arith.ori %15, %16 : tensor<1x32xi1, #blocked1> loc(#loc64)
|
| 140 |
+
tt.assert %17, "index out of bounds: 0 <= tmp15 < 1 + (triton_helpers.div_floor_integer(127 + ks1, 128))" : tensor<1x32xi1, #blocked1> loc(#loc65)
|
| 141 |
+
%18 = tt.addptr %9, %tmp6_39 : tensor<1x32x!tt.ptr<i32>, #blocked1>, tensor<1x32xi64, #blocked1> loc(#loc50)
|
| 142 |
+
tt.store %18, %tmp7_46, %tmp6_43 : tensor<1x32x!tt.ptr<i32>, #blocked1> loc(#loc66)
|
| 143 |
+
%19 = arith.addi %tmp15, %10 : tensor<1x32xi64, #blocked> loc(#loc51)
|
| 144 |
+
%20 = arith.addi %19, %11 : tensor<1x32xi64, #blocked> loc(#loc52)
|
| 145 |
+
%21 = tt.addptr %12, %20 : tensor<1x32x!tt.ptr<i32>, #blocked>, tensor<1x32xi64, #blocked> loc(#loc54)
|
| 146 |
+
tt.store %21, %cst_3, %tmp6_42 : tensor<1x32x!tt.ptr<i32>, #blocked> loc(#loc20)
|
| 147 |
+
} loc(#loc55)
|
| 148 |
+
tt.return loc(#loc67)
|
| 149 |
+
} loc(#loc)
|
| 150 |
+
} loc(#loc)
|
| 151 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":22:28)
|
| 152 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":24:21)
|
| 153 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":25:37)
|
| 154 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":31:29)
|
| 155 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:45)
|
| 156 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:41)
|
| 157 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:34)
|
| 158 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:60)
|
| 159 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":29:40)
|
| 160 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":30:31)
|
| 161 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:50)
|
| 162 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":36:23)
|
| 163 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":38:23)
|
| 164 |
+
#loc15 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":39:48)
|
| 165 |
+
#loc16 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":39:8)
|
| 166 |
+
#loc17 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:36)
|
| 167 |
+
#loc19 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:15)
|
| 168 |
+
#loc20 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:95)
|
| 169 |
+
#loc21 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":40:28)
|
| 170 |
+
#loc22 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":41:19)
|
| 171 |
+
#loc23 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":42:25)
|
| 172 |
+
#loc24 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":42:36)
|
| 173 |
+
#loc25 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":45:29)
|
| 174 |
+
#loc26 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:60)
|
| 175 |
+
#loc27 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:86)
|
| 176 |
+
#loc28 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:77)
|
| 177 |
+
#loc29 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:68)
|
| 178 |
+
#loc30 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:52)
|
| 179 |
+
#loc31 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:45)
|
| 180 |
+
#loc32 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:41)
|
| 181 |
+
#loc33 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:34)
|
| 182 |
+
#loc34 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:103)
|
| 183 |
+
#loc35 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":52:22)
|
| 184 |
+
#loc36 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":54:37)
|
| 185 |
+
#loc37 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":55:20)
|
| 186 |
+
#loc38 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":56:24)
|
| 187 |
+
#loc39 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:94)
|
| 188 |
+
#loc40 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":72:16)
|
| 189 |
+
#loc41 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:100)
|
| 190 |
+
#loc42 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":73:20)
|
| 191 |
+
#loc43 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":74:34)
|
| 192 |
+
#loc44 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":74:44)
|
| 193 |
+
#loc45 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":74:47)
|
| 194 |
+
#loc46 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":75:25)
|
| 195 |
+
#loc47 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":75:47)
|
| 196 |
+
#loc48 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:55)
|
| 197 |
+
#loc49 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:50)
|
| 198 |
+
#loc50 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:29)
|
| 199 |
+
#loc51 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:53)
|
| 200 |
+
#loc52 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:58)
|
| 201 |
+
#loc53 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:62)
|
| 202 |
+
#loc54 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:29)
|
| 203 |
+
#loc55 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":43:40)
|
| 204 |
+
#loc56 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":44:31)
|
| 205 |
+
#loc57 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:93)
|
| 206 |
+
#loc58 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":50:23)
|
| 207 |
+
#loc59 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":57:24)
|
| 208 |
+
#loc60 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":58:39)
|
| 209 |
+
#loc61 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:32)
|
| 210 |
+
#loc62 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:42)
|
| 211 |
+
#loc63 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:112)
|
| 212 |
+
#loc64 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:110)
|
| 213 |
+
#loc65 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:130)
|
| 214 |
+
#loc66 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:94)
|
| 215 |
+
#loc67 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":43:4)
|
| 216 |
+
#loc77 = loc("xoffset"(#loc2))
|
| 217 |
+
#loc78 = loc("xmask"(#loc3))
|
| 218 |
+
#loc79 = loc("r0_base"(#loc4))
|
| 219 |
+
#loc80 = loc("r0_mask"(#loc5))
|
| 220 |
+
#loc81 = loc("tmp0"(#loc6))
|
| 221 |
+
#loc82 = loc("tmp0"(#loc7))
|
| 222 |
+
#loc83 = loc("tmp0"(#loc8))
|
| 223 |
+
#loc84 = loc("tmp0"(#loc9))
|
| 224 |
+
#loc85 = loc("_tmp3"(#loc10))
|
| 225 |
+
#loc86 = loc("r0_index"(#loc11))
|
| 226 |
+
#loc87 = loc("tmp0"(#loc12))
|
| 227 |
+
#loc88 = loc("tmp1"(#loc13))
|
| 228 |
+
#loc89 = loc("tmp4"(#loc14))
|
| 229 |
+
#loc90 = loc("_tmp3"(#loc15))
|
| 230 |
+
#loc92 = loc("tmp3"(#loc21))
|
| 231 |
+
#loc93 = loc("tmp5"(#loc22))
|
| 232 |
+
#loc94 = loc("r0_mask"(#loc25))
|
| 233 |
+
#loc95 = loc("tmp6"(#loc26))
|
| 234 |
+
#loc96 = loc("tmp6"(#loc27))
|
| 235 |
+
#loc97 = loc("tmp6"(#loc28))
|
| 236 |
+
#loc98 = loc("tmp6"(#loc29))
|
| 237 |
+
#loc99 = loc("tmp6"(#loc30))
|
| 238 |
+
#loc100 = loc("tmp6"(#loc31))
|
| 239 |
+
#loc101 = loc("tmp6"(#loc32))
|
| 240 |
+
#loc102 = loc("tmp6"(#loc33))
|
| 241 |
+
#loc103 = loc("tmp6"(#loc34))
|
| 242 |
+
#loc104 = loc("tmp9"(#loc35))
|
| 243 |
+
#loc105 = loc("tmp11"(#loc36))
|
| 244 |
+
#loc106 = loc("tmp12"(#loc37))
|
| 245 |
+
#loc107 = loc("tmp13"(#loc38))
|
| 246 |
+
#loc108 = loc("quot"(#loc40))
|
| 247 |
+
#loc109 = loc("remainder"(#loc42))
|
| 248 |
+
#loc110 = loc("fixed"(#loc43))
|
| 249 |
+
#loc111 = loc("fixed"(#loc44))
|
| 250 |
+
#loc112 = loc("fixed"(#loc45))
|
| 251 |
+
#loc113 = loc(callsite(#loc46 at #loc41))
|
| 252 |
+
#loc114 = loc(callsite(#loc47 at #loc41))
|
| 253 |
+
#loc115 = loc(fused[#loc52, #loc53])
|
| 254 |
+
#loc116 = loc("r0_index"(#loc56))
|
| 255 |
+
#loc117 = loc("tmp6"(#loc57))
|
| 256 |
+
#loc118 = loc("tmp7"(#loc58))
|
| 257 |
+
#loc119 = loc("tmp14"(#loc59))
|
| 258 |
+
#loc120 = loc("tmp15"(#loc60))
|
| 259 |
+
#loc121 = loc(fused[#loc82, #loc81])
|
| 260 |
+
#loc122 = loc(fused[#loc84, #loc78])
|
| 261 |
+
#loc123 = loc(callsite(#loc17 at #loc91))
|
| 262 |
+
#loc125 = loc(fused[#loc98, #loc99])
|
| 263 |
+
#loc126 = loc(fused[#loc101, #loc100])
|
| 264 |
+
#loc127 = loc(fused[#loc103, #loc78])
|
| 265 |
+
#loc128 = loc(callsite(#loc108 at #loc41))
|
| 266 |
+
#loc129 = loc(callsite(#loc109 at #loc41))
|
| 267 |
+
#loc130 = loc(callsite(#loc110 at #loc41))
|
| 268 |
+
#loc131 = loc(callsite(#loc111 at #loc41))
|
| 269 |
+
#loc132 = loc(callsite(#loc112 at #loc41))
|
| 270 |
+
#loc133 = loc(callsite(#loc19 at #loc123))
|
SpecForge-ext/cache/compiled_kernels/triton/3/7Y3WXJA5F4C76K5XYE6DPME3QXZYZM2B2JXSRQ4JEXGQ6AZL2CMA/triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2.ttir
ADDED
|
@@ -0,0 +1,246 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":18:0)
|
| 2 |
+
#loc1 = loc(unknown)
|
| 3 |
+
#loc19 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":40:25)
|
| 4 |
+
#loc69 = loc("in_ptr0"(#loc))
|
| 5 |
+
#loc70 = loc("in_ptr1"(#loc))
|
| 6 |
+
#loc71 = loc("out_ptr1"(#loc))
|
| 7 |
+
#loc72 = loc("out_ptr2"(#loc))
|
| 8 |
+
#loc73 = loc("out_ptr3"(#loc))
|
| 9 |
+
#loc74 = loc("ks0"(#loc))
|
| 10 |
+
#loc75 = loc("ks1"(#loc))
|
| 11 |
+
#loc76 = loc("xnumel"(#loc))
|
| 12 |
+
#loc77 = loc("r0_numel"(#loc))
|
| 13 |
+
#loc93 = loc("tmp3"(#loc19))
|
| 14 |
+
#loc126 = loc(callsite(#loc1 at #loc93))
|
| 15 |
+
module {
|
| 16 |
+
tt.func public @triton_red_fused__to_copy_arange_index_put_lt_new_zeros_scalar_tensor_sum_unsqueeze_view_where_2(%in_ptr0: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %in_ptr1: !tt.ptr<i64> {tt.divisibility = 16 : i32} loc("in_ptr1"(#loc)), %out_ptr1: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr1"(#loc)), %out_ptr2: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr2"(#loc)), %out_ptr3: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr3"(#loc)), %ks0: i64 loc("ks0"(#loc)), %ks1: i64 loc("ks1"(#loc)), %xnumel: i32 {tt.divisibility = 16 : i32} loc("xnumel"(#loc)), %r0_numel: i32 loc("r0_numel"(#loc))) attributes {noinline = false} {
|
| 17 |
+
%c128_i64 = arith.constant 128 : i64 loc(#loc1)
|
| 18 |
+
%c0_i64 = arith.constant 0 : i64 loc(#loc1)
|
| 19 |
+
%cst = arith.constant dense<0> : tensor<1x32xi32> loc(#loc1)
|
| 20 |
+
%c32_i32 = arith.constant 32 : i32 loc(#loc1)
|
| 21 |
+
%c0_i32 = arith.constant 0 : i32 loc(#loc1)
|
| 22 |
+
%cst_0 = arith.constant dense<1> : tensor<1x32xi32> loc(#loc1)
|
| 23 |
+
%cst_1 = arith.constant dense<true> : tensor<1x32xi1> loc(#loc1)
|
| 24 |
+
%c127_i64 = arith.constant 127 : i64 loc(#loc1)
|
| 25 |
+
%c1_i64 = arith.constant 1 : i64 loc(#loc1)
|
| 26 |
+
%cst_2 = arith.constant dense<0> : tensor<1x32xi64> loc(#loc1)
|
| 27 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc78)
|
| 28 |
+
%xmask = arith.cmpi slt, %xoffset, %c32_i32 : i32 loc(#loc79)
|
| 29 |
+
%xmask_3 = tt.splat %xmask : i1 -> tensor<1x1xi1> loc(#loc79)
|
| 30 |
+
%r0_base = tt.make_range {end = 32 : i32, start = 0 : i32} : tensor<32xi32> loc(#loc80)
|
| 31 |
+
%r0_base_4 = tt.expand_dims %r0_base {axis = 0 : i32} : tensor<32xi32> -> tensor<1x32xi32> loc(#loc81)
|
| 32 |
+
%_tmp3 = scf.for %r0_offset = %c0_i32 to %r0_numel step %c32_i32 iter_args(%_tmp3_6 = %cst_2) -> (tensor<1x32xi64>) : i32 {
|
| 33 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x32xi32> loc(#loc83)
|
| 34 |
+
%r0_index_7 = arith.addi %r0_index, %r0_base_4 : tensor<1x32xi32> loc(#loc83)
|
| 35 |
+
%r0_mask = tt.splat %r0_numel : i32 -> tensor<1x32xi32> loc(#loc84)
|
| 36 |
+
%r0_mask_8 = arith.cmpi slt, %r0_index_7, %r0_mask : tensor<1x32xi32> loc(#loc84)
|
| 37 |
+
%tmp0 = arith.extsi %xoffset : i32 to i64 loc(#loc85)
|
| 38 |
+
%tmp0_9 = arith.muli %ks0, %tmp0 : i64 loc(#loc85)
|
| 39 |
+
%tmp0_10 = arith.extsi %r0_index_7 : tensor<1x32xi32> to tensor<1x32xi64> loc(#loc86)
|
| 40 |
+
%tmp0_11 = tt.splat %tmp0_9 : i64 -> tensor<1x32xi64> loc(#loc123)
|
| 41 |
+
%tmp0_12 = arith.addi %tmp0_10, %tmp0_11 : tensor<1x32xi64> loc(#loc86)
|
| 42 |
+
%tmp0_13 = tt.splat %in_ptr0 : !tt.ptr<i32> -> tensor<1x32x!tt.ptr<i32>> loc(#loc87)
|
| 43 |
+
%tmp0_14 = tt.addptr %tmp0_13, %tmp0_12 : tensor<1x32x!tt.ptr<i32>>, tensor<1x32xi64> loc(#loc87)
|
| 44 |
+
%tmp0_15 = tt.splat %xmask : i1 -> tensor<1x32xi1> loc(#loc124)
|
| 45 |
+
%tmp0_16 = arith.andi %r0_mask_8, %tmp0_15 : tensor<1x32xi1> loc(#loc88)
|
| 46 |
+
%tmp0_17 = tt.load %tmp0_14, %tmp0_16, %cst evictionPolicy = evict_first : tensor<1x32x!tt.ptr<i32>> loc(#loc89)
|
| 47 |
+
%tmp1 = arith.extsi %tmp0_17 : tensor<1x32xi32> to tensor<1x32xi64> loc(#loc90)
|
| 48 |
+
%tmp4 = arith.addi %_tmp3_6, %tmp1 : tensor<1x32xi64> loc(#loc91)
|
| 49 |
+
%_tmp3_18 = arith.select %tmp0_16, %tmp4, %_tmp3_6 : tensor<1x32xi1>, tensor<1x32xi64> loc(#loc92)
|
| 50 |
+
scf.yield %_tmp3_18 : tensor<1x32xi64> loc(#loc17)
|
| 51 |
+
} loc(#loc82)
|
| 52 |
+
%tmp3 = "tt.reduce"(%_tmp3) <{axis = 1 : i32}> ({
|
| 53 |
+
^bb0(%tmp3_6: i64 loc(callsite(#loc1 at #loc93)), %tmp3_7: i64 loc(callsite(#loc1 at #loc93))):
|
| 54 |
+
%tmp3_8 = arith.addi %tmp3_6, %tmp3_7 : i64 loc(#loc135)
|
| 55 |
+
tt.reduce.return %tmp3_8 : i64 loc(#loc125)
|
| 56 |
+
}) : (tensor<1x32xi64>) -> tensor<1xi64> loc(#loc125)
|
| 57 |
+
%tmp3_5 = tt.expand_dims %tmp3 {axis = 1 : i32} : tensor<1xi64> -> tensor<1x1xi64> loc(#loc94)
|
| 58 |
+
%tmp5 = arith.trunci %tmp3_5 : tensor<1x1xi64> to tensor<1x1xi32> loc(#loc95)
|
| 59 |
+
%0 = tt.addptr %out_ptr1, %xoffset : !tt.ptr<i32>, i32 loc(#loc23)
|
| 60 |
+
%1 = tt.splat %0 : !tt.ptr<i32> -> tensor<1x1x!tt.ptr<i32>> loc(#loc23)
|
| 61 |
+
tt.store %1, %tmp5, %xmask_3 : tensor<1x1x!tt.ptr<i32>> loc(#loc24)
|
| 62 |
+
scf.for %r0_offset = %c0_i32 to %r0_numel step %c32_i32 : i32 {
|
| 63 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x32xi32> loc(#loc96)
|
| 64 |
+
%r0_index_6 = arith.addi %r0_index, %r0_base_4 : tensor<1x32xi32> loc(#loc96)
|
| 65 |
+
%r0_mask = tt.splat %r0_numel : i32 -> tensor<1x32xi32> loc(#loc97)
|
| 66 |
+
%r0_mask_7 = arith.cmpi slt, %r0_index_6, %r0_mask : tensor<1x32xi32> loc(#loc97)
|
| 67 |
+
%tmp6 = arith.cmpi sle, %ks0, %c1_i64 : i64 loc(#loc98)
|
| 68 |
+
%tmp6_8 = arith.cmpi sgt, %ks0, %c1_i64 : i64 loc(#loc99)
|
| 69 |
+
%tmp6_9 = arith.extui %tmp6_8 : i1 to i64 loc(#loc100)
|
| 70 |
+
%tmp6_10 = arith.muli %ks0, %tmp6_9 : i64 loc(#loc100)
|
| 71 |
+
%tmp6_11 = arith.extui %tmp6 : i1 to i64 loc(#loc127)
|
| 72 |
+
%tmp6_12 = arith.addi %tmp6_11, %tmp6_10 : i64 loc(#loc101)
|
| 73 |
+
%tmp6_13 = arith.extsi %xoffset : i32 to i64 loc(#loc103)
|
| 74 |
+
%tmp6_14 = arith.muli %tmp6_13, %tmp6_12 : i64 loc(#loc103)
|
| 75 |
+
%tmp6_15 = arith.extsi %r0_index_6 : tensor<1x32xi32> to tensor<1x32xi64> loc(#loc104)
|
| 76 |
+
%tmp6_16 = tt.splat %tmp6_14 : i64 -> tensor<1x32xi64> loc(#loc128)
|
| 77 |
+
%tmp6_17 = arith.addi %tmp6_15, %tmp6_16 : tensor<1x32xi64> loc(#loc104)
|
| 78 |
+
%tmp6_18 = tt.splat %in_ptr1 : !tt.ptr<i64> -> tensor<1x32x!tt.ptr<i64>> loc(#loc105)
|
| 79 |
+
%tmp6_19 = tt.addptr %tmp6_18, %tmp6_17 : tensor<1x32x!tt.ptr<i64>>, tensor<1x32xi64> loc(#loc105)
|
| 80 |
+
%tmp6_20 = tt.splat %xmask : i1 -> tensor<1x32xi1> loc(#loc129)
|
| 81 |
+
%tmp6_21 = arith.andi %r0_mask_7, %tmp6_20 : tensor<1x32xi1> loc(#loc106)
|
| 82 |
+
%tmp6_22 = tt.load %tmp6_19, %tmp6_21, %cst_2 evictionPolicy = evict_first : tensor<1x32x!tt.ptr<i64>> loc(#loc107)
|
| 83 |
+
%tmp7 = arith.trunci %tmp6_22 : tensor<1x32xi64> to tensor<1x32xi32> loc(#loc108)
|
| 84 |
+
%tmp9 = tt.broadcast %tmp5 : tensor<1x1xi32> -> tensor<1x32xi32> loc(#loc109)
|
| 85 |
+
%tmp9_23 = arith.cmpi slt, %r0_index_6, %tmp9 : tensor<1x32xi32> loc(#loc109)
|
| 86 |
+
%tmp11 = arith.extsi %tmp7 : tensor<1x32xi32> to tensor<1x32xi64> loc(#loc110)
|
| 87 |
+
%tmp11_24 = tt.splat %ks0 : i64 -> tensor<1x32xi64> loc(#loc110)
|
| 88 |
+
%tmp11_25 = arith.select %tmp9_23, %tmp11, %tmp11_24 : tensor<1x32xi1>, tensor<1x32xi64> loc(#loc110)
|
| 89 |
+
%tmp12 = arith.addi %ks0, %c1_i64 : i64 loc(#loc111)
|
| 90 |
+
%tmp13 = tt.splat %tmp12 : i64 -> tensor<1x32xi64> loc(#loc112)
|
| 91 |
+
%tmp13_26 = arith.addi %tmp11_25, %tmp13 : tensor<1x32xi64> loc(#loc112)
|
| 92 |
+
%tmp14 = arith.cmpi slt, %tmp11_25, %cst_2 : tensor<1x32xi64> loc(#loc113)
|
| 93 |
+
%tmp15 = arith.select %tmp14, %tmp13_26, %tmp11_25 : tensor<1x32xi1>, tensor<1x32xi64> loc(#loc114)
|
| 94 |
+
%2 = arith.cmpi sge, %tmp15, %cst_2 : tensor<1x32xi64> loc(#loc45)
|
| 95 |
+
%3 = arith.addi %ks1, %c127_i64 : i64 loc(#loc46)
|
| 96 |
+
%quot = arith.divsi %3, %c128_i64 : i64 loc(#loc130)
|
| 97 |
+
%remainder = arith.remsi %3, %c128_i64 : i64 loc(#loc131)
|
| 98 |
+
%fixed = arith.cmpi ne, %remainder, %c0_i64 : i64 loc(#loc132)
|
| 99 |
+
%fixed_27 = arith.subi %quot, %c1_i64 : i64 loc(#loc133)
|
| 100 |
+
%fixed_28 = arith.select %fixed, %fixed_27, %quot : i64 loc(#loc134)
|
| 101 |
+
%4 = arith.cmpi slt, %3, %c0_i64 : i64 loc(#loc120)
|
| 102 |
+
%5 = arith.select %4, %fixed_28, %quot : i64 loc(#loc121)
|
| 103 |
+
%6 = arith.addi %5, %c1_i64 : i64 loc(#loc55)
|
| 104 |
+
%7 = tt.splat %6 : i64 -> tensor<1x32xi64> loc(#loc56)
|
| 105 |
+
%8 = arith.cmpi slt, %tmp15, %7 : tensor<1x32xi64> loc(#loc56)
|
| 106 |
+
%9 = arith.andi %2, %8 : tensor<1x32xi1> loc(#loc57)
|
| 107 |
+
%10 = arith.xori %tmp6_21, %cst_1 : tensor<1x32xi1> loc(#loc58)
|
| 108 |
+
%11 = arith.ori %9, %10 : tensor<1x32xi1> loc(#loc59)
|
| 109 |
+
tt.assert %11, "index out of bounds: 0 <= tmp15 < 1 + (triton_helpers.div_floor_integer(127 + ks1, 128))" : tensor<1x32xi1> loc(#loc60)
|
| 110 |
+
%12 = tt.splat %out_ptr2 : !tt.ptr<i32> -> tensor<1x32x!tt.ptr<i32>> loc(#loc61)
|
| 111 |
+
%13 = tt.addptr %12, %tmp6_17 : tensor<1x32x!tt.ptr<i32>>, tensor<1x32xi64> loc(#loc61)
|
| 112 |
+
tt.store %13, %tmp7, %tmp6_21 : tensor<1x32x!tt.ptr<i32>> loc(#loc62)
|
| 113 |
+
%14 = tt.splat %tmp6_13 : i64 -> tensor<1x32xi64> loc(#loc63)
|
| 114 |
+
%15 = arith.addi %tmp15, %14 : tensor<1x32xi64> loc(#loc63)
|
| 115 |
+
%16 = arith.muli %ks0, %tmp6_13 : i64 loc(#loc64)
|
| 116 |
+
%17 = tt.splat %16 : i64 -> tensor<1x32xi64> loc(#loc122)
|
| 117 |
+
%18 = arith.addi %15, %17 : tensor<1x32xi64> loc(#loc65)
|
| 118 |
+
%19 = tt.splat %out_ptr3 : !tt.ptr<i32> -> tensor<1x32x!tt.ptr<i32>> loc(#loc66)
|
| 119 |
+
%20 = tt.addptr %19, %18 : tensor<1x32x!tt.ptr<i32>>, tensor<1x32xi64> loc(#loc66)
|
| 120 |
+
tt.store %20, %cst_0, %tmp6_21 : tensor<1x32x!tt.ptr<i32>> loc(#loc67)
|
| 121 |
+
} loc(#loc25)
|
| 122 |
+
tt.return loc(#loc68)
|
| 123 |
+
} loc(#loc)
|
| 124 |
+
} loc(#loc)
|
| 125 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":22:28)
|
| 126 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":24:21)
|
| 127 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":25:27)
|
| 128 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":25:37)
|
| 129 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":29:40)
|
| 130 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":30:31)
|
| 131 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":31:29)
|
| 132 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:45)
|
| 133 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:41)
|
| 134 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:34)
|
| 135 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:60)
|
| 136 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":35:50)
|
| 137 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":36:23)
|
| 138 |
+
#loc15 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":38:23)
|
| 139 |
+
#loc16 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":39:48)
|
| 140 |
+
#loc17 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":39:8)
|
| 141 |
+
#loc18 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:36)
|
| 142 |
+
#loc20 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:15)
|
| 143 |
+
#loc21 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":40:28)
|
| 144 |
+
#loc22 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":41:19)
|
| 145 |
+
#loc23 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":42:25)
|
| 146 |
+
#loc24 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":42:36)
|
| 147 |
+
#loc25 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":43:40)
|
| 148 |
+
#loc26 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":44:31)
|
| 149 |
+
#loc27 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":45:29)
|
| 150 |
+
#loc28 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:60)
|
| 151 |
+
#loc29 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:86)
|
| 152 |
+
#loc30 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:77)
|
| 153 |
+
#loc31 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:68)
|
| 154 |
+
#loc32 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:52)
|
| 155 |
+
#loc33 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:45)
|
| 156 |
+
#loc34 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:41)
|
| 157 |
+
#loc35 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:34)
|
| 158 |
+
#loc36 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:103)
|
| 159 |
+
#loc37 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":49:93)
|
| 160 |
+
#loc38 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":50:23)
|
| 161 |
+
#loc39 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":52:22)
|
| 162 |
+
#loc40 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":54:37)
|
| 163 |
+
#loc41 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":55:20)
|
| 164 |
+
#loc42 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":56:24)
|
| 165 |
+
#loc43 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":57:24)
|
| 166 |
+
#loc44 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":58:39)
|
| 167 |
+
#loc45 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:32)
|
| 168 |
+
#loc46 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:94)
|
| 169 |
+
#loc47 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":72:16)
|
| 170 |
+
#loc48 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:100)
|
| 171 |
+
#loc49 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":73:20)
|
| 172 |
+
#loc50 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":74:34)
|
| 173 |
+
#loc51 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":74:44)
|
| 174 |
+
#loc52 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":74:47)
|
| 175 |
+
#loc53 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":75:25)
|
| 176 |
+
#loc54 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":75:47)
|
| 177 |
+
#loc55 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:55)
|
| 178 |
+
#loc56 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:50)
|
| 179 |
+
#loc57 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:42)
|
| 180 |
+
#loc58 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:112)
|
| 181 |
+
#loc59 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:110)
|
| 182 |
+
#loc60 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":59:130)
|
| 183 |
+
#loc61 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:29)
|
| 184 |
+
#loc62 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":61:94)
|
| 185 |
+
#loc63 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:53)
|
| 186 |
+
#loc64 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:62)
|
| 187 |
+
#loc65 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:58)
|
| 188 |
+
#loc66 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:29)
|
| 189 |
+
#loc67 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":62:95)
|
| 190 |
+
#loc68 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vr/cvrhnrmpgyxwu34xleclee3tt4kemoldkj7iam4uciathomirvlc.py":43:4)
|
| 191 |
+
#loc78 = loc("xoffset"(#loc2))
|
| 192 |
+
#loc79 = loc("xmask"(#loc3))
|
| 193 |
+
#loc80 = loc("r0_base"(#loc4))
|
| 194 |
+
#loc81 = loc("r0_base"(#loc5))
|
| 195 |
+
#loc82 = loc("_tmp3"(#loc6))
|
| 196 |
+
#loc83 = loc("r0_index"(#loc7))
|
| 197 |
+
#loc84 = loc("r0_mask"(#loc8))
|
| 198 |
+
#loc85 = loc("tmp0"(#loc9))
|
| 199 |
+
#loc86 = loc("tmp0"(#loc10))
|
| 200 |
+
#loc87 = loc("tmp0"(#loc11))
|
| 201 |
+
#loc88 = loc("tmp0"(#loc12))
|
| 202 |
+
#loc89 = loc("tmp0"(#loc13))
|
| 203 |
+
#loc90 = loc("tmp1"(#loc14))
|
| 204 |
+
#loc91 = loc("tmp4"(#loc15))
|
| 205 |
+
#loc92 = loc("_tmp3"(#loc16))
|
| 206 |
+
#loc94 = loc("tmp3"(#loc21))
|
| 207 |
+
#loc95 = loc("tmp5"(#loc22))
|
| 208 |
+
#loc96 = loc("r0_index"(#loc26))
|
| 209 |
+
#loc97 = loc("r0_mask"(#loc27))
|
| 210 |
+
#loc98 = loc("tmp6"(#loc28))
|
| 211 |
+
#loc99 = loc("tmp6"(#loc29))
|
| 212 |
+
#loc100 = loc("tmp6"(#loc30))
|
| 213 |
+
#loc101 = loc("tmp6"(#loc31))
|
| 214 |
+
#loc102 = loc("tmp6"(#loc32))
|
| 215 |
+
#loc103 = loc("tmp6"(#loc33))
|
| 216 |
+
#loc104 = loc("tmp6"(#loc34))
|
| 217 |
+
#loc105 = loc("tmp6"(#loc35))
|
| 218 |
+
#loc106 = loc("tmp6"(#loc36))
|
| 219 |
+
#loc107 = loc("tmp6"(#loc37))
|
| 220 |
+
#loc108 = loc("tmp7"(#loc38))
|
| 221 |
+
#loc109 = loc("tmp9"(#loc39))
|
| 222 |
+
#loc110 = loc("tmp11"(#loc40))
|
| 223 |
+
#loc111 = loc("tmp12"(#loc41))
|
| 224 |
+
#loc112 = loc("tmp13"(#loc42))
|
| 225 |
+
#loc113 = loc("tmp14"(#loc43))
|
| 226 |
+
#loc114 = loc("tmp15"(#loc44))
|
| 227 |
+
#loc115 = loc("quot"(#loc47))
|
| 228 |
+
#loc116 = loc("remainder"(#loc49))
|
| 229 |
+
#loc117 = loc("fixed"(#loc50))
|
| 230 |
+
#loc118 = loc("fixed"(#loc51))
|
| 231 |
+
#loc119 = loc("fixed"(#loc52))
|
| 232 |
+
#loc120 = loc(callsite(#loc53 at #loc48))
|
| 233 |
+
#loc121 = loc(callsite(#loc54 at #loc48))
|
| 234 |
+
#loc122 = loc(fused[#loc65, #loc64])
|
| 235 |
+
#loc123 = loc(fused[#loc86, #loc85])
|
| 236 |
+
#loc124 = loc(fused[#loc88, #loc79])
|
| 237 |
+
#loc125 = loc(callsite(#loc18 at #loc93))
|
| 238 |
+
#loc127 = loc(fused[#loc101, #loc102])
|
| 239 |
+
#loc128 = loc(fused[#loc104, #loc103])
|
| 240 |
+
#loc129 = loc(fused[#loc106, #loc79])
|
| 241 |
+
#loc130 = loc(callsite(#loc115 at #loc48))
|
| 242 |
+
#loc131 = loc(callsite(#loc116 at #loc48))
|
| 243 |
+
#loc132 = loc(callsite(#loc117 at #loc48))
|
| 244 |
+
#loc133 = loc(callsite(#loc118 at #loc48))
|
| 245 |
+
#loc134 = loc(callsite(#loc119 at #loc48))
|
| 246 |
+
#loc135 = loc(callsite(#loc20 at #loc125))
|
SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/__grp__triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"child_paths": {"triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.source": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.source", "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ttir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ttir", "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ttgir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ttgir", "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.llir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.llir", "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ptx": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ptx", "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.cubin": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.cubin", "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.json": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.json"}}
|
SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.cubin
ADDED
|
Binary file (86.4 kB). View file
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"hash": "07c7815d2ce5fa33e16044674f04a1dcbb415776e0b5f0da0149af801b6db42c", "target": {"backend": "cuda", "arch": 90, "warp_size": 32}, "num_warps": 4, "num_ctas": 1, "num_stages": 1, "warp_size": 32, "maxnreg": null, "cluster_dims": [1, 1, 1], "ptx_version": null, "ptx_options": null, "ir_override": null, "enable_fp_fusion": true, "launch_cooperative_grid": false, "launch_pdl": false, "supported_fp8_dtypes": ["fp8e4b15", "fp8e4nv", "fp8e5"], "deprecated_fp8_dot_operand_dtypes": ["fp8e4b15"], "default_dot_input_precision": "tf32", "allowed_dot_input_precisions": ["tf32", "tf32x3", "ieee"], "max_num_imprecise_acc_default": 1073741824, "extern_libs": [["libdevice", "/workspace/specforge/lib/python3.11/site-packages/triton/backends/nvidia/lib/libdevice.10.bc"]], "debug": true, "backend_name": "cuda", "sanitize_overflow": false, "arch": "sm90", "instrumentation_mode": "", "triton_version": "3.5.1", "tensordesc_meta": [], "shared": 2048, "tmem_size": 0, "global_scratch_size": 0, "global_scratch_align": 1, "profile_scratch_size": 0, "profile_scratch_align": 1, "name": "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3"}
|
SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.llir
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ptx
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.source
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ttgir
ADDED
|
@@ -0,0 +1,841 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#blocked = #ttg.blocked<{sizePerThread = [1, 1], threadsPerWarp = [32, 1], warpsPerCTA = [1, 4], order = [0, 1]}>
|
| 2 |
+
#blocked1 = #ttg.blocked<{sizePerThread = [1, 4], threadsPerWarp = [8, 4], warpsPerCTA = [4, 1], order = [1, 0]}>
|
| 3 |
+
#linear = #ttg.linear<{register = [[0, 4], [0, 8]], lane = [[1, 0], [2, 0], [4, 0], [8, 0], [16, 0]], warp = [[0, 1], [0, 2]], block = []}>
|
| 4 |
+
#linear1 = #ttg.linear<{register = [[2, 0, 0], [4, 0, 0]], lane = [[8, 0, 0], [16, 0, 0], [32, 0, 0], [64, 0, 0], [128, 0, 0]], warp = [[0, 1, 0], [1, 0, 0]], block = []}>
|
| 5 |
+
#linear2 = #ttg.linear<{register = [[1, 0, 0], [2, 0, 0]], lane = [[4, 0, 0], [8, 0, 0], [16, 0, 0], [32, 0, 0], [64, 0, 0]], warp = [[0, 0, 1], [0, 1, 0]], block = []}>
|
| 6 |
+
#linear3 = #ttg.linear<{register = [[0, 1, 0], [1, 0, 0]], lane = [[2, 0, 0], [4, 0, 0], [8, 0, 0], [16, 0, 0], [32, 0, 0]], warp = [[0, 0, 1], [0, 0, 2]], block = []}>
|
| 7 |
+
#linear4 = #ttg.linear<{register = [[0, 0, 4], [0, 1, 0]], lane = [[1, 0, 0], [2, 0, 0], [4, 0, 0], [8, 0, 0], [16, 0, 0]], warp = [[0, 0, 1], [0, 0, 2]], block = []}>
|
| 8 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":18:0)
|
| 9 |
+
#loc1 = loc(unknown)
|
| 10 |
+
#loc19 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":662:12)
|
| 11 |
+
#loc20 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":41:67)
|
| 12 |
+
#loc24 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":634:73)
|
| 13 |
+
#loc28 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":538:51)
|
| 14 |
+
#loc33 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":539:53)
|
| 15 |
+
#loc42 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":548:50)
|
| 16 |
+
#loc47 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":551:51)
|
| 17 |
+
#loc67 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":45:26)
|
| 18 |
+
#loc77 = loc("in_ptr0"(#loc))
|
| 19 |
+
#loc78 = loc("out_ptr2"(#loc))
|
| 20 |
+
#loc79 = loc("out_ptr3"(#loc))
|
| 21 |
+
#loc80 = loc("xnumel"(#loc))
|
| 22 |
+
#loc81 = loc("r0_numel"(#loc))
|
| 23 |
+
#loc99 = loc(callsite(#loc19 at #loc20))
|
| 24 |
+
#loc105 = loc("ileft"(#loc28))
|
| 25 |
+
#loc109 = loc("iright"(#loc33))
|
| 26 |
+
#loc118 = loc("left_idx"(#loc42))
|
| 27 |
+
#loc123 = loc("right_idx"(#loc47))
|
| 28 |
+
#loc143 = loc("tmp11"(#loc67))
|
| 29 |
+
#loc149 = loc(callsite(#loc24 at #loc99))
|
| 30 |
+
#loc153 = loc(callsite(#loc1 at #loc143))
|
| 31 |
+
#loc157 = loc(callsite(#loc105 at #loc149))
|
| 32 |
+
#loc161 = loc(callsite(#loc109 at #loc149))
|
| 33 |
+
#loc169 = loc(callsite(#loc118 at #loc149))
|
| 34 |
+
#loc174 = loc(callsite(#loc123 at #loc149))
|
| 35 |
+
#loc194 = loc(callsite(#loc1 at #loc157))
|
| 36 |
+
#loc196 = loc(callsite(#loc1 at #loc161))
|
| 37 |
+
#loc199 = loc(callsite(#loc1 at #loc169))
|
| 38 |
+
#loc202 = loc(callsite(#loc1 at #loc174))
|
| 39 |
+
module attributes {"ttg.num-ctas" = 1 : i32, "ttg.num-warps" = 4 : i32, ttg.target = "cuda:90", "ttg.threads-per-warp" = 32 : i32} {
|
| 40 |
+
tt.func public @triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3(%in_ptr0: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %out_ptr2: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr2"(#loc)), %out_ptr3: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr3"(#loc)), %xnumel: i32 {tt.divisibility = 16 : i32} loc("xnumel"(#loc)), %r0_numel: i32 {tt.divisibility = 16 : i32} loc("r0_numel"(#loc))) attributes {noinline = false} {
|
| 41 |
+
%cst = arith.constant dense<0> : tensor<32x16xi32, #linear> loc(#loc1)
|
| 42 |
+
%cst_0 = arith.constant dense<0> : tensor<32x16xi64, #blocked> loc(#loc1)
|
| 43 |
+
%c32_i32 = arith.constant 32 : i32 loc(#loc1)
|
| 44 |
+
%cst_1 = arith.constant dense<32> : tensor<32x1xi32, #blocked> loc(#loc1)
|
| 45 |
+
%cst_2 = arith.constant dense<32> : tensor<32x1xi32, #blocked1> loc(#loc1)
|
| 46 |
+
%cst_3 = arith.constant dense<16> : tensor<32x1xi32, #blocked> loc(#loc1)
|
| 47 |
+
%cst_4 = arith.constant dense<16> : tensor<32x1xi32, #blocked1> loc(#loc1)
|
| 48 |
+
%cst_5 = arith.constant dense<17> : tensor<1x16xi32, #blocked> loc(#loc1)
|
| 49 |
+
%cst_6 = arith.constant dense<272> : tensor<32x1xi32, #blocked> loc(#loc1)
|
| 50 |
+
%cst_7 = arith.constant dense<1> : tensor<1x2x1xi32, #linear1> loc(#loc1)
|
| 51 |
+
%cst_8 = arith.constant dense<1> : tensor<1x2x1xi32, #linear2> loc(#loc1)
|
| 52 |
+
%cst_9 = arith.constant dense<1> : tensor<1x2x1xi32, #linear3> loc(#loc1)
|
| 53 |
+
%cst_10 = arith.constant dense<1> : tensor<1x2x1xi32, #linear4> loc(#loc1)
|
| 54 |
+
%cst_11 = arith.constant dense<0> : tensor<32x16xi32, #blocked> loc(#loc1)
|
| 55 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc82)
|
| 56 |
+
%xoffset_12 = arith.muli %xoffset, %c32_i32 : i32 loc(#loc83)
|
| 57 |
+
%xindex = tt.make_range {end = 32 : i32, start = 0 : i32} : tensor<32xi32, #ttg.slice<{dim = 1, parent = #blocked}>> loc(#loc84)
|
| 58 |
+
%xindex_13 = tt.make_range {end = 32 : i32, start = 0 : i32} : tensor<32xi32, #ttg.slice<{dim = 1, parent = #blocked1}>> loc(#loc84)
|
| 59 |
+
%xindex_14 = tt.expand_dims %xindex {axis = 1 : i32} : tensor<32xi32, #ttg.slice<{dim = 1, parent = #blocked}>> -> tensor<32x1xi32, #blocked> loc(#loc84)
|
| 60 |
+
%xindex_15 = tt.expand_dims %xindex_13 {axis = 1 : i32} : tensor<32xi32, #ttg.slice<{dim = 1, parent = #blocked1}>> -> tensor<32x1xi32, #blocked1> loc(#loc84)
|
| 61 |
+
%xindex_16 = tt.splat %xoffset_12 : i32 -> tensor<32x1xi32, #blocked> loc(#loc85)
|
| 62 |
+
%xindex_17 = tt.splat %xoffset_12 : i32 -> tensor<32x1xi32, #blocked1> loc(#loc85)
|
| 63 |
+
%xindex_18 = arith.addi %xindex_16, %xindex_14 : tensor<32x1xi32, #blocked> loc(#loc85)
|
| 64 |
+
%xindex_19 = arith.addi %xindex_17, %xindex_15 : tensor<32x1xi32, #blocked1> loc(#loc85)
|
| 65 |
+
%xmask = arith.cmpi slt, %xindex_18, %cst_1 : tensor<32x1xi32, #blocked> loc(#loc86)
|
| 66 |
+
%xmask_20 = arith.cmpi slt, %xindex_19, %cst_2 : tensor<32x1xi32, #blocked1> loc(#loc86)
|
| 67 |
+
%r0_index = tt.make_range {end = 16 : i32, start = 0 : i32} : tensor<16xi32, #ttg.slice<{dim = 0, parent = #blocked}>> loc(#loc87)
|
| 68 |
+
%r0_index_21 = tt.make_range {end = 16 : i32, start = 0 : i32} : tensor<16xi32, #ttg.slice<{dim = 0, parent = #linear}>> loc(#loc87)
|
| 69 |
+
%r0_index_22 = tt.make_range {end = 16 : i32, start = 0 : i32} : tensor<16xi32, #ttg.slice<{dim = 0, parent = #blocked1}>> loc(#loc87)
|
| 70 |
+
%r0_index_23 = tt.expand_dims %r0_index {axis = 0 : i32} : tensor<16xi32, #ttg.slice<{dim = 0, parent = #blocked}>> -> tensor<1x16xi32, #blocked> loc(#loc87)
|
| 71 |
+
%r0_index_24 = tt.expand_dims %r0_index_21 {axis = 0 : i32} : tensor<16xi32, #ttg.slice<{dim = 0, parent = #linear}>> -> tensor<1x16xi32, #linear> loc(#loc87)
|
| 72 |
+
%r0_index_25 = tt.expand_dims %r0_index_22 {axis = 0 : i32} : tensor<16xi32, #ttg.slice<{dim = 0, parent = #blocked1}>> -> tensor<1x16xi32, #blocked1> loc(#loc87)
|
| 73 |
+
%x0 = arith.remsi %xindex_18, %cst_3 : tensor<32x1xi32, #blocked> loc(#loc88)
|
| 74 |
+
%x1 = arith.divsi %xindex_18, %cst_3 : tensor<32x1xi32, #blocked> loc(#loc89)
|
| 75 |
+
%tmp0 = arith.muli %r0_index_23, %cst_5 : tensor<1x16xi32, #blocked> loc(#loc90)
|
| 76 |
+
%tmp0_26 = tt.broadcast %x0 : tensor<32x1xi32, #blocked> -> tensor<32x16xi32, #blocked> loc(#loc91)
|
| 77 |
+
%tmp0_27 = tt.broadcast %tmp0 : tensor<1x16xi32, #blocked> -> tensor<32x16xi32, #blocked> loc(#loc91)
|
| 78 |
+
%tmp0_28 = arith.addi %tmp0_26, %tmp0_27 : tensor<32x16xi32, #blocked> loc(#loc91)
|
| 79 |
+
%tmp0_29 = arith.muli %x1, %cst_6 : tensor<32x1xi32, #blocked> loc(#loc92)
|
| 80 |
+
%tmp0_30 = tt.broadcast %tmp0_29 : tensor<32x1xi32, #blocked> -> tensor<32x16xi32, #blocked> loc(#loc93)
|
| 81 |
+
%tmp0_31 = arith.addi %tmp0_28, %tmp0_30 : tensor<32x16xi32, #blocked> loc(#loc93)
|
| 82 |
+
%tmp0_32 = tt.splat %in_ptr0 : !tt.ptr<i32> -> tensor<32x16x!tt.ptr<i32>, #blocked> loc(#loc94)
|
| 83 |
+
%tmp0_33 = tt.addptr %tmp0_32, %tmp0_31 : tensor<32x16x!tt.ptr<i32>, #blocked>, tensor<32x16xi32, #blocked> loc(#loc94)
|
| 84 |
+
%tmp0_34 = tt.broadcast %xmask : tensor<32x1xi1, #blocked> -> tensor<32x16xi1, #blocked> loc(#loc95)
|
| 85 |
+
%tmp0_35 = tt.broadcast %xmask_20 : tensor<32x1xi1, #blocked1> -> tensor<32x16xi1, #blocked1> loc(#loc95)
|
| 86 |
+
%tmp0_36 = tt.load %tmp0_33, %tmp0_34, %cst_11 : tensor<32x16x!tt.ptr<i32>, #blocked> loc(#loc95)
|
| 87 |
+
%tmp2 = arith.trunci %r0_index_24 : tensor<1x16xi32, #linear> to tensor<1x16xi16, #linear> loc(#loc96)
|
| 88 |
+
%tmp4 = tt.broadcast %tmp2 : tensor<1x16xi16, #linear> -> tensor<32x16xi16, #linear> loc(#loc97)
|
| 89 |
+
%flip = tt.make_range {end = 2 : i32, start = 0 : i32} : tensor<2xi32, #ttg.slice<{dim = 0, parent = #ttg.slice<{dim = 2, parent = #linear2}>}>> loc(#loc146)
|
| 90 |
+
%flip_37 = tt.make_range {end = 2 : i32, start = 0 : i32} : tensor<2xi32, #ttg.slice<{dim = 0, parent = #ttg.slice<{dim = 2, parent = #linear1}>}>> loc(#loc146)
|
| 91 |
+
%flip_38 = tt.make_range {end = 2 : i32, start = 0 : i32} : tensor<2xi32, #ttg.slice<{dim = 0, parent = #ttg.slice<{dim = 2, parent = #linear3}>}>> loc(#loc146)
|
| 92 |
+
%flip_39 = tt.make_range {end = 2 : i32, start = 0 : i32} : tensor<2xi32, #ttg.slice<{dim = 0, parent = #ttg.slice<{dim = 2, parent = #linear4}>}>> loc(#loc146)
|
| 93 |
+
%flip_40 = tt.expand_dims %flip {axis = 0 : i32} : tensor<2xi32, #ttg.slice<{dim = 0, parent = #ttg.slice<{dim = 2, parent = #linear2}>}>> -> tensor<1x2xi32, #ttg.slice<{dim = 2, parent = #linear2}>> loc(#loc146)
|
| 94 |
+
%flip_41 = tt.expand_dims %flip_37 {axis = 0 : i32} : tensor<2xi32, #ttg.slice<{dim = 0, parent = #ttg.slice<{dim = 2, parent = #linear1}>}>> -> tensor<1x2xi32, #ttg.slice<{dim = 2, parent = #linear1}>> loc(#loc146)
|
| 95 |
+
%flip_42 = tt.expand_dims %flip_38 {axis = 0 : i32} : tensor<2xi32, #ttg.slice<{dim = 0, parent = #ttg.slice<{dim = 2, parent = #linear3}>}>> -> tensor<1x2xi32, #ttg.slice<{dim = 2, parent = #linear3}>> loc(#loc146)
|
| 96 |
+
%flip_43 = tt.expand_dims %flip_39 {axis = 0 : i32} : tensor<2xi32, #ttg.slice<{dim = 0, parent = #ttg.slice<{dim = 2, parent = #linear4}>}>> -> tensor<1x2xi32, #ttg.slice<{dim = 2, parent = #linear4}>> loc(#loc146)
|
| 97 |
+
%flip_44 = tt.expand_dims %flip_40 {axis = 2 : i32} : tensor<1x2xi32, #ttg.slice<{dim = 2, parent = #linear2}>> -> tensor<1x2x1xi32, #linear2> loc(#loc146)
|
| 98 |
+
%flip_45 = tt.expand_dims %flip_41 {axis = 2 : i32} : tensor<1x2xi32, #ttg.slice<{dim = 2, parent = #linear1}>> -> tensor<1x2x1xi32, #linear1> loc(#loc146)
|
| 99 |
+
%flip_46 = tt.expand_dims %flip_42 {axis = 2 : i32} : tensor<1x2xi32, #ttg.slice<{dim = 2, parent = #linear3}>> -> tensor<1x2x1xi32, #linear3> loc(#loc146)
|
| 100 |
+
%flip_47 = tt.expand_dims %flip_43 {axis = 2 : i32} : tensor<1x2xi32, #ttg.slice<{dim = 2, parent = #linear4}>> -> tensor<1x2x1xi32, #linear4> loc(#loc146)
|
| 101 |
+
%flip_48 = tt.broadcast %flip_44 : tensor<1x2x1xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc147)
|
| 102 |
+
%flip_49 = tt.reshape %flip_48 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #blocked> loc(#loc148)
|
| 103 |
+
%flip_50 = tt.reshape %flip_48 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc148)
|
| 104 |
+
%y = tt.reshape %tmp0_36 : tensor<32x16xi32, #blocked> -> tensor<256x2x1xi32, #linear1> loc(#loc154)
|
| 105 |
+
%left_mask = arith.subi %cst_7, %flip_45 : tensor<1x2x1xi32, #linear1> loc(#loc155)
|
| 106 |
+
%left_mask_51 = arith.subi %cst_8, %flip_44 : tensor<1x2x1xi32, #linear2> loc(#loc155)
|
| 107 |
+
%left_mask_52 = arith.subi %cst_9, %flip_46 : tensor<1x2x1xi32, #linear3> loc(#loc155)
|
| 108 |
+
%left_mask_53 = arith.subi %cst_10, %flip_47 : tensor<1x2x1xi32, #linear4> loc(#loc155)
|
| 109 |
+
%ileft = tt.broadcast %left_mask : tensor<1x2x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc156)
|
| 110 |
+
%ileft_54 = arith.muli %y, %ileft : tensor<256x2x1xi32, #linear1> loc(#loc156)
|
| 111 |
+
%ileft_55 = "tt.reduce"(%ileft_54) <{axis = 1 : i32}> ({
|
| 112 |
+
^bb0(%ileft_419: i32 loc(callsite(#loc1 at #loc157)), %ileft_420: i32 loc(callsite(#loc1 at #loc157))):
|
| 113 |
+
%ileft_421 = arith.addi %ileft_419, %ileft_420 : i32 loc(#loc203)
|
| 114 |
+
tt.reduce.return %ileft_421 : i32 loc(#loc193)
|
| 115 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc193)
|
| 116 |
+
%ileft_56 = tt.expand_dims %ileft_55 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc158)
|
| 117 |
+
%ileft_57 = tt.broadcast %ileft_56 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc159)
|
| 118 |
+
%iright = tt.broadcast %flip_45 : tensor<1x2x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc160)
|
| 119 |
+
%iright_58 = arith.muli %y, %iright : tensor<256x2x1xi32, #linear1> loc(#loc160)
|
| 120 |
+
%iright_59 = "tt.reduce"(%iright_58) <{axis = 1 : i32}> ({
|
| 121 |
+
^bb0(%iright_419: i32 loc(callsite(#loc1 at #loc161)), %iright_420: i32 loc(callsite(#loc1 at #loc161))):
|
| 122 |
+
%iright_421 = arith.addi %iright_419, %iright_420 : i32 loc(#loc204)
|
| 123 |
+
tt.reduce.return %iright_421 : i32 loc(#loc195)
|
| 124 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc195)
|
| 125 |
+
%iright_60 = tt.expand_dims %iright_59 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc162)
|
| 126 |
+
%iright_61 = tt.broadcast %iright_60 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc163)
|
| 127 |
+
%ileft_62 = tt.reshape %ileft_57 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #blocked> loc(#loc164)
|
| 128 |
+
%ileft_63 = tt.reshape %ileft_57 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc164)
|
| 129 |
+
%iright_64 = tt.reshape %iright_61 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #blocked> loc(#loc165)
|
| 130 |
+
%iright_65 = tt.reshape %iright_61 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc165)
|
| 131 |
+
%y_idx = tt.reshape %tmp4 : tensor<32x16xi16, #linear> -> tensor<256x2x1xi16, #linear1> loc(#loc166)
|
| 132 |
+
%left_idx = arith.trunci %left_mask : tensor<1x2x1xi32, #linear1> to tensor<1x2x1xi16, #linear1> loc(#loc167)
|
| 133 |
+
%left_idx_66 = tt.broadcast %left_idx : tensor<1x2x1xi16, #linear1> -> tensor<256x2x1xi16, #linear1> loc(#loc168)
|
| 134 |
+
%left_idx_67 = arith.muli %y_idx, %left_idx_66 : tensor<256x2x1xi16, #linear1> loc(#loc168)
|
| 135 |
+
%input = arith.extsi %left_idx_67 : tensor<256x2x1xi16, #linear1> to tensor<256x2x1xi32, #linear1> loc(#loc197)
|
| 136 |
+
%left_idx_68 = "tt.reduce"(%input) <{axis = 1 : i32}> ({
|
| 137 |
+
^bb0(%left_idx_419: i32 loc(callsite(#loc1 at #loc169)), %left_idx_420: i32 loc(callsite(#loc1 at #loc169))):
|
| 138 |
+
%left_idx_421 = arith.addi %left_idx_419, %left_idx_420 : i32 loc(#loc205)
|
| 139 |
+
tt.reduce.return %left_idx_421 : i32 loc(#loc198)
|
| 140 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc198)
|
| 141 |
+
%left_idx_69 = tt.expand_dims %left_idx_68 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc170)
|
| 142 |
+
%left_idx_70 = tt.broadcast %left_idx_69 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc171)
|
| 143 |
+
%right_idx = arith.trunci %flip_45 : tensor<1x2x1xi32, #linear1> to tensor<1x2x1xi16, #linear1> loc(#loc172)
|
| 144 |
+
%right_idx_71 = tt.broadcast %right_idx : tensor<1x2x1xi16, #linear1> -> tensor<256x2x1xi16, #linear1> loc(#loc173)
|
| 145 |
+
%right_idx_72 = arith.muli %y_idx, %right_idx_71 : tensor<256x2x1xi16, #linear1> loc(#loc173)
|
| 146 |
+
%input_73 = arith.extsi %right_idx_72 : tensor<256x2x1xi16, #linear1> to tensor<256x2x1xi32, #linear1> loc(#loc200)
|
| 147 |
+
%right_idx_74 = "tt.reduce"(%input_73) <{axis = 1 : i32}> ({
|
| 148 |
+
^bb0(%right_idx_419: i32 loc(callsite(#loc1 at #loc174)), %right_idx_420: i32 loc(callsite(#loc1 at #loc174))):
|
| 149 |
+
%right_idx_421 = arith.addi %right_idx_419, %right_idx_420 : i32 loc(#loc206)
|
| 150 |
+
tt.reduce.return %right_idx_421 : i32 loc(#loc201)
|
| 151 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc201)
|
| 152 |
+
%right_idx_75 = tt.expand_dims %right_idx_74 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc175)
|
| 153 |
+
%right_idx_76 = tt.broadcast %right_idx_75 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc176)
|
| 154 |
+
%left_idx_77 = tt.reshape %left_idx_70 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #blocked> loc(#loc177)
|
| 155 |
+
%left_idx_78 = tt.reshape %left_idx_70 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc177)
|
| 156 |
+
%right_idx_79 = tt.reshape %right_idx_76 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #blocked> loc(#loc178)
|
| 157 |
+
%right_idx_80 = tt.reshape %right_idx_76 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc178)
|
| 158 |
+
%cond = arith.cmpi slt, %ileft_62, %iright_64 : tensor<32x16xi32, #blocked> loc(#loc179)
|
| 159 |
+
%cond_81 = arith.cmpi slt, %ileft_63, %iright_65 : tensor<32x16xi32, #linear> loc(#loc179)
|
| 160 |
+
%eq = arith.cmpi eq, %ileft_62, %iright_64 : tensor<32x16xi32, #blocked> loc(#loc180)
|
| 161 |
+
%eq_82 = arith.cmpi eq, %ileft_63, %iright_65 : tensor<32x16xi32, #linear> loc(#loc180)
|
| 162 |
+
%cond_83 = arith.cmpi sgt, %left_idx_77, %right_idx_79 : tensor<32x16xi32, #blocked> loc(#loc181)
|
| 163 |
+
%cond_84 = arith.cmpi sgt, %left_idx_78, %right_idx_80 : tensor<32x16xi32, #linear> loc(#loc181)
|
| 164 |
+
%cond_85 = arith.andi %eq, %cond_83 : tensor<32x16xi1, #blocked> loc(#loc182)
|
| 165 |
+
%cond_86 = arith.andi %eq_82, %cond_84 : tensor<32x16xi1, #linear> loc(#loc182)
|
| 166 |
+
%cond_87 = arith.ori %cond, %cond_85 : tensor<32x16xi1, #blocked> loc(#loc183)
|
| 167 |
+
%cond_88 = arith.ori %cond_81, %cond_86 : tensor<32x16xi1, #linear> loc(#loc183)
|
| 168 |
+
%cond_89 = arith.extui %cond_87 : tensor<32x16xi1, #blocked> to tensor<32x16xi32, #blocked> loc(#loc184)
|
| 169 |
+
%cond_90 = arith.extui %cond_88 : tensor<32x16xi1, #linear> to tensor<32x16xi32, #linear> loc(#loc184)
|
| 170 |
+
%cond_91 = arith.xori %cond_89, %flip_49 : tensor<32x16xi32, #blocked> loc(#loc184)
|
| 171 |
+
%cond_92 = arith.xori %cond_90, %flip_50 : tensor<32x16xi32, #linear> loc(#loc184)
|
| 172 |
+
%cond_93 = arith.cmpi ne, %cond_91, %cst_11 : tensor<32x16xi32, #blocked> loc(#loc185)
|
| 173 |
+
%cond_94 = arith.cmpi ne, %cond_92, %cst : tensor<32x16xi32, #linear> loc(#loc185)
|
| 174 |
+
%ret = arith.xori %ileft_62, %iright_64 : tensor<32x16xi32, #blocked> loc(#loc186)
|
| 175 |
+
%ret_95 = arith.select %cond_93, %ret, %cst_11 : tensor<32x16xi1, #blocked>, tensor<32x16xi32, #blocked> loc(#loc187)
|
| 176 |
+
%ret_96 = arith.xori %tmp0_36, %ret_95 : tensor<32x16xi32, #blocked> loc(#loc188)
|
| 177 |
+
%ret_97 = ttg.convert_layout %ret_96 : tensor<32x16xi32, #blocked> -> tensor<32x16xi32, #linear> loc(#loc188)
|
| 178 |
+
%new_idxs = arith.xori %left_idx_78, %right_idx_80 : tensor<32x16xi32, #linear> loc(#loc189)
|
| 179 |
+
%new_idxs_98 = arith.select %cond_94, %new_idxs, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc190)
|
| 180 |
+
%new_idxs_99 = arith.extsi %tmp2 : tensor<1x16xi16, #linear> to tensor<1x16xi32, #linear> loc(#loc191)
|
| 181 |
+
%new_idxs_100 = tt.broadcast %new_idxs_99 : tensor<1x16xi32, #linear> -> tensor<32x16xi32, #linear> loc(#loc191)
|
| 182 |
+
%new_idxs_101 = arith.xori %new_idxs_100, %new_idxs_98 : tensor<32x16xi32, #linear> loc(#loc191)
|
| 183 |
+
%flip_102 = tt.broadcast %flip_46 : tensor<1x2x1xi32, #linear3> -> tensor<64x2x4xi32, #linear3> loc(#loc147)
|
| 184 |
+
%flip_103 = tt.reshape %flip_102 : tensor<64x2x4xi32, #linear3> -> tensor<32x16xi32, #linear> loc(#loc148)
|
| 185 |
+
%y_104 = tt.reshape %ret_96 : tensor<32x16xi32, #blocked> -> tensor<128x2x2xi32, #linear2> loc(#loc154)
|
| 186 |
+
%ileft_105 = tt.broadcast %left_mask_51 : tensor<1x2x1xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc156)
|
| 187 |
+
%ileft_106 = arith.muli %y_104, %ileft_105 : tensor<128x2x2xi32, #linear2> loc(#loc156)
|
| 188 |
+
%ileft_107 = "tt.reduce"(%ileft_106) <{axis = 1 : i32}> ({
|
| 189 |
+
^bb0(%ileft_419: i32 loc(callsite(#loc1 at #loc157)), %ileft_420: i32 loc(callsite(#loc1 at #loc157))):
|
| 190 |
+
%ileft_421 = arith.addi %ileft_419, %ileft_420 : i32 loc(#loc203)
|
| 191 |
+
tt.reduce.return %ileft_421 : i32 loc(#loc193)
|
| 192 |
+
}) : (tensor<128x2x2xi32, #linear2>) -> tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> loc(#loc193)
|
| 193 |
+
%ileft_108 = tt.expand_dims %ileft_107 {axis = 1 : i32} : tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> -> tensor<128x1x2xi32, #linear2> loc(#loc158)
|
| 194 |
+
%ileft_109 = tt.broadcast %ileft_108 : tensor<128x1x2xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc159)
|
| 195 |
+
%iright_110 = arith.muli %y_104, %flip_48 : tensor<128x2x2xi32, #linear2> loc(#loc160)
|
| 196 |
+
%iright_111 = "tt.reduce"(%iright_110) <{axis = 1 : i32}> ({
|
| 197 |
+
^bb0(%iright_419: i32 loc(callsite(#loc1 at #loc161)), %iright_420: i32 loc(callsite(#loc1 at #loc161))):
|
| 198 |
+
%iright_421 = arith.addi %iright_419, %iright_420 : i32 loc(#loc204)
|
| 199 |
+
tt.reduce.return %iright_421 : i32 loc(#loc195)
|
| 200 |
+
}) : (tensor<128x2x2xi32, #linear2>) -> tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> loc(#loc195)
|
| 201 |
+
%iright_112 = tt.expand_dims %iright_111 {axis = 1 : i32} : tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> -> tensor<128x1x2xi32, #linear2> loc(#loc162)
|
| 202 |
+
%iright_113 = tt.broadcast %iright_112 : tensor<128x1x2xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc163)
|
| 203 |
+
%ileft_114 = tt.reshape %ileft_109 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc164)
|
| 204 |
+
%iright_115 = tt.reshape %iright_113 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc165)
|
| 205 |
+
%y_idx_116 = tt.reshape %new_idxs_101 : tensor<32x16xi32, #linear> -> tensor<128x2x2xi32, #linear2> loc(#loc166)
|
| 206 |
+
%left_idx_117 = arith.muli %y_idx_116, %ileft_105 : tensor<128x2x2xi32, #linear2> loc(#loc168)
|
| 207 |
+
%left_idx_118 = "tt.reduce"(%left_idx_117) <{axis = 1 : i32}> ({
|
| 208 |
+
^bb0(%left_idx_419: i32 loc(callsite(#loc1 at #loc169)), %left_idx_420: i32 loc(callsite(#loc1 at #loc169))):
|
| 209 |
+
%left_idx_421 = arith.addi %left_idx_419, %left_idx_420 : i32 loc(#loc205)
|
| 210 |
+
tt.reduce.return %left_idx_421 : i32 loc(#loc198)
|
| 211 |
+
}) : (tensor<128x2x2xi32, #linear2>) -> tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> loc(#loc198)
|
| 212 |
+
%left_idx_119 = tt.expand_dims %left_idx_118 {axis = 1 : i32} : tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> -> tensor<128x1x2xi32, #linear2> loc(#loc170)
|
| 213 |
+
%left_idx_120 = tt.broadcast %left_idx_119 : tensor<128x1x2xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc171)
|
| 214 |
+
%right_idx_121 = arith.muli %y_idx_116, %flip_48 : tensor<128x2x2xi32, #linear2> loc(#loc173)
|
| 215 |
+
%right_idx_122 = "tt.reduce"(%right_idx_121) <{axis = 1 : i32}> ({
|
| 216 |
+
^bb0(%right_idx_419: i32 loc(callsite(#loc1 at #loc174)), %right_idx_420: i32 loc(callsite(#loc1 at #loc174))):
|
| 217 |
+
%right_idx_421 = arith.addi %right_idx_419, %right_idx_420 : i32 loc(#loc206)
|
| 218 |
+
tt.reduce.return %right_idx_421 : i32 loc(#loc201)
|
| 219 |
+
}) : (tensor<128x2x2xi32, #linear2>) -> tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> loc(#loc201)
|
| 220 |
+
%right_idx_123 = tt.expand_dims %right_idx_122 {axis = 1 : i32} : tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> -> tensor<128x1x2xi32, #linear2> loc(#loc175)
|
| 221 |
+
%right_idx_124 = tt.broadcast %right_idx_123 : tensor<128x1x2xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc176)
|
| 222 |
+
%left_idx_125 = tt.reshape %left_idx_120 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc177)
|
| 223 |
+
%right_idx_126 = tt.reshape %right_idx_124 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc178)
|
| 224 |
+
%cond_127 = arith.cmpi slt, %ileft_114, %iright_115 : tensor<32x16xi32, #linear> loc(#loc179)
|
| 225 |
+
%eq_128 = arith.cmpi eq, %ileft_114, %iright_115 : tensor<32x16xi32, #linear> loc(#loc180)
|
| 226 |
+
%cond_129 = arith.cmpi sgt, %left_idx_125, %right_idx_126 : tensor<32x16xi32, #linear> loc(#loc181)
|
| 227 |
+
%cond_130 = arith.andi %eq_128, %cond_129 : tensor<32x16xi1, #linear> loc(#loc182)
|
| 228 |
+
%cond_131 = arith.ori %cond_127, %cond_130 : tensor<32x16xi1, #linear> loc(#loc183)
|
| 229 |
+
%cond_132 = arith.extui %cond_131 : tensor<32x16xi1, #linear> to tensor<32x16xi32, #linear> loc(#loc184)
|
| 230 |
+
%cond_133 = arith.xori %cond_132, %flip_103 : tensor<32x16xi32, #linear> loc(#loc184)
|
| 231 |
+
%cond_134 = arith.cmpi ne, %cond_133, %cst : tensor<32x16xi32, #linear> loc(#loc185)
|
| 232 |
+
%ret_135 = arith.xori %ileft_114, %iright_115 : tensor<32x16xi32, #linear> loc(#loc186)
|
| 233 |
+
%ret_136 = arith.select %cond_134, %ret_135, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc187)
|
| 234 |
+
%ret_137 = arith.xori %ret_97, %ret_136 : tensor<32x16xi32, #linear> loc(#loc188)
|
| 235 |
+
%new_idxs_138 = arith.xori %left_idx_125, %right_idx_126 : tensor<32x16xi32, #linear> loc(#loc189)
|
| 236 |
+
%new_idxs_139 = arith.select %cond_134, %new_idxs_138, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc190)
|
| 237 |
+
%new_idxs_140 = arith.xori %new_idxs_101, %new_idxs_139 : tensor<32x16xi32, #linear> loc(#loc191)
|
| 238 |
+
%y_141 = tt.reshape %ret_137 : tensor<32x16xi32, #linear> -> tensor<256x2x1xi32, #linear1> loc(#loc154)
|
| 239 |
+
%ileft_142 = arith.muli %y_141, %ileft : tensor<256x2x1xi32, #linear1> loc(#loc156)
|
| 240 |
+
%ileft_143 = "tt.reduce"(%ileft_142) <{axis = 1 : i32}> ({
|
| 241 |
+
^bb0(%ileft_419: i32 loc(callsite(#loc1 at #loc157)), %ileft_420: i32 loc(callsite(#loc1 at #loc157))):
|
| 242 |
+
%ileft_421 = arith.addi %ileft_419, %ileft_420 : i32 loc(#loc203)
|
| 243 |
+
tt.reduce.return %ileft_421 : i32 loc(#loc193)
|
| 244 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc193)
|
| 245 |
+
%ileft_144 = tt.expand_dims %ileft_143 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc158)
|
| 246 |
+
%ileft_145 = tt.broadcast %ileft_144 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc159)
|
| 247 |
+
%iright_146 = arith.muli %y_141, %iright : tensor<256x2x1xi32, #linear1> loc(#loc160)
|
| 248 |
+
%iright_147 = "tt.reduce"(%iright_146) <{axis = 1 : i32}> ({
|
| 249 |
+
^bb0(%iright_419: i32 loc(callsite(#loc1 at #loc161)), %iright_420: i32 loc(callsite(#loc1 at #loc161))):
|
| 250 |
+
%iright_421 = arith.addi %iright_419, %iright_420 : i32 loc(#loc204)
|
| 251 |
+
tt.reduce.return %iright_421 : i32 loc(#loc195)
|
| 252 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc195)
|
| 253 |
+
%iright_148 = tt.expand_dims %iright_147 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc162)
|
| 254 |
+
%iright_149 = tt.broadcast %iright_148 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc163)
|
| 255 |
+
%ileft_150 = tt.reshape %ileft_145 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc164)
|
| 256 |
+
%iright_151 = tt.reshape %iright_149 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc165)
|
| 257 |
+
%y_idx_152 = tt.reshape %new_idxs_140 : tensor<32x16xi32, #linear> -> tensor<256x2x1xi32, #linear1> loc(#loc166)
|
| 258 |
+
%left_idx_153 = arith.muli %y_idx_152, %ileft : tensor<256x2x1xi32, #linear1> loc(#loc168)
|
| 259 |
+
%left_idx_154 = "tt.reduce"(%left_idx_153) <{axis = 1 : i32}> ({
|
| 260 |
+
^bb0(%left_idx_419: i32 loc(callsite(#loc1 at #loc169)), %left_idx_420: i32 loc(callsite(#loc1 at #loc169))):
|
| 261 |
+
%left_idx_421 = arith.addi %left_idx_419, %left_idx_420 : i32 loc(#loc205)
|
| 262 |
+
tt.reduce.return %left_idx_421 : i32 loc(#loc198)
|
| 263 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc198)
|
| 264 |
+
%left_idx_155 = tt.expand_dims %left_idx_154 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc170)
|
| 265 |
+
%left_idx_156 = tt.broadcast %left_idx_155 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc171)
|
| 266 |
+
%right_idx_157 = arith.muli %y_idx_152, %iright : tensor<256x2x1xi32, #linear1> loc(#loc173)
|
| 267 |
+
%right_idx_158 = "tt.reduce"(%right_idx_157) <{axis = 1 : i32}> ({
|
| 268 |
+
^bb0(%right_idx_419: i32 loc(callsite(#loc1 at #loc174)), %right_idx_420: i32 loc(callsite(#loc1 at #loc174))):
|
| 269 |
+
%right_idx_421 = arith.addi %right_idx_419, %right_idx_420 : i32 loc(#loc206)
|
| 270 |
+
tt.reduce.return %right_idx_421 : i32 loc(#loc201)
|
| 271 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc201)
|
| 272 |
+
%right_idx_159 = tt.expand_dims %right_idx_158 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc175)
|
| 273 |
+
%right_idx_160 = tt.broadcast %right_idx_159 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc176)
|
| 274 |
+
%left_idx_161 = tt.reshape %left_idx_156 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc177)
|
| 275 |
+
%right_idx_162 = tt.reshape %right_idx_160 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc178)
|
| 276 |
+
%cond_163 = arith.cmpi slt, %ileft_150, %iright_151 : tensor<32x16xi32, #linear> loc(#loc179)
|
| 277 |
+
%eq_164 = arith.cmpi eq, %ileft_150, %iright_151 : tensor<32x16xi32, #linear> loc(#loc180)
|
| 278 |
+
%cond_165 = arith.cmpi sgt, %left_idx_161, %right_idx_162 : tensor<32x16xi32, #linear> loc(#loc181)
|
| 279 |
+
%cond_166 = arith.andi %eq_164, %cond_165 : tensor<32x16xi1, #linear> loc(#loc182)
|
| 280 |
+
%cond_167 = arith.ori %cond_163, %cond_166 : tensor<32x16xi1, #linear> loc(#loc183)
|
| 281 |
+
%cond_168 = arith.extui %cond_167 : tensor<32x16xi1, #linear> to tensor<32x16xi32, #linear> loc(#loc184)
|
| 282 |
+
%cond_169 = arith.xori %cond_168, %flip_103 : tensor<32x16xi32, #linear> loc(#loc184)
|
| 283 |
+
%cond_170 = arith.cmpi ne, %cond_169, %cst : tensor<32x16xi32, #linear> loc(#loc185)
|
| 284 |
+
%ret_171 = arith.xori %ileft_150, %iright_151 : tensor<32x16xi32, #linear> loc(#loc186)
|
| 285 |
+
%ret_172 = arith.select %cond_170, %ret_171, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc187)
|
| 286 |
+
%ret_173 = arith.xori %ret_137, %ret_172 : tensor<32x16xi32, #linear> loc(#loc188)
|
| 287 |
+
%new_idxs_174 = arith.xori %left_idx_161, %right_idx_162 : tensor<32x16xi32, #linear> loc(#loc189)
|
| 288 |
+
%new_idxs_175 = arith.select %cond_170, %new_idxs_174, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc190)
|
| 289 |
+
%new_idxs_176 = arith.xori %new_idxs_140, %new_idxs_175 : tensor<32x16xi32, #linear> loc(#loc191)
|
| 290 |
+
%flip_177 = tt.broadcast %flip_47 : tensor<1x2x1xi32, #linear4> -> tensor<32x2x8xi32, #linear4> loc(#loc147)
|
| 291 |
+
%flip_178 = tt.reshape %flip_177 : tensor<32x2x8xi32, #linear4> -> tensor<32x16xi32, #linear> loc(#loc148)
|
| 292 |
+
%y_179 = tt.reshape %ret_173 : tensor<32x16xi32, #linear> -> tensor<64x2x4xi32, #linear3> loc(#loc154)
|
| 293 |
+
%ileft_180 = tt.broadcast %left_mask_52 : tensor<1x2x1xi32, #linear3> -> tensor<64x2x4xi32, #linear3> loc(#loc156)
|
| 294 |
+
%ileft_181 = arith.muli %y_179, %ileft_180 : tensor<64x2x4xi32, #linear3> loc(#loc156)
|
| 295 |
+
%ileft_182 = "tt.reduce"(%ileft_181) <{axis = 1 : i32}> ({
|
| 296 |
+
^bb0(%ileft_419: i32 loc(callsite(#loc1 at #loc157)), %ileft_420: i32 loc(callsite(#loc1 at #loc157))):
|
| 297 |
+
%ileft_421 = arith.addi %ileft_419, %ileft_420 : i32 loc(#loc203)
|
| 298 |
+
tt.reduce.return %ileft_421 : i32 loc(#loc193)
|
| 299 |
+
}) : (tensor<64x2x4xi32, #linear3>) -> tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> loc(#loc193)
|
| 300 |
+
%ileft_183 = tt.expand_dims %ileft_182 {axis = 1 : i32} : tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> -> tensor<64x1x4xi32, #linear3> loc(#loc158)
|
| 301 |
+
%ileft_184 = tt.broadcast %ileft_183 : tensor<64x1x4xi32, #linear3> -> tensor<64x2x4xi32, #linear3> loc(#loc159)
|
| 302 |
+
%iright_185 = arith.muli %y_179, %flip_102 : tensor<64x2x4xi32, #linear3> loc(#loc160)
|
| 303 |
+
%iright_186 = "tt.reduce"(%iright_185) <{axis = 1 : i32}> ({
|
| 304 |
+
^bb0(%iright_419: i32 loc(callsite(#loc1 at #loc161)), %iright_420: i32 loc(callsite(#loc1 at #loc161))):
|
| 305 |
+
%iright_421 = arith.addi %iright_419, %iright_420 : i32 loc(#loc204)
|
| 306 |
+
tt.reduce.return %iright_421 : i32 loc(#loc195)
|
| 307 |
+
}) : (tensor<64x2x4xi32, #linear3>) -> tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> loc(#loc195)
|
| 308 |
+
%iright_187 = tt.expand_dims %iright_186 {axis = 1 : i32} : tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> -> tensor<64x1x4xi32, #linear3> loc(#loc162)
|
| 309 |
+
%iright_188 = tt.broadcast %iright_187 : tensor<64x1x4xi32, #linear3> -> tensor<64x2x4xi32, #linear3> loc(#loc163)
|
| 310 |
+
%ileft_189 = tt.reshape %ileft_184 : tensor<64x2x4xi32, #linear3> -> tensor<32x16xi32, #linear> loc(#loc164)
|
| 311 |
+
%iright_190 = tt.reshape %iright_188 : tensor<64x2x4xi32, #linear3> -> tensor<32x16xi32, #linear> loc(#loc165)
|
| 312 |
+
%y_idx_191 = tt.reshape %new_idxs_176 : tensor<32x16xi32, #linear> -> tensor<64x2x4xi32, #linear3> loc(#loc166)
|
| 313 |
+
%left_idx_192 = arith.muli %y_idx_191, %ileft_180 : tensor<64x2x4xi32, #linear3> loc(#loc168)
|
| 314 |
+
%left_idx_193 = "tt.reduce"(%left_idx_192) <{axis = 1 : i32}> ({
|
| 315 |
+
^bb0(%left_idx_419: i32 loc(callsite(#loc1 at #loc169)), %left_idx_420: i32 loc(callsite(#loc1 at #loc169))):
|
| 316 |
+
%left_idx_421 = arith.addi %left_idx_419, %left_idx_420 : i32 loc(#loc205)
|
| 317 |
+
tt.reduce.return %left_idx_421 : i32 loc(#loc198)
|
| 318 |
+
}) : (tensor<64x2x4xi32, #linear3>) -> tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> loc(#loc198)
|
| 319 |
+
%left_idx_194 = tt.expand_dims %left_idx_193 {axis = 1 : i32} : tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> -> tensor<64x1x4xi32, #linear3> loc(#loc170)
|
| 320 |
+
%left_idx_195 = tt.broadcast %left_idx_194 : tensor<64x1x4xi32, #linear3> -> tensor<64x2x4xi32, #linear3> loc(#loc171)
|
| 321 |
+
%right_idx_196 = arith.muli %y_idx_191, %flip_102 : tensor<64x2x4xi32, #linear3> loc(#loc173)
|
| 322 |
+
%right_idx_197 = "tt.reduce"(%right_idx_196) <{axis = 1 : i32}> ({
|
| 323 |
+
^bb0(%right_idx_419: i32 loc(callsite(#loc1 at #loc174)), %right_idx_420: i32 loc(callsite(#loc1 at #loc174))):
|
| 324 |
+
%right_idx_421 = arith.addi %right_idx_419, %right_idx_420 : i32 loc(#loc206)
|
| 325 |
+
tt.reduce.return %right_idx_421 : i32 loc(#loc201)
|
| 326 |
+
}) : (tensor<64x2x4xi32, #linear3>) -> tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> loc(#loc201)
|
| 327 |
+
%right_idx_198 = tt.expand_dims %right_idx_197 {axis = 1 : i32} : tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> -> tensor<64x1x4xi32, #linear3> loc(#loc175)
|
| 328 |
+
%right_idx_199 = tt.broadcast %right_idx_198 : tensor<64x1x4xi32, #linear3> -> tensor<64x2x4xi32, #linear3> loc(#loc176)
|
| 329 |
+
%left_idx_200 = tt.reshape %left_idx_195 : tensor<64x2x4xi32, #linear3> -> tensor<32x16xi32, #linear> loc(#loc177)
|
| 330 |
+
%right_idx_201 = tt.reshape %right_idx_199 : tensor<64x2x4xi32, #linear3> -> tensor<32x16xi32, #linear> loc(#loc178)
|
| 331 |
+
%cond_202 = arith.cmpi slt, %ileft_189, %iright_190 : tensor<32x16xi32, #linear> loc(#loc179)
|
| 332 |
+
%eq_203 = arith.cmpi eq, %ileft_189, %iright_190 : tensor<32x16xi32, #linear> loc(#loc180)
|
| 333 |
+
%cond_204 = arith.cmpi sgt, %left_idx_200, %right_idx_201 : tensor<32x16xi32, #linear> loc(#loc181)
|
| 334 |
+
%cond_205 = arith.andi %eq_203, %cond_204 : tensor<32x16xi1, #linear> loc(#loc182)
|
| 335 |
+
%cond_206 = arith.ori %cond_202, %cond_205 : tensor<32x16xi1, #linear> loc(#loc183)
|
| 336 |
+
%cond_207 = arith.extui %cond_206 : tensor<32x16xi1, #linear> to tensor<32x16xi32, #linear> loc(#loc184)
|
| 337 |
+
%cond_208 = arith.xori %cond_207, %flip_178 : tensor<32x16xi32, #linear> loc(#loc184)
|
| 338 |
+
%cond_209 = arith.cmpi ne, %cond_208, %cst : tensor<32x16xi32, #linear> loc(#loc185)
|
| 339 |
+
%ret_210 = arith.xori %ileft_189, %iright_190 : tensor<32x16xi32, #linear> loc(#loc186)
|
| 340 |
+
%ret_211 = arith.select %cond_209, %ret_210, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc187)
|
| 341 |
+
%ret_212 = arith.xori %ret_173, %ret_211 : tensor<32x16xi32, #linear> loc(#loc188)
|
| 342 |
+
%new_idxs_213 = arith.xori %left_idx_200, %right_idx_201 : tensor<32x16xi32, #linear> loc(#loc189)
|
| 343 |
+
%new_idxs_214 = arith.select %cond_209, %new_idxs_213, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc190)
|
| 344 |
+
%new_idxs_215 = arith.xori %new_idxs_176, %new_idxs_214 : tensor<32x16xi32, #linear> loc(#loc191)
|
| 345 |
+
%y_216 = tt.reshape %ret_212 : tensor<32x16xi32, #linear> -> tensor<128x2x2xi32, #linear2> loc(#loc154)
|
| 346 |
+
%ileft_217 = arith.muli %y_216, %ileft_105 : tensor<128x2x2xi32, #linear2> loc(#loc156)
|
| 347 |
+
%ileft_218 = "tt.reduce"(%ileft_217) <{axis = 1 : i32}> ({
|
| 348 |
+
^bb0(%ileft_419: i32 loc(callsite(#loc1 at #loc157)), %ileft_420: i32 loc(callsite(#loc1 at #loc157))):
|
| 349 |
+
%ileft_421 = arith.addi %ileft_419, %ileft_420 : i32 loc(#loc203)
|
| 350 |
+
tt.reduce.return %ileft_421 : i32 loc(#loc193)
|
| 351 |
+
}) : (tensor<128x2x2xi32, #linear2>) -> tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> loc(#loc193)
|
| 352 |
+
%ileft_219 = tt.expand_dims %ileft_218 {axis = 1 : i32} : tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> -> tensor<128x1x2xi32, #linear2> loc(#loc158)
|
| 353 |
+
%ileft_220 = tt.broadcast %ileft_219 : tensor<128x1x2xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc159)
|
| 354 |
+
%iright_221 = arith.muli %y_216, %flip_48 : tensor<128x2x2xi32, #linear2> loc(#loc160)
|
| 355 |
+
%iright_222 = "tt.reduce"(%iright_221) <{axis = 1 : i32}> ({
|
| 356 |
+
^bb0(%iright_419: i32 loc(callsite(#loc1 at #loc161)), %iright_420: i32 loc(callsite(#loc1 at #loc161))):
|
| 357 |
+
%iright_421 = arith.addi %iright_419, %iright_420 : i32 loc(#loc204)
|
| 358 |
+
tt.reduce.return %iright_421 : i32 loc(#loc195)
|
| 359 |
+
}) : (tensor<128x2x2xi32, #linear2>) -> tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> loc(#loc195)
|
| 360 |
+
%iright_223 = tt.expand_dims %iright_222 {axis = 1 : i32} : tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> -> tensor<128x1x2xi32, #linear2> loc(#loc162)
|
| 361 |
+
%iright_224 = tt.broadcast %iright_223 : tensor<128x1x2xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc163)
|
| 362 |
+
%ileft_225 = tt.reshape %ileft_220 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc164)
|
| 363 |
+
%iright_226 = tt.reshape %iright_224 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc165)
|
| 364 |
+
%y_idx_227 = tt.reshape %new_idxs_215 : tensor<32x16xi32, #linear> -> tensor<128x2x2xi32, #linear2> loc(#loc166)
|
| 365 |
+
%left_idx_228 = arith.muli %y_idx_227, %ileft_105 : tensor<128x2x2xi32, #linear2> loc(#loc168)
|
| 366 |
+
%left_idx_229 = "tt.reduce"(%left_idx_228) <{axis = 1 : i32}> ({
|
| 367 |
+
^bb0(%left_idx_419: i32 loc(callsite(#loc1 at #loc169)), %left_idx_420: i32 loc(callsite(#loc1 at #loc169))):
|
| 368 |
+
%left_idx_421 = arith.addi %left_idx_419, %left_idx_420 : i32 loc(#loc205)
|
| 369 |
+
tt.reduce.return %left_idx_421 : i32 loc(#loc198)
|
| 370 |
+
}) : (tensor<128x2x2xi32, #linear2>) -> tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> loc(#loc198)
|
| 371 |
+
%left_idx_230 = tt.expand_dims %left_idx_229 {axis = 1 : i32} : tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> -> tensor<128x1x2xi32, #linear2> loc(#loc170)
|
| 372 |
+
%left_idx_231 = tt.broadcast %left_idx_230 : tensor<128x1x2xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc171)
|
| 373 |
+
%right_idx_232 = arith.muli %y_idx_227, %flip_48 : tensor<128x2x2xi32, #linear2> loc(#loc173)
|
| 374 |
+
%right_idx_233 = "tt.reduce"(%right_idx_232) <{axis = 1 : i32}> ({
|
| 375 |
+
^bb0(%right_idx_419: i32 loc(callsite(#loc1 at #loc174)), %right_idx_420: i32 loc(callsite(#loc1 at #loc174))):
|
| 376 |
+
%right_idx_421 = arith.addi %right_idx_419, %right_idx_420 : i32 loc(#loc206)
|
| 377 |
+
tt.reduce.return %right_idx_421 : i32 loc(#loc201)
|
| 378 |
+
}) : (tensor<128x2x2xi32, #linear2>) -> tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> loc(#loc201)
|
| 379 |
+
%right_idx_234 = tt.expand_dims %right_idx_233 {axis = 1 : i32} : tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> -> tensor<128x1x2xi32, #linear2> loc(#loc175)
|
| 380 |
+
%right_idx_235 = tt.broadcast %right_idx_234 : tensor<128x1x2xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc176)
|
| 381 |
+
%left_idx_236 = tt.reshape %left_idx_231 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc177)
|
| 382 |
+
%right_idx_237 = tt.reshape %right_idx_235 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc178)
|
| 383 |
+
%cond_238 = arith.cmpi slt, %ileft_225, %iright_226 : tensor<32x16xi32, #linear> loc(#loc179)
|
| 384 |
+
%eq_239 = arith.cmpi eq, %ileft_225, %iright_226 : tensor<32x16xi32, #linear> loc(#loc180)
|
| 385 |
+
%cond_240 = arith.cmpi sgt, %left_idx_236, %right_idx_237 : tensor<32x16xi32, #linear> loc(#loc181)
|
| 386 |
+
%cond_241 = arith.andi %eq_239, %cond_240 : tensor<32x16xi1, #linear> loc(#loc182)
|
| 387 |
+
%cond_242 = arith.ori %cond_238, %cond_241 : tensor<32x16xi1, #linear> loc(#loc183)
|
| 388 |
+
%cond_243 = arith.extui %cond_242 : tensor<32x16xi1, #linear> to tensor<32x16xi32, #linear> loc(#loc184)
|
| 389 |
+
%cond_244 = arith.xori %cond_243, %flip_178 : tensor<32x16xi32, #linear> loc(#loc184)
|
| 390 |
+
%cond_245 = arith.cmpi ne, %cond_244, %cst : tensor<32x16xi32, #linear> loc(#loc185)
|
| 391 |
+
%ret_246 = arith.xori %ileft_225, %iright_226 : tensor<32x16xi32, #linear> loc(#loc186)
|
| 392 |
+
%ret_247 = arith.select %cond_245, %ret_246, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc187)
|
| 393 |
+
%ret_248 = arith.xori %ret_212, %ret_247 : tensor<32x16xi32, #linear> loc(#loc188)
|
| 394 |
+
%new_idxs_249 = arith.xori %left_idx_236, %right_idx_237 : tensor<32x16xi32, #linear> loc(#loc189)
|
| 395 |
+
%new_idxs_250 = arith.select %cond_245, %new_idxs_249, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc190)
|
| 396 |
+
%new_idxs_251 = arith.xori %new_idxs_215, %new_idxs_250 : tensor<32x16xi32, #linear> loc(#loc191)
|
| 397 |
+
%y_252 = tt.reshape %ret_248 : tensor<32x16xi32, #linear> -> tensor<256x2x1xi32, #linear1> loc(#loc154)
|
| 398 |
+
%ileft_253 = arith.muli %y_252, %ileft : tensor<256x2x1xi32, #linear1> loc(#loc156)
|
| 399 |
+
%ileft_254 = "tt.reduce"(%ileft_253) <{axis = 1 : i32}> ({
|
| 400 |
+
^bb0(%ileft_419: i32 loc(callsite(#loc1 at #loc157)), %ileft_420: i32 loc(callsite(#loc1 at #loc157))):
|
| 401 |
+
%ileft_421 = arith.addi %ileft_419, %ileft_420 : i32 loc(#loc203)
|
| 402 |
+
tt.reduce.return %ileft_421 : i32 loc(#loc193)
|
| 403 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc193)
|
| 404 |
+
%ileft_255 = tt.expand_dims %ileft_254 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc158)
|
| 405 |
+
%ileft_256 = tt.broadcast %ileft_255 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc159)
|
| 406 |
+
%iright_257 = arith.muli %y_252, %iright : tensor<256x2x1xi32, #linear1> loc(#loc160)
|
| 407 |
+
%iright_258 = "tt.reduce"(%iright_257) <{axis = 1 : i32}> ({
|
| 408 |
+
^bb0(%iright_419: i32 loc(callsite(#loc1 at #loc161)), %iright_420: i32 loc(callsite(#loc1 at #loc161))):
|
| 409 |
+
%iright_421 = arith.addi %iright_419, %iright_420 : i32 loc(#loc204)
|
| 410 |
+
tt.reduce.return %iright_421 : i32 loc(#loc195)
|
| 411 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc195)
|
| 412 |
+
%iright_259 = tt.expand_dims %iright_258 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc162)
|
| 413 |
+
%iright_260 = tt.broadcast %iright_259 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc163)
|
| 414 |
+
%ileft_261 = tt.reshape %ileft_256 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc164)
|
| 415 |
+
%iright_262 = tt.reshape %iright_260 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc165)
|
| 416 |
+
%y_idx_263 = tt.reshape %new_idxs_251 : tensor<32x16xi32, #linear> -> tensor<256x2x1xi32, #linear1> loc(#loc166)
|
| 417 |
+
%left_idx_264 = arith.muli %y_idx_263, %ileft : tensor<256x2x1xi32, #linear1> loc(#loc168)
|
| 418 |
+
%left_idx_265 = "tt.reduce"(%left_idx_264) <{axis = 1 : i32}> ({
|
| 419 |
+
^bb0(%left_idx_419: i32 loc(callsite(#loc1 at #loc169)), %left_idx_420: i32 loc(callsite(#loc1 at #loc169))):
|
| 420 |
+
%left_idx_421 = arith.addi %left_idx_419, %left_idx_420 : i32 loc(#loc205)
|
| 421 |
+
tt.reduce.return %left_idx_421 : i32 loc(#loc198)
|
| 422 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc198)
|
| 423 |
+
%left_idx_266 = tt.expand_dims %left_idx_265 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc170)
|
| 424 |
+
%left_idx_267 = tt.broadcast %left_idx_266 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc171)
|
| 425 |
+
%right_idx_268 = arith.muli %y_idx_263, %iright : tensor<256x2x1xi32, #linear1> loc(#loc173)
|
| 426 |
+
%right_idx_269 = "tt.reduce"(%right_idx_268) <{axis = 1 : i32}> ({
|
| 427 |
+
^bb0(%right_idx_419: i32 loc(callsite(#loc1 at #loc174)), %right_idx_420: i32 loc(callsite(#loc1 at #loc174))):
|
| 428 |
+
%right_idx_421 = arith.addi %right_idx_419, %right_idx_420 : i32 loc(#loc206)
|
| 429 |
+
tt.reduce.return %right_idx_421 : i32 loc(#loc201)
|
| 430 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc201)
|
| 431 |
+
%right_idx_270 = tt.expand_dims %right_idx_269 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc175)
|
| 432 |
+
%right_idx_271 = tt.broadcast %right_idx_270 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc176)
|
| 433 |
+
%left_idx_272 = tt.reshape %left_idx_267 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc177)
|
| 434 |
+
%right_idx_273 = tt.reshape %right_idx_271 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc178)
|
| 435 |
+
%cond_274 = arith.cmpi slt, %ileft_261, %iright_262 : tensor<32x16xi32, #linear> loc(#loc179)
|
| 436 |
+
%eq_275 = arith.cmpi eq, %ileft_261, %iright_262 : tensor<32x16xi32, #linear> loc(#loc180)
|
| 437 |
+
%cond_276 = arith.cmpi sgt, %left_idx_272, %right_idx_273 : tensor<32x16xi32, #linear> loc(#loc181)
|
| 438 |
+
%cond_277 = arith.andi %eq_275, %cond_276 : tensor<32x16xi1, #linear> loc(#loc182)
|
| 439 |
+
%cond_278 = arith.ori %cond_274, %cond_277 : tensor<32x16xi1, #linear> loc(#loc183)
|
| 440 |
+
%cond_279 = arith.extui %cond_278 : tensor<32x16xi1, #linear> to tensor<32x16xi32, #linear> loc(#loc184)
|
| 441 |
+
%cond_280 = arith.xori %cond_279, %flip_178 : tensor<32x16xi32, #linear> loc(#loc184)
|
| 442 |
+
%cond_281 = arith.cmpi ne, %cond_280, %cst : tensor<32x16xi32, #linear> loc(#loc185)
|
| 443 |
+
%ret_282 = arith.xori %ileft_261, %iright_262 : tensor<32x16xi32, #linear> loc(#loc186)
|
| 444 |
+
%ret_283 = arith.select %cond_281, %ret_282, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc187)
|
| 445 |
+
%ret_284 = arith.xori %ret_248, %ret_283 : tensor<32x16xi32, #linear> loc(#loc188)
|
| 446 |
+
%new_idxs_285 = arith.xori %left_idx_272, %right_idx_273 : tensor<32x16xi32, #linear> loc(#loc189)
|
| 447 |
+
%new_idxs_286 = arith.select %cond_281, %new_idxs_285, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc190)
|
| 448 |
+
%new_idxs_287 = arith.xori %new_idxs_251, %new_idxs_286 : tensor<32x16xi32, #linear> loc(#loc191)
|
| 449 |
+
%y_288 = tt.reshape %ret_284 : tensor<32x16xi32, #linear> -> tensor<32x2x8xi32, #linear4> loc(#loc154)
|
| 450 |
+
%ileft_289 = tt.broadcast %left_mask_53 : tensor<1x2x1xi32, #linear4> -> tensor<32x2x8xi32, #linear4> loc(#loc156)
|
| 451 |
+
%ileft_290 = arith.muli %y_288, %ileft_289 : tensor<32x2x8xi32, #linear4> loc(#loc156)
|
| 452 |
+
%ileft_291 = "tt.reduce"(%ileft_290) <{axis = 1 : i32}> ({
|
| 453 |
+
^bb0(%ileft_419: i32 loc(callsite(#loc1 at #loc157)), %ileft_420: i32 loc(callsite(#loc1 at #loc157))):
|
| 454 |
+
%ileft_421 = arith.addi %ileft_419, %ileft_420 : i32 loc(#loc203)
|
| 455 |
+
tt.reduce.return %ileft_421 : i32 loc(#loc193)
|
| 456 |
+
}) : (tensor<32x2x8xi32, #linear4>) -> tensor<32x8xi32, #ttg.slice<{dim = 1, parent = #linear4}>> loc(#loc193)
|
| 457 |
+
%ileft_292 = tt.expand_dims %ileft_291 {axis = 1 : i32} : tensor<32x8xi32, #ttg.slice<{dim = 1, parent = #linear4}>> -> tensor<32x1x8xi32, #linear4> loc(#loc158)
|
| 458 |
+
%ileft_293 = tt.broadcast %ileft_292 : tensor<32x1x8xi32, #linear4> -> tensor<32x2x8xi32, #linear4> loc(#loc159)
|
| 459 |
+
%iright_294 = arith.muli %y_288, %flip_177 : tensor<32x2x8xi32, #linear4> loc(#loc160)
|
| 460 |
+
%iright_295 = "tt.reduce"(%iright_294) <{axis = 1 : i32}> ({
|
| 461 |
+
^bb0(%iright_419: i32 loc(callsite(#loc1 at #loc161)), %iright_420: i32 loc(callsite(#loc1 at #loc161))):
|
| 462 |
+
%iright_421 = arith.addi %iright_419, %iright_420 : i32 loc(#loc204)
|
| 463 |
+
tt.reduce.return %iright_421 : i32 loc(#loc195)
|
| 464 |
+
}) : (tensor<32x2x8xi32, #linear4>) -> tensor<32x8xi32, #ttg.slice<{dim = 1, parent = #linear4}>> loc(#loc195)
|
| 465 |
+
%iright_296 = tt.expand_dims %iright_295 {axis = 1 : i32} : tensor<32x8xi32, #ttg.slice<{dim = 1, parent = #linear4}>> -> tensor<32x1x8xi32, #linear4> loc(#loc162)
|
| 466 |
+
%iright_297 = tt.broadcast %iright_296 : tensor<32x1x8xi32, #linear4> -> tensor<32x2x8xi32, #linear4> loc(#loc163)
|
| 467 |
+
%ileft_298 = tt.reshape %ileft_293 : tensor<32x2x8xi32, #linear4> -> tensor<32x16xi32, #linear> loc(#loc164)
|
| 468 |
+
%iright_299 = tt.reshape %iright_297 : tensor<32x2x8xi32, #linear4> -> tensor<32x16xi32, #linear> loc(#loc165)
|
| 469 |
+
%y_idx_300 = tt.reshape %new_idxs_287 : tensor<32x16xi32, #linear> -> tensor<32x2x8xi32, #linear4> loc(#loc166)
|
| 470 |
+
%left_idx_301 = arith.muli %y_idx_300, %ileft_289 : tensor<32x2x8xi32, #linear4> loc(#loc168)
|
| 471 |
+
%left_idx_302 = "tt.reduce"(%left_idx_301) <{axis = 1 : i32}> ({
|
| 472 |
+
^bb0(%left_idx_419: i32 loc(callsite(#loc1 at #loc169)), %left_idx_420: i32 loc(callsite(#loc1 at #loc169))):
|
| 473 |
+
%left_idx_421 = arith.addi %left_idx_419, %left_idx_420 : i32 loc(#loc205)
|
| 474 |
+
tt.reduce.return %left_idx_421 : i32 loc(#loc198)
|
| 475 |
+
}) : (tensor<32x2x8xi32, #linear4>) -> tensor<32x8xi32, #ttg.slice<{dim = 1, parent = #linear4}>> loc(#loc198)
|
| 476 |
+
%left_idx_303 = tt.expand_dims %left_idx_302 {axis = 1 : i32} : tensor<32x8xi32, #ttg.slice<{dim = 1, parent = #linear4}>> -> tensor<32x1x8xi32, #linear4> loc(#loc170)
|
| 477 |
+
%left_idx_304 = tt.broadcast %left_idx_303 : tensor<32x1x8xi32, #linear4> -> tensor<32x2x8xi32, #linear4> loc(#loc171)
|
| 478 |
+
%right_idx_305 = arith.muli %y_idx_300, %flip_177 : tensor<32x2x8xi32, #linear4> loc(#loc173)
|
| 479 |
+
%right_idx_306 = "tt.reduce"(%right_idx_305) <{axis = 1 : i32}> ({
|
| 480 |
+
^bb0(%right_idx_419: i32 loc(callsite(#loc1 at #loc174)), %right_idx_420: i32 loc(callsite(#loc1 at #loc174))):
|
| 481 |
+
%right_idx_421 = arith.addi %right_idx_419, %right_idx_420 : i32 loc(#loc206)
|
| 482 |
+
tt.reduce.return %right_idx_421 : i32 loc(#loc201)
|
| 483 |
+
}) : (tensor<32x2x8xi32, #linear4>) -> tensor<32x8xi32, #ttg.slice<{dim = 1, parent = #linear4}>> loc(#loc201)
|
| 484 |
+
%right_idx_307 = tt.expand_dims %right_idx_306 {axis = 1 : i32} : tensor<32x8xi32, #ttg.slice<{dim = 1, parent = #linear4}>> -> tensor<32x1x8xi32, #linear4> loc(#loc175)
|
| 485 |
+
%right_idx_308 = tt.broadcast %right_idx_307 : tensor<32x1x8xi32, #linear4> -> tensor<32x2x8xi32, #linear4> loc(#loc176)
|
| 486 |
+
%left_idx_309 = tt.reshape %left_idx_304 : tensor<32x2x8xi32, #linear4> -> tensor<32x16xi32, #linear> loc(#loc177)
|
| 487 |
+
%right_idx_310 = tt.reshape %right_idx_308 : tensor<32x2x8xi32, #linear4> -> tensor<32x16xi32, #linear> loc(#loc178)
|
| 488 |
+
%cond_311 = arith.cmpi slt, %ileft_298, %iright_299 : tensor<32x16xi32, #linear> loc(#loc179)
|
| 489 |
+
%eq_312 = arith.cmpi eq, %ileft_298, %iright_299 : tensor<32x16xi32, #linear> loc(#loc180)
|
| 490 |
+
%cond_313 = arith.cmpi sgt, %left_idx_309, %right_idx_310 : tensor<32x16xi32, #linear> loc(#loc181)
|
| 491 |
+
%cond_314 = arith.andi %eq_312, %cond_313 : tensor<32x16xi1, #linear> loc(#loc182)
|
| 492 |
+
%cond_315 = arith.ori %cond_311, %cond_314 : tensor<32x16xi1, #linear> loc(#loc183)
|
| 493 |
+
%ret_316 = arith.xori %ileft_298, %iright_299 : tensor<32x16xi32, #linear> loc(#loc186)
|
| 494 |
+
%ret_317 = arith.select %cond_315, %ret_316, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc187)
|
| 495 |
+
%ret_318 = arith.xori %ret_284, %ret_317 : tensor<32x16xi32, #linear> loc(#loc188)
|
| 496 |
+
%new_idxs_319 = arith.xori %left_idx_309, %right_idx_310 : tensor<32x16xi32, #linear> loc(#loc189)
|
| 497 |
+
%new_idxs_320 = arith.select %cond_315, %new_idxs_319, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc190)
|
| 498 |
+
%new_idxs_321 = arith.xori %new_idxs_287, %new_idxs_320 : tensor<32x16xi32, #linear> loc(#loc191)
|
| 499 |
+
%y_322 = tt.reshape %ret_318 : tensor<32x16xi32, #linear> -> tensor<64x2x4xi32, #linear3> loc(#loc154)
|
| 500 |
+
%ileft_323 = arith.muli %y_322, %ileft_180 : tensor<64x2x4xi32, #linear3> loc(#loc156)
|
| 501 |
+
%ileft_324 = "tt.reduce"(%ileft_323) <{axis = 1 : i32}> ({
|
| 502 |
+
^bb0(%ileft_419: i32 loc(callsite(#loc1 at #loc157)), %ileft_420: i32 loc(callsite(#loc1 at #loc157))):
|
| 503 |
+
%ileft_421 = arith.addi %ileft_419, %ileft_420 : i32 loc(#loc203)
|
| 504 |
+
tt.reduce.return %ileft_421 : i32 loc(#loc193)
|
| 505 |
+
}) : (tensor<64x2x4xi32, #linear3>) -> tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> loc(#loc193)
|
| 506 |
+
%ileft_325 = tt.expand_dims %ileft_324 {axis = 1 : i32} : tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> -> tensor<64x1x4xi32, #linear3> loc(#loc158)
|
| 507 |
+
%ileft_326 = tt.broadcast %ileft_325 : tensor<64x1x4xi32, #linear3> -> tensor<64x2x4xi32, #linear3> loc(#loc159)
|
| 508 |
+
%iright_327 = arith.muli %y_322, %flip_102 : tensor<64x2x4xi32, #linear3> loc(#loc160)
|
| 509 |
+
%iright_328 = "tt.reduce"(%iright_327) <{axis = 1 : i32}> ({
|
| 510 |
+
^bb0(%iright_419: i32 loc(callsite(#loc1 at #loc161)), %iright_420: i32 loc(callsite(#loc1 at #loc161))):
|
| 511 |
+
%iright_421 = arith.addi %iright_419, %iright_420 : i32 loc(#loc204)
|
| 512 |
+
tt.reduce.return %iright_421 : i32 loc(#loc195)
|
| 513 |
+
}) : (tensor<64x2x4xi32, #linear3>) -> tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> loc(#loc195)
|
| 514 |
+
%iright_329 = tt.expand_dims %iright_328 {axis = 1 : i32} : tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> -> tensor<64x1x4xi32, #linear3> loc(#loc162)
|
| 515 |
+
%iright_330 = tt.broadcast %iright_329 : tensor<64x1x4xi32, #linear3> -> tensor<64x2x4xi32, #linear3> loc(#loc163)
|
| 516 |
+
%ileft_331 = tt.reshape %ileft_326 : tensor<64x2x4xi32, #linear3> -> tensor<32x16xi32, #linear> loc(#loc164)
|
| 517 |
+
%iright_332 = tt.reshape %iright_330 : tensor<64x2x4xi32, #linear3> -> tensor<32x16xi32, #linear> loc(#loc165)
|
| 518 |
+
%y_idx_333 = tt.reshape %new_idxs_321 : tensor<32x16xi32, #linear> -> tensor<64x2x4xi32, #linear3> loc(#loc166)
|
| 519 |
+
%left_idx_334 = arith.muli %y_idx_333, %ileft_180 : tensor<64x2x4xi32, #linear3> loc(#loc168)
|
| 520 |
+
%left_idx_335 = "tt.reduce"(%left_idx_334) <{axis = 1 : i32}> ({
|
| 521 |
+
^bb0(%left_idx_419: i32 loc(callsite(#loc1 at #loc169)), %left_idx_420: i32 loc(callsite(#loc1 at #loc169))):
|
| 522 |
+
%left_idx_421 = arith.addi %left_idx_419, %left_idx_420 : i32 loc(#loc205)
|
| 523 |
+
tt.reduce.return %left_idx_421 : i32 loc(#loc198)
|
| 524 |
+
}) : (tensor<64x2x4xi32, #linear3>) -> tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> loc(#loc198)
|
| 525 |
+
%left_idx_336 = tt.expand_dims %left_idx_335 {axis = 1 : i32} : tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> -> tensor<64x1x4xi32, #linear3> loc(#loc170)
|
| 526 |
+
%left_idx_337 = tt.broadcast %left_idx_336 : tensor<64x1x4xi32, #linear3> -> tensor<64x2x4xi32, #linear3> loc(#loc171)
|
| 527 |
+
%right_idx_338 = arith.muli %y_idx_333, %flip_102 : tensor<64x2x4xi32, #linear3> loc(#loc173)
|
| 528 |
+
%right_idx_339 = "tt.reduce"(%right_idx_338) <{axis = 1 : i32}> ({
|
| 529 |
+
^bb0(%right_idx_419: i32 loc(callsite(#loc1 at #loc174)), %right_idx_420: i32 loc(callsite(#loc1 at #loc174))):
|
| 530 |
+
%right_idx_421 = arith.addi %right_idx_419, %right_idx_420 : i32 loc(#loc206)
|
| 531 |
+
tt.reduce.return %right_idx_421 : i32 loc(#loc201)
|
| 532 |
+
}) : (tensor<64x2x4xi32, #linear3>) -> tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> loc(#loc201)
|
| 533 |
+
%right_idx_340 = tt.expand_dims %right_idx_339 {axis = 1 : i32} : tensor<64x4xi32, #ttg.slice<{dim = 1, parent = #linear3}>> -> tensor<64x1x4xi32, #linear3> loc(#loc175)
|
| 534 |
+
%right_idx_341 = tt.broadcast %right_idx_340 : tensor<64x1x4xi32, #linear3> -> tensor<64x2x4xi32, #linear3> loc(#loc176)
|
| 535 |
+
%left_idx_342 = tt.reshape %left_idx_337 : tensor<64x2x4xi32, #linear3> -> tensor<32x16xi32, #linear> loc(#loc177)
|
| 536 |
+
%right_idx_343 = tt.reshape %right_idx_341 : tensor<64x2x4xi32, #linear3> -> tensor<32x16xi32, #linear> loc(#loc178)
|
| 537 |
+
%cond_344 = arith.cmpi slt, %ileft_331, %iright_332 : tensor<32x16xi32, #linear> loc(#loc179)
|
| 538 |
+
%eq_345 = arith.cmpi eq, %ileft_331, %iright_332 : tensor<32x16xi32, #linear> loc(#loc180)
|
| 539 |
+
%cond_346 = arith.cmpi sgt, %left_idx_342, %right_idx_343 : tensor<32x16xi32, #linear> loc(#loc181)
|
| 540 |
+
%cond_347 = arith.andi %eq_345, %cond_346 : tensor<32x16xi1, #linear> loc(#loc182)
|
| 541 |
+
%cond_348 = arith.ori %cond_344, %cond_347 : tensor<32x16xi1, #linear> loc(#loc183)
|
| 542 |
+
%ret_349 = arith.xori %ileft_331, %iright_332 : tensor<32x16xi32, #linear> loc(#loc186)
|
| 543 |
+
%ret_350 = arith.select %cond_348, %ret_349, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc187)
|
| 544 |
+
%ret_351 = arith.xori %ret_318, %ret_350 : tensor<32x16xi32, #linear> loc(#loc188)
|
| 545 |
+
%new_idxs_352 = arith.xori %left_idx_342, %right_idx_343 : tensor<32x16xi32, #linear> loc(#loc189)
|
| 546 |
+
%new_idxs_353 = arith.select %cond_348, %new_idxs_352, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc190)
|
| 547 |
+
%new_idxs_354 = arith.xori %new_idxs_321, %new_idxs_353 : tensor<32x16xi32, #linear> loc(#loc191)
|
| 548 |
+
%y_355 = tt.reshape %ret_351 : tensor<32x16xi32, #linear> -> tensor<128x2x2xi32, #linear2> loc(#loc154)
|
| 549 |
+
%ileft_356 = arith.muli %y_355, %ileft_105 : tensor<128x2x2xi32, #linear2> loc(#loc156)
|
| 550 |
+
%ileft_357 = "tt.reduce"(%ileft_356) <{axis = 1 : i32}> ({
|
| 551 |
+
^bb0(%ileft_419: i32 loc(callsite(#loc1 at #loc157)), %ileft_420: i32 loc(callsite(#loc1 at #loc157))):
|
| 552 |
+
%ileft_421 = arith.addi %ileft_419, %ileft_420 : i32 loc(#loc203)
|
| 553 |
+
tt.reduce.return %ileft_421 : i32 loc(#loc193)
|
| 554 |
+
}) : (tensor<128x2x2xi32, #linear2>) -> tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> loc(#loc193)
|
| 555 |
+
%ileft_358 = tt.expand_dims %ileft_357 {axis = 1 : i32} : tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> -> tensor<128x1x2xi32, #linear2> loc(#loc158)
|
| 556 |
+
%ileft_359 = tt.broadcast %ileft_358 : tensor<128x1x2xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc159)
|
| 557 |
+
%iright_360 = arith.muli %y_355, %flip_48 : tensor<128x2x2xi32, #linear2> loc(#loc160)
|
| 558 |
+
%iright_361 = "tt.reduce"(%iright_360) <{axis = 1 : i32}> ({
|
| 559 |
+
^bb0(%iright_419: i32 loc(callsite(#loc1 at #loc161)), %iright_420: i32 loc(callsite(#loc1 at #loc161))):
|
| 560 |
+
%iright_421 = arith.addi %iright_419, %iright_420 : i32 loc(#loc204)
|
| 561 |
+
tt.reduce.return %iright_421 : i32 loc(#loc195)
|
| 562 |
+
}) : (tensor<128x2x2xi32, #linear2>) -> tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> loc(#loc195)
|
| 563 |
+
%iright_362 = tt.expand_dims %iright_361 {axis = 1 : i32} : tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> -> tensor<128x1x2xi32, #linear2> loc(#loc162)
|
| 564 |
+
%iright_363 = tt.broadcast %iright_362 : tensor<128x1x2xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc163)
|
| 565 |
+
%ileft_364 = tt.reshape %ileft_359 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc164)
|
| 566 |
+
%iright_365 = tt.reshape %iright_363 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc165)
|
| 567 |
+
%y_idx_366 = tt.reshape %new_idxs_354 : tensor<32x16xi32, #linear> -> tensor<128x2x2xi32, #linear2> loc(#loc166)
|
| 568 |
+
%left_idx_367 = arith.muli %y_idx_366, %ileft_105 : tensor<128x2x2xi32, #linear2> loc(#loc168)
|
| 569 |
+
%left_idx_368 = "tt.reduce"(%left_idx_367) <{axis = 1 : i32}> ({
|
| 570 |
+
^bb0(%left_idx_419: i32 loc(callsite(#loc1 at #loc169)), %left_idx_420: i32 loc(callsite(#loc1 at #loc169))):
|
| 571 |
+
%left_idx_421 = arith.addi %left_idx_419, %left_idx_420 : i32 loc(#loc205)
|
| 572 |
+
tt.reduce.return %left_idx_421 : i32 loc(#loc198)
|
| 573 |
+
}) : (tensor<128x2x2xi32, #linear2>) -> tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> loc(#loc198)
|
| 574 |
+
%left_idx_369 = tt.expand_dims %left_idx_368 {axis = 1 : i32} : tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> -> tensor<128x1x2xi32, #linear2> loc(#loc170)
|
| 575 |
+
%left_idx_370 = tt.broadcast %left_idx_369 : tensor<128x1x2xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc171)
|
| 576 |
+
%right_idx_371 = arith.muli %y_idx_366, %flip_48 : tensor<128x2x2xi32, #linear2> loc(#loc173)
|
| 577 |
+
%right_idx_372 = "tt.reduce"(%right_idx_371) <{axis = 1 : i32}> ({
|
| 578 |
+
^bb0(%right_idx_419: i32 loc(callsite(#loc1 at #loc174)), %right_idx_420: i32 loc(callsite(#loc1 at #loc174))):
|
| 579 |
+
%right_idx_421 = arith.addi %right_idx_419, %right_idx_420 : i32 loc(#loc206)
|
| 580 |
+
tt.reduce.return %right_idx_421 : i32 loc(#loc201)
|
| 581 |
+
}) : (tensor<128x2x2xi32, #linear2>) -> tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> loc(#loc201)
|
| 582 |
+
%right_idx_373 = tt.expand_dims %right_idx_372 {axis = 1 : i32} : tensor<128x2xi32, #ttg.slice<{dim = 1, parent = #linear2}>> -> tensor<128x1x2xi32, #linear2> loc(#loc175)
|
| 583 |
+
%right_idx_374 = tt.broadcast %right_idx_373 : tensor<128x1x2xi32, #linear2> -> tensor<128x2x2xi32, #linear2> loc(#loc176)
|
| 584 |
+
%left_idx_375 = tt.reshape %left_idx_370 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc177)
|
| 585 |
+
%right_idx_376 = tt.reshape %right_idx_374 : tensor<128x2x2xi32, #linear2> -> tensor<32x16xi32, #linear> loc(#loc178)
|
| 586 |
+
%cond_377 = arith.cmpi slt, %ileft_364, %iright_365 : tensor<32x16xi32, #linear> loc(#loc179)
|
| 587 |
+
%eq_378 = arith.cmpi eq, %ileft_364, %iright_365 : tensor<32x16xi32, #linear> loc(#loc180)
|
| 588 |
+
%cond_379 = arith.cmpi sgt, %left_idx_375, %right_idx_376 : tensor<32x16xi32, #linear> loc(#loc181)
|
| 589 |
+
%cond_380 = arith.andi %eq_378, %cond_379 : tensor<32x16xi1, #linear> loc(#loc182)
|
| 590 |
+
%cond_381 = arith.ori %cond_377, %cond_380 : tensor<32x16xi1, #linear> loc(#loc183)
|
| 591 |
+
%ret_382 = arith.xori %ileft_364, %iright_365 : tensor<32x16xi32, #linear> loc(#loc186)
|
| 592 |
+
%ret_383 = arith.select %cond_381, %ret_382, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc187)
|
| 593 |
+
%ret_384 = arith.xori %ret_351, %ret_383 : tensor<32x16xi32, #linear> loc(#loc188)
|
| 594 |
+
%new_idxs_385 = arith.xori %left_idx_375, %right_idx_376 : tensor<32x16xi32, #linear> loc(#loc189)
|
| 595 |
+
%new_idxs_386 = arith.select %cond_381, %new_idxs_385, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc190)
|
| 596 |
+
%new_idxs_387 = arith.xori %new_idxs_354, %new_idxs_386 : tensor<32x16xi32, #linear> loc(#loc191)
|
| 597 |
+
%y_388 = tt.reshape %ret_384 : tensor<32x16xi32, #linear> -> tensor<256x2x1xi32, #linear1> loc(#loc154)
|
| 598 |
+
%ileft_389 = arith.muli %y_388, %ileft : tensor<256x2x1xi32, #linear1> loc(#loc156)
|
| 599 |
+
%ileft_390 = "tt.reduce"(%ileft_389) <{axis = 1 : i32}> ({
|
| 600 |
+
^bb0(%ileft_419: i32 loc(callsite(#loc1 at #loc157)), %ileft_420: i32 loc(callsite(#loc1 at #loc157))):
|
| 601 |
+
%ileft_421 = arith.addi %ileft_419, %ileft_420 : i32 loc(#loc203)
|
| 602 |
+
tt.reduce.return %ileft_421 : i32 loc(#loc193)
|
| 603 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc193)
|
| 604 |
+
%ileft_391 = tt.expand_dims %ileft_390 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc158)
|
| 605 |
+
%ileft_392 = tt.broadcast %ileft_391 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc159)
|
| 606 |
+
%iright_393 = arith.muli %y_388, %iright : tensor<256x2x1xi32, #linear1> loc(#loc160)
|
| 607 |
+
%iright_394 = "tt.reduce"(%iright_393) <{axis = 1 : i32}> ({
|
| 608 |
+
^bb0(%iright_419: i32 loc(callsite(#loc1 at #loc161)), %iright_420: i32 loc(callsite(#loc1 at #loc161))):
|
| 609 |
+
%iright_421 = arith.addi %iright_419, %iright_420 : i32 loc(#loc204)
|
| 610 |
+
tt.reduce.return %iright_421 : i32 loc(#loc195)
|
| 611 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc195)
|
| 612 |
+
%iright_395 = tt.expand_dims %iright_394 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc162)
|
| 613 |
+
%iright_396 = tt.broadcast %iright_395 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc163)
|
| 614 |
+
%ileft_397 = tt.reshape %ileft_392 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc164)
|
| 615 |
+
%iright_398 = tt.reshape %iright_396 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc165)
|
| 616 |
+
%y_idx_399 = tt.reshape %new_idxs_387 : tensor<32x16xi32, #linear> -> tensor<256x2x1xi32, #linear1> loc(#loc166)
|
| 617 |
+
%left_idx_400 = arith.muli %y_idx_399, %ileft : tensor<256x2x1xi32, #linear1> loc(#loc168)
|
| 618 |
+
%left_idx_401 = "tt.reduce"(%left_idx_400) <{axis = 1 : i32}> ({
|
| 619 |
+
^bb0(%left_idx_419: i32 loc(callsite(#loc1 at #loc169)), %left_idx_420: i32 loc(callsite(#loc1 at #loc169))):
|
| 620 |
+
%left_idx_421 = arith.addi %left_idx_419, %left_idx_420 : i32 loc(#loc205)
|
| 621 |
+
tt.reduce.return %left_idx_421 : i32 loc(#loc198)
|
| 622 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc198)
|
| 623 |
+
%left_idx_402 = tt.expand_dims %left_idx_401 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc170)
|
| 624 |
+
%left_idx_403 = tt.broadcast %left_idx_402 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc171)
|
| 625 |
+
%right_idx_404 = arith.muli %y_idx_399, %iright : tensor<256x2x1xi32, #linear1> loc(#loc173)
|
| 626 |
+
%right_idx_405 = "tt.reduce"(%right_idx_404) <{axis = 1 : i32}> ({
|
| 627 |
+
^bb0(%right_idx_419: i32 loc(callsite(#loc1 at #loc174)), %right_idx_420: i32 loc(callsite(#loc1 at #loc174))):
|
| 628 |
+
%right_idx_421 = arith.addi %right_idx_419, %right_idx_420 : i32 loc(#loc206)
|
| 629 |
+
tt.reduce.return %right_idx_421 : i32 loc(#loc201)
|
| 630 |
+
}) : (tensor<256x2x1xi32, #linear1>) -> tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> loc(#loc201)
|
| 631 |
+
%right_idx_406 = tt.expand_dims %right_idx_405 {axis = 1 : i32} : tensor<256x1xi32, #ttg.slice<{dim = 1, parent = #linear1}>> -> tensor<256x1x1xi32, #linear1> loc(#loc175)
|
| 632 |
+
%right_idx_407 = tt.broadcast %right_idx_406 : tensor<256x1x1xi32, #linear1> -> tensor<256x2x1xi32, #linear1> loc(#loc176)
|
| 633 |
+
%left_idx_408 = tt.reshape %left_idx_403 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc177)
|
| 634 |
+
%right_idx_409 = tt.reshape %right_idx_407 : tensor<256x2x1xi32, #linear1> -> tensor<32x16xi32, #linear> loc(#loc178)
|
| 635 |
+
%cond_410 = arith.cmpi slt, %ileft_397, %iright_398 : tensor<32x16xi32, #linear> loc(#loc179)
|
| 636 |
+
%eq_411 = arith.cmpi eq, %ileft_397, %iright_398 : tensor<32x16xi32, #linear> loc(#loc180)
|
| 637 |
+
%cond_412 = arith.cmpi sgt, %left_idx_408, %right_idx_409 : tensor<32x16xi32, #linear> loc(#loc181)
|
| 638 |
+
%cond_413 = arith.andi %eq_411, %cond_412 : tensor<32x16xi1, #linear> loc(#loc182)
|
| 639 |
+
%cond_414 = arith.ori %cond_410, %cond_413 : tensor<32x16xi1, #linear> loc(#loc183)
|
| 640 |
+
%new_idxs_415 = arith.xori %left_idx_408, %right_idx_409 : tensor<32x16xi32, #linear> loc(#loc189)
|
| 641 |
+
%new_idxs_416 = arith.select %cond_414, %new_idxs_415, %cst : tensor<32x16xi1, #linear>, tensor<32x16xi32, #linear> loc(#loc190)
|
| 642 |
+
%new_idxs_417 = arith.xori %new_idxs_387, %new_idxs_416 : tensor<32x16xi32, #linear> loc(#loc191)
|
| 643 |
+
%tmp7 = arith.extsi %tmp0_36 : tensor<32x16xi32, #blocked> to tensor<32x16xi64, #blocked> loc(#loc141)
|
| 644 |
+
%tmp10 = arith.select %tmp0_34, %tmp7, %cst_0 : tensor<32x16xi1, #blocked>, tensor<32x16xi64, #blocked> loc(#loc142)
|
| 645 |
+
%tmp11 = "tt.reduce"(%tmp10) <{axis = 1 : i32}> ({
|
| 646 |
+
^bb0(%tmp11_419: i64 loc(callsite(#loc1 at #loc143)), %tmp11_420: i64 loc(callsite(#loc1 at #loc143))):
|
| 647 |
+
%tmp11_421 = arith.addi %tmp11_419, %tmp11_420 : i64 loc(#loc192)
|
| 648 |
+
tt.reduce.return %tmp11_421 : i64 loc(#loc152)
|
| 649 |
+
}) : (tensor<32x16xi64, #blocked>) -> tensor<32xi64, #ttg.slice<{dim = 1, parent = #blocked}>> loc(#loc152)
|
| 650 |
+
%tmp11_418 = tt.expand_dims %tmp11 {axis = 1 : i32} : tensor<32xi64, #ttg.slice<{dim = 1, parent = #blocked}>> -> tensor<32x1xi64, #blocked> loc(#loc144)
|
| 651 |
+
%tmp14 = arith.trunci %tmp11_418 : tensor<32x1xi64, #blocked> to tensor<32x1xi32, #blocked> loc(#loc145)
|
| 652 |
+
%0 = arith.muli %xindex_19, %cst_4 : tensor<32x1xi32, #blocked1> loc(#loc70)
|
| 653 |
+
%1 = tt.broadcast %r0_index_25 : tensor<1x16xi32, #blocked1> -> tensor<32x16xi32, #blocked1> loc(#loc71)
|
| 654 |
+
%2 = tt.broadcast %0 : tensor<32x1xi32, #blocked1> -> tensor<32x16xi32, #blocked1> loc(#loc71)
|
| 655 |
+
%3 = arith.addi %1, %2 : tensor<32x16xi32, #blocked1> loc(#loc71)
|
| 656 |
+
%4 = tt.splat %out_ptr2 : !tt.ptr<i32> -> tensor<32x16x!tt.ptr<i32>, #blocked1> loc(#loc72)
|
| 657 |
+
%5 = tt.addptr %4, %3 : tensor<32x16x!tt.ptr<i32>, #blocked1>, tensor<32x16xi32, #blocked1> loc(#loc72)
|
| 658 |
+
%6 = ttg.convert_layout %new_idxs_417 : tensor<32x16xi32, #linear> -> tensor<32x16xi32, #blocked1> loc(#loc73)
|
| 659 |
+
tt.store %5, %6, %tmp0_35 : tensor<32x16x!tt.ptr<i32>, #blocked1> loc(#loc73)
|
| 660 |
+
%7 = tt.splat %out_ptr3 : !tt.ptr<i32> -> tensor<32x1x!tt.ptr<i32>, #blocked> loc(#loc74)
|
| 661 |
+
%8 = tt.addptr %7, %xindex_18 : tensor<32x1x!tt.ptr<i32>, #blocked>, tensor<32x1xi32, #blocked> loc(#loc74)
|
| 662 |
+
tt.store %8, %tmp14, %xmask : tensor<32x1x!tt.ptr<i32>, #blocked> loc(#loc75)
|
| 663 |
+
tt.return loc(#loc76)
|
| 664 |
+
} loc(#loc)
|
| 665 |
+
} loc(#loc)
|
| 666 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":24:28)
|
| 667 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":24:33)
|
| 668 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":25:44)
|
| 669 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":25:23)
|
| 670 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":26:21)
|
| 671 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":27:38)
|
| 672 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":33:19)
|
| 673 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":34:19)
|
| 674 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":36:38)
|
| 675 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":36:35)
|
| 676 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":36:49)
|
| 677 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":36:45)
|
| 678 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":36:30)
|
| 679 |
+
#loc15 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":36:54)
|
| 680 |
+
#loc16 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":38:19)
|
| 681 |
+
#loc17 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":40:33)
|
| 682 |
+
#loc18 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":627:44)
|
| 683 |
+
#loc21 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":627:60)
|
| 684 |
+
#loc22 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":627:68)
|
| 685 |
+
#loc23 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":533:22)
|
| 686 |
+
#loc25 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":537:21)
|
| 687 |
+
#loc26 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":538:40)
|
| 688 |
+
#loc27 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:36)
|
| 689 |
+
#loc29 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:15)
|
| 690 |
+
#loc30 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":538:65)
|
| 691 |
+
#loc31 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":538:78)
|
| 692 |
+
#loc32 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":539:41)
|
| 693 |
+
#loc34 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":539:67)
|
| 694 |
+
#loc35 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":539:80)
|
| 695 |
+
#loc36 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":540:30)
|
| 696 |
+
#loc37 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":541:32)
|
| 697 |
+
#loc38 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":546:29)
|
| 698 |
+
#loc39 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":548:36)
|
| 699 |
+
#loc40 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":548:23)
|
| 700 |
+
#loc41 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":290:25)
|
| 701 |
+
#loc43 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":548:53)
|
| 702 |
+
#loc44 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":548:66)
|
| 703 |
+
#loc45 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":551:37)
|
| 704 |
+
#loc46 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":551:23)
|
| 705 |
+
#loc48 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":551:54)
|
| 706 |
+
#loc49 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":551:67)
|
| 707 |
+
#loc50 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":553:36)
|
| 708 |
+
#loc51 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":554:38)
|
| 709 |
+
#loc52 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":574:22)
|
| 710 |
+
#loc53 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":591:21)
|
| 711 |
+
#loc54 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":594:40)
|
| 712 |
+
#loc55 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":594:29)
|
| 713 |
+
#loc56 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":594:23)
|
| 714 |
+
#loc57 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":599:19)
|
| 715 |
+
#loc58 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":599:28)
|
| 716 |
+
#loc59 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":600:38)
|
| 717 |
+
#loc60 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":600:46)
|
| 718 |
+
#loc61 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":600:15)
|
| 719 |
+
#loc62 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":601:48)
|
| 720 |
+
#loc63 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":601:59)
|
| 721 |
+
#loc64 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":601:22)
|
| 722 |
+
#loc65 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":42:19)
|
| 723 |
+
#loc66 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":44:34)
|
| 724 |
+
#loc68 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":45:29)
|
| 725 |
+
#loc69 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":48:21)
|
| 726 |
+
#loc70 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":49:35)
|
| 727 |
+
#loc71 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":49:32)
|
| 728 |
+
#loc72 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":49:25)
|
| 729 |
+
#loc73 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":49:47)
|
| 730 |
+
#loc74 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":50:25)
|
| 731 |
+
#loc75 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":50:37)
|
| 732 |
+
#loc76 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":50:4)
|
| 733 |
+
#loc82 = loc("xoffset"(#loc2))
|
| 734 |
+
#loc83 = loc("xoffset"(#loc3))
|
| 735 |
+
#loc84 = loc("xindex"(#loc4))
|
| 736 |
+
#loc85 = loc("xindex"(#loc5))
|
| 737 |
+
#loc86 = loc("xmask"(#loc6))
|
| 738 |
+
#loc87 = loc("r0_index"(#loc7))
|
| 739 |
+
#loc88 = loc("x0"(#loc8))
|
| 740 |
+
#loc89 = loc("x1"(#loc9))
|
| 741 |
+
#loc90 = loc("tmp0"(#loc10))
|
| 742 |
+
#loc91 = loc("tmp0"(#loc11))
|
| 743 |
+
#loc92 = loc("tmp0"(#loc12))
|
| 744 |
+
#loc93 = loc("tmp0"(#loc13))
|
| 745 |
+
#loc94 = loc("tmp0"(#loc14))
|
| 746 |
+
#loc95 = loc("tmp0"(#loc15))
|
| 747 |
+
#loc96 = loc("tmp2"(#loc16))
|
| 748 |
+
#loc97 = loc("tmp4"(#loc17))
|
| 749 |
+
#loc98 = loc("flip"(#loc18))
|
| 750 |
+
#loc100 = loc("flip"(#loc21))
|
| 751 |
+
#loc101 = loc("flip"(#loc22))
|
| 752 |
+
#loc102 = loc("y"(#loc23))
|
| 753 |
+
#loc103 = loc("left_mask"(#loc25))
|
| 754 |
+
#loc104 = loc("ileft"(#loc26))
|
| 755 |
+
#loc106 = loc("ileft"(#loc30))
|
| 756 |
+
#loc107 = loc("ileft"(#loc31))
|
| 757 |
+
#loc108 = loc("iright"(#loc32))
|
| 758 |
+
#loc110 = loc("iright"(#loc34))
|
| 759 |
+
#loc111 = loc("iright"(#loc35))
|
| 760 |
+
#loc112 = loc("ileft"(#loc36))
|
| 761 |
+
#loc113 = loc("iright"(#loc37))
|
| 762 |
+
#loc114 = loc("y_idx"(#loc38))
|
| 763 |
+
#loc115 = loc("left_idx"(#loc39))
|
| 764 |
+
#loc116 = loc("left_idx"(#loc40))
|
| 765 |
+
#loc117 = loc("input"(#loc41))
|
| 766 |
+
#loc119 = loc("left_idx"(#loc43))
|
| 767 |
+
#loc120 = loc("left_idx"(#loc44))
|
| 768 |
+
#loc121 = loc("right_idx"(#loc45))
|
| 769 |
+
#loc122 = loc("right_idx"(#loc46))
|
| 770 |
+
#loc124 = loc("right_idx"(#loc48))
|
| 771 |
+
#loc125 = loc("right_idx"(#loc49))
|
| 772 |
+
#loc126 = loc("left_idx"(#loc50))
|
| 773 |
+
#loc127 = loc("right_idx"(#loc51))
|
| 774 |
+
#loc128 = loc("cond"(#loc52))
|
| 775 |
+
#loc129 = loc("eq"(#loc53))
|
| 776 |
+
#loc130 = loc("cond"(#loc54))
|
| 777 |
+
#loc131 = loc("cond"(#loc55))
|
| 778 |
+
#loc132 = loc("cond"(#loc56))
|
| 779 |
+
#loc133 = loc("cond"(#loc57))
|
| 780 |
+
#loc134 = loc("cond"(#loc58))
|
| 781 |
+
#loc135 = loc("ret"(#loc59))
|
| 782 |
+
#loc136 = loc("ret"(#loc60))
|
| 783 |
+
#loc137 = loc("ret"(#loc61))
|
| 784 |
+
#loc138 = loc("new_idxs"(#loc62))
|
| 785 |
+
#loc139 = loc("new_idxs"(#loc63))
|
| 786 |
+
#loc140 = loc("new_idxs"(#loc64))
|
| 787 |
+
#loc141 = loc("tmp7"(#loc65))
|
| 788 |
+
#loc142 = loc("tmp10"(#loc66))
|
| 789 |
+
#loc144 = loc("tmp11"(#loc68))
|
| 790 |
+
#loc145 = loc("tmp14"(#loc69))
|
| 791 |
+
#loc146 = loc(callsite(#loc98 at #loc99))
|
| 792 |
+
#loc147 = loc(callsite(#loc100 at #loc99))
|
| 793 |
+
#loc148 = loc(callsite(#loc101 at #loc99))
|
| 794 |
+
#loc150 = loc("cond"(#loc128))
|
| 795 |
+
#loc151 = loc("eq"(#loc129))
|
| 796 |
+
#loc152 = loc(callsite(#loc27 at #loc143))
|
| 797 |
+
#loc154 = loc(callsite(#loc102 at #loc149))
|
| 798 |
+
#loc155 = loc(callsite(#loc103 at #loc149))
|
| 799 |
+
#loc156 = loc(callsite(#loc104 at #loc149))
|
| 800 |
+
#loc158 = loc(callsite(#loc106 at #loc149))
|
| 801 |
+
#loc159 = loc(callsite(#loc107 at #loc149))
|
| 802 |
+
#loc160 = loc(callsite(#loc108 at #loc149))
|
| 803 |
+
#loc162 = loc(callsite(#loc110 at #loc149))
|
| 804 |
+
#loc163 = loc(callsite(#loc111 at #loc149))
|
| 805 |
+
#loc164 = loc(callsite(#loc112 at #loc149))
|
| 806 |
+
#loc165 = loc(callsite(#loc113 at #loc149))
|
| 807 |
+
#loc166 = loc(callsite(#loc114 at #loc149))
|
| 808 |
+
#loc167 = loc(callsite(#loc115 at #loc149))
|
| 809 |
+
#loc168 = loc(callsite(#loc116 at #loc149))
|
| 810 |
+
#loc170 = loc(callsite(#loc119 at #loc149))
|
| 811 |
+
#loc171 = loc(callsite(#loc120 at #loc149))
|
| 812 |
+
#loc172 = loc(callsite(#loc121 at #loc149))
|
| 813 |
+
#loc173 = loc(callsite(#loc122 at #loc149))
|
| 814 |
+
#loc175 = loc(callsite(#loc124 at #loc149))
|
| 815 |
+
#loc176 = loc(callsite(#loc125 at #loc149))
|
| 816 |
+
#loc177 = loc(callsite(#loc126 at #loc149))
|
| 817 |
+
#loc178 = loc(callsite(#loc127 at #loc149))
|
| 818 |
+
#loc179 = loc(callsite(#loc150 at #loc149))
|
| 819 |
+
#loc180 = loc(callsite(#loc151 at #loc149))
|
| 820 |
+
#loc181 = loc(callsite(#loc130 at #loc149))
|
| 821 |
+
#loc182 = loc(callsite(#loc131 at #loc149))
|
| 822 |
+
#loc183 = loc(callsite(#loc132 at #loc149))
|
| 823 |
+
#loc184 = loc(callsite(#loc133 at #loc149))
|
| 824 |
+
#loc185 = loc(callsite(#loc134 at #loc149))
|
| 825 |
+
#loc186 = loc(callsite(#loc135 at #loc149))
|
| 826 |
+
#loc187 = loc(callsite(#loc136 at #loc149))
|
| 827 |
+
#loc188 = loc(callsite(#loc137 at #loc149))
|
| 828 |
+
#loc189 = loc(callsite(#loc138 at #loc149))
|
| 829 |
+
#loc190 = loc(callsite(#loc139 at #loc149))
|
| 830 |
+
#loc191 = loc(callsite(#loc140 at #loc149))
|
| 831 |
+
#loc192 = loc(callsite(#loc29 at #loc152))
|
| 832 |
+
#loc193 = loc(callsite(#loc27 at #loc157))
|
| 833 |
+
#loc195 = loc(callsite(#loc27 at #loc161))
|
| 834 |
+
#loc197 = loc(callsite(#loc117 at #loc169))
|
| 835 |
+
#loc198 = loc(callsite(#loc27 at #loc169))
|
| 836 |
+
#loc200 = loc(callsite(#loc117 at #loc174))
|
| 837 |
+
#loc201 = loc(callsite(#loc27 at #loc174))
|
| 838 |
+
#loc203 = loc(callsite(#loc29 at #loc193))
|
| 839 |
+
#loc204 = loc(callsite(#loc29 at #loc195))
|
| 840 |
+
#loc205 = loc(callsite(#loc29 at #loc198))
|
| 841 |
+
#loc206 = loc(callsite(#loc29 at #loc201))
|
SpecForge-ext/cache/compiled_kernels/triton/3/A7DYCXJM4X5DHYLAIRTU6BFB3S5UCV3W4C27BWQBJGXYAG3NWQWA/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ttir
ADDED
|
@@ -0,0 +1,799 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":18:0)
|
| 2 |
+
#loc1 = loc(unknown)
|
| 3 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":41:67)
|
| 4 |
+
#loc23 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":662:12)
|
| 5 |
+
#loc28 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":634:73)
|
| 6 |
+
#loc32 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":538:51)
|
| 7 |
+
#loc37 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":539:53)
|
| 8 |
+
#loc46 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":548:50)
|
| 9 |
+
#loc51 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":551:51)
|
| 10 |
+
#loc70 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":45:26)
|
| 11 |
+
#loc80 = loc("in_ptr0"(#loc))
|
| 12 |
+
#loc81 = loc("out_ptr2"(#loc))
|
| 13 |
+
#loc82 = loc("out_ptr3"(#loc))
|
| 14 |
+
#loc83 = loc("xnumel"(#loc))
|
| 15 |
+
#loc84 = loc("r0_numel"(#loc))
|
| 16 |
+
#loc106 = loc(callsite(#loc23 at #loc2))
|
| 17 |
+
#loc113 = loc("ileft"(#loc32))
|
| 18 |
+
#loc117 = loc("iright"(#loc37))
|
| 19 |
+
#loc126 = loc("left_idx"(#loc46))
|
| 20 |
+
#loc131 = loc("right_idx"(#loc51))
|
| 21 |
+
#loc150 = loc("tmp11"(#loc70))
|
| 22 |
+
#loc157 = loc(callsite(#loc28 at #loc106))
|
| 23 |
+
#loc161 = loc(callsite(#loc1 at #loc150))
|
| 24 |
+
#loc165 = loc(callsite(#loc113 at #loc157))
|
| 25 |
+
#loc169 = loc(callsite(#loc117 at #loc157))
|
| 26 |
+
#loc177 = loc(callsite(#loc126 at #loc157))
|
| 27 |
+
#loc182 = loc(callsite(#loc131 at #loc157))
|
| 28 |
+
#loc202 = loc(callsite(#loc1 at #loc165))
|
| 29 |
+
#loc204 = loc(callsite(#loc1 at #loc169))
|
| 30 |
+
#loc207 = loc(callsite(#loc1 at #loc177))
|
| 31 |
+
#loc210 = loc(callsite(#loc1 at #loc182))
|
| 32 |
+
module {
|
| 33 |
+
tt.func public @triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3(%in_ptr0: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %out_ptr2: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr2"(#loc)), %out_ptr3: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr3"(#loc)), %xnumel: i32 {tt.divisibility = 16 : i32} loc("xnumel"(#loc)), %r0_numel: i32 {tt.divisibility = 16 : i32} loc("r0_numel"(#loc))) attributes {noinline = false} {
|
| 34 |
+
%cst = arith.constant dense<1> : tensor<1x2x1xi32> loc(#loc85)
|
| 35 |
+
%cst_0 = arith.constant dense<0> : tensor<32x16xi32> loc(#loc1)
|
| 36 |
+
%tmp10 = arith.constant dense<0> : tensor<32x16xi64> loc(#loc86)
|
| 37 |
+
%tmp0 = arith.constant dense<272> : tensor<32x1xi32> loc(#loc87)
|
| 38 |
+
%tmp0_1 = arith.constant dense<17> : tensor<1x16xi32> loc(#loc88)
|
| 39 |
+
%cst_2 = arith.constant dense<16> : tensor<32x1xi32> loc(#loc1)
|
| 40 |
+
%xmask = arith.constant dense<32> : tensor<32x1xi32> loc(#loc89)
|
| 41 |
+
%c32_i32 = arith.constant 32 : i32 loc(#loc1)
|
| 42 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc90)
|
| 43 |
+
%xoffset_3 = arith.muli %xoffset, %c32_i32 : i32 loc(#loc91)
|
| 44 |
+
%xindex = tt.make_range {end = 32 : i32, start = 0 : i32} : tensor<32xi32> loc(#loc92)
|
| 45 |
+
%xindex_4 = tt.expand_dims %xindex {axis = 1 : i32} : tensor<32xi32> -> tensor<32x1xi32> loc(#loc93)
|
| 46 |
+
%xindex_5 = tt.splat %xoffset_3 : i32 -> tensor<32x1xi32> loc(#loc94)
|
| 47 |
+
%xindex_6 = arith.addi %xindex_5, %xindex_4 : tensor<32x1xi32> loc(#loc94)
|
| 48 |
+
%xmask_7 = arith.cmpi slt, %xindex_6, %xmask : tensor<32x1xi32> loc(#loc89)
|
| 49 |
+
%r0_index = tt.make_range {end = 16 : i32, start = 0 : i32} : tensor<16xi32> loc(#loc95)
|
| 50 |
+
%r0_index_8 = tt.expand_dims %r0_index {axis = 0 : i32} : tensor<16xi32> -> tensor<1x16xi32> loc(#loc96)
|
| 51 |
+
%x0 = arith.remsi %xindex_6, %cst_2 : tensor<32x1xi32> loc(#loc97)
|
| 52 |
+
%x1 = arith.divsi %xindex_6, %cst_2 : tensor<32x1xi32> loc(#loc98)
|
| 53 |
+
%tmp0_9 = arith.muli %r0_index_8, %tmp0_1 : tensor<1x16xi32> loc(#loc88)
|
| 54 |
+
%tmp0_10 = tt.broadcast %x0 : tensor<32x1xi32> -> tensor<32x16xi32> loc(#loc99)
|
| 55 |
+
%tmp0_11 = tt.broadcast %tmp0_9 : tensor<1x16xi32> -> tensor<32x16xi32> loc(#loc99)
|
| 56 |
+
%tmp0_12 = arith.addi %tmp0_10, %tmp0_11 : tensor<32x16xi32> loc(#loc99)
|
| 57 |
+
%tmp0_13 = arith.muli %x1, %tmp0 : tensor<32x1xi32> loc(#loc87)
|
| 58 |
+
%tmp0_14 = tt.broadcast %tmp0_13 : tensor<32x1xi32> -> tensor<32x16xi32> loc(#loc100)
|
| 59 |
+
%tmp0_15 = arith.addi %tmp0_12, %tmp0_14 : tensor<32x16xi32> loc(#loc100)
|
| 60 |
+
%tmp0_16 = tt.splat %in_ptr0 : !tt.ptr<i32> -> tensor<32x16x!tt.ptr<i32>> loc(#loc101)
|
| 61 |
+
%tmp0_17 = tt.addptr %tmp0_16, %tmp0_15 : tensor<32x16x!tt.ptr<i32>>, tensor<32x16xi32> loc(#loc101)
|
| 62 |
+
%tmp0_18 = tt.broadcast %xmask_7 : tensor<32x1xi1> -> tensor<32x16xi1> loc(#loc102)
|
| 63 |
+
%tmp0_19 = tt.load %tmp0_17, %tmp0_18, %cst_0 : tensor<32x16x!tt.ptr<i32>> loc(#loc102)
|
| 64 |
+
%tmp2 = arith.trunci %r0_index_8 : tensor<1x16xi32> to tensor<1x16xi16> loc(#loc103)
|
| 65 |
+
%tmp4 = tt.broadcast %tmp2 : tensor<1x16xi16> -> tensor<32x16xi16> loc(#loc104)
|
| 66 |
+
%flip = tt.make_range {end = 2 : i32, start = 0 : i32} : tensor<2xi32> loc(#loc153)
|
| 67 |
+
%flip_20 = tt.expand_dims %flip {axis = 0 : i32} : tensor<2xi32> -> tensor<1x2xi32> loc(#loc154)
|
| 68 |
+
%flip_21 = tt.expand_dims %flip_20 {axis = 2 : i32} : tensor<1x2xi32> -> tensor<1x2x1xi32> loc(#loc154)
|
| 69 |
+
%flip_22 = tt.broadcast %flip_21 : tensor<1x2x1xi32> -> tensor<128x2x2xi32> loc(#loc155)
|
| 70 |
+
%flip_23 = tt.reshape %flip_22 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc156)
|
| 71 |
+
%y = tt.reshape %tmp0_19 : tensor<32x16xi32> -> tensor<256x2x1xi32> loc(#loc162)
|
| 72 |
+
%left_mask = arith.subi %cst, %flip_21 : tensor<1x2x1xi32> loc(#loc163)
|
| 73 |
+
%ileft = tt.broadcast %left_mask : tensor<1x2x1xi32> -> tensor<256x2x1xi32> loc(#loc164)
|
| 74 |
+
%ileft_24 = arith.muli %y, %ileft : tensor<256x2x1xi32> loc(#loc164)
|
| 75 |
+
%ileft_25 = "tt.reduce"(%ileft_24) <{axis = 1 : i32}> ({
|
| 76 |
+
^bb0(%ileft_377: i32 loc(callsite(#loc1 at #loc165)), %ileft_378: i32 loc(callsite(#loc1 at #loc165))):
|
| 77 |
+
%ileft_379 = arith.addi %ileft_377, %ileft_378 : i32 loc(#loc211)
|
| 78 |
+
tt.reduce.return %ileft_379 : i32 loc(#loc201)
|
| 79 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc201)
|
| 80 |
+
%ileft_26 = tt.expand_dims %ileft_25 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc166)
|
| 81 |
+
%ileft_27 = tt.broadcast %ileft_26 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc167)
|
| 82 |
+
%iright = tt.broadcast %flip_21 : tensor<1x2x1xi32> -> tensor<256x2x1xi32> loc(#loc168)
|
| 83 |
+
%iright_28 = arith.muli %y, %iright : tensor<256x2x1xi32> loc(#loc168)
|
| 84 |
+
%iright_29 = "tt.reduce"(%iright_28) <{axis = 1 : i32}> ({
|
| 85 |
+
^bb0(%iright_377: i32 loc(callsite(#loc1 at #loc169)), %iright_378: i32 loc(callsite(#loc1 at #loc169))):
|
| 86 |
+
%iright_379 = arith.addi %iright_377, %iright_378 : i32 loc(#loc212)
|
| 87 |
+
tt.reduce.return %iright_379 : i32 loc(#loc203)
|
| 88 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc203)
|
| 89 |
+
%iright_30 = tt.expand_dims %iright_29 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc170)
|
| 90 |
+
%iright_31 = tt.broadcast %iright_30 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc171)
|
| 91 |
+
%ileft_32 = tt.reshape %ileft_27 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc172)
|
| 92 |
+
%iright_33 = tt.reshape %iright_31 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc173)
|
| 93 |
+
%y_idx = tt.reshape %tmp4 : tensor<32x16xi16> -> tensor<256x2x1xi16> loc(#loc174)
|
| 94 |
+
%left_idx = arith.trunci %left_mask : tensor<1x2x1xi32> to tensor<1x2x1xi16> loc(#loc175)
|
| 95 |
+
%left_idx_34 = tt.broadcast %left_idx : tensor<1x2x1xi16> -> tensor<256x2x1xi16> loc(#loc176)
|
| 96 |
+
%left_idx_35 = arith.muli %y_idx, %left_idx_34 : tensor<256x2x1xi16> loc(#loc176)
|
| 97 |
+
%input = arith.extsi %left_idx_35 : tensor<256x2x1xi16> to tensor<256x2x1xi32> loc(#loc205)
|
| 98 |
+
%left_idx_36 = "tt.reduce"(%input) <{axis = 1 : i32}> ({
|
| 99 |
+
^bb0(%left_idx_377: i32 loc(callsite(#loc1 at #loc177)), %left_idx_378: i32 loc(callsite(#loc1 at #loc177))):
|
| 100 |
+
%left_idx_379 = arith.addi %left_idx_377, %left_idx_378 : i32 loc(#loc213)
|
| 101 |
+
tt.reduce.return %left_idx_379 : i32 loc(#loc206)
|
| 102 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc206)
|
| 103 |
+
%left_idx_37 = tt.expand_dims %left_idx_36 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc178)
|
| 104 |
+
%left_idx_38 = tt.broadcast %left_idx_37 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc179)
|
| 105 |
+
%right_idx = arith.trunci %flip_21 : tensor<1x2x1xi32> to tensor<1x2x1xi16> loc(#loc180)
|
| 106 |
+
%right_idx_39 = tt.broadcast %right_idx : tensor<1x2x1xi16> -> tensor<256x2x1xi16> loc(#loc181)
|
| 107 |
+
%right_idx_40 = arith.muli %y_idx, %right_idx_39 : tensor<256x2x1xi16> loc(#loc181)
|
| 108 |
+
%input_41 = arith.extsi %right_idx_40 : tensor<256x2x1xi16> to tensor<256x2x1xi32> loc(#loc208)
|
| 109 |
+
%right_idx_42 = "tt.reduce"(%input_41) <{axis = 1 : i32}> ({
|
| 110 |
+
^bb0(%right_idx_377: i32 loc(callsite(#loc1 at #loc182)), %right_idx_378: i32 loc(callsite(#loc1 at #loc182))):
|
| 111 |
+
%right_idx_379 = arith.addi %right_idx_377, %right_idx_378 : i32 loc(#loc214)
|
| 112 |
+
tt.reduce.return %right_idx_379 : i32 loc(#loc209)
|
| 113 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc209)
|
| 114 |
+
%right_idx_43 = tt.expand_dims %right_idx_42 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc183)
|
| 115 |
+
%right_idx_44 = tt.broadcast %right_idx_43 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc184)
|
| 116 |
+
%left_idx_45 = tt.reshape %left_idx_38 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc185)
|
| 117 |
+
%right_idx_46 = tt.reshape %right_idx_44 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc186)
|
| 118 |
+
%cond = arith.cmpi slt, %ileft_32, %iright_33 : tensor<32x16xi32> loc(#loc187)
|
| 119 |
+
%eq = arith.cmpi eq, %ileft_32, %iright_33 : tensor<32x16xi32> loc(#loc188)
|
| 120 |
+
%cond_47 = arith.cmpi sgt, %left_idx_45, %right_idx_46 : tensor<32x16xi32> loc(#loc189)
|
| 121 |
+
%cond_48 = arith.andi %eq, %cond_47 : tensor<32x16xi1> loc(#loc190)
|
| 122 |
+
%cond_49 = arith.ori %cond, %cond_48 : tensor<32x16xi1> loc(#loc191)
|
| 123 |
+
%cond_50 = arith.extui %cond_49 : tensor<32x16xi1> to tensor<32x16xi32> loc(#loc192)
|
| 124 |
+
%cond_51 = arith.xori %cond_50, %flip_23 : tensor<32x16xi32> loc(#loc192)
|
| 125 |
+
%cond_52 = arith.cmpi ne, %cond_51, %cst_0 : tensor<32x16xi32> loc(#loc193)
|
| 126 |
+
%ret = arith.xori %ileft_32, %iright_33 : tensor<32x16xi32> loc(#loc194)
|
| 127 |
+
%ret_53 = arith.select %cond_52, %ret, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc195)
|
| 128 |
+
%ret_54 = arith.xori %tmp0_19, %ret_53 : tensor<32x16xi32> loc(#loc196)
|
| 129 |
+
%new_idxs = arith.xori %left_idx_45, %right_idx_46 : tensor<32x16xi32> loc(#loc197)
|
| 130 |
+
%new_idxs_55 = arith.select %cond_52, %new_idxs, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc198)
|
| 131 |
+
%new_idxs_56 = arith.extsi %tmp2 : tensor<1x16xi16> to tensor<1x16xi32> loc(#loc199)
|
| 132 |
+
%new_idxs_57 = tt.broadcast %new_idxs_56 : tensor<1x16xi32> -> tensor<32x16xi32> loc(#loc199)
|
| 133 |
+
%new_idxs_58 = arith.xori %new_idxs_57, %new_idxs_55 : tensor<32x16xi32> loc(#loc199)
|
| 134 |
+
%flip_59 = tt.broadcast %flip_21 : tensor<1x2x1xi32> -> tensor<64x2x4xi32> loc(#loc155)
|
| 135 |
+
%flip_60 = tt.reshape %flip_59 : tensor<64x2x4xi32> -> tensor<32x16xi32> loc(#loc156)
|
| 136 |
+
%y_61 = tt.reshape %ret_54 : tensor<32x16xi32> -> tensor<128x2x2xi32> loc(#loc162)
|
| 137 |
+
%ileft_62 = tt.broadcast %left_mask : tensor<1x2x1xi32> -> tensor<128x2x2xi32> loc(#loc164)
|
| 138 |
+
%ileft_63 = arith.muli %y_61, %ileft_62 : tensor<128x2x2xi32> loc(#loc164)
|
| 139 |
+
%ileft_64 = "tt.reduce"(%ileft_63) <{axis = 1 : i32}> ({
|
| 140 |
+
^bb0(%ileft_377: i32 loc(callsite(#loc1 at #loc165)), %ileft_378: i32 loc(callsite(#loc1 at #loc165))):
|
| 141 |
+
%ileft_379 = arith.addi %ileft_377, %ileft_378 : i32 loc(#loc211)
|
| 142 |
+
tt.reduce.return %ileft_379 : i32 loc(#loc201)
|
| 143 |
+
}) : (tensor<128x2x2xi32>) -> tensor<128x2xi32> loc(#loc201)
|
| 144 |
+
%ileft_65 = tt.expand_dims %ileft_64 {axis = 1 : i32} : tensor<128x2xi32> -> tensor<128x1x2xi32> loc(#loc166)
|
| 145 |
+
%ileft_66 = tt.broadcast %ileft_65 : tensor<128x1x2xi32> -> tensor<128x2x2xi32> loc(#loc167)
|
| 146 |
+
%iright_67 = arith.muli %y_61, %flip_22 : tensor<128x2x2xi32> loc(#loc168)
|
| 147 |
+
%iright_68 = "tt.reduce"(%iright_67) <{axis = 1 : i32}> ({
|
| 148 |
+
^bb0(%iright_377: i32 loc(callsite(#loc1 at #loc169)), %iright_378: i32 loc(callsite(#loc1 at #loc169))):
|
| 149 |
+
%iright_379 = arith.addi %iright_377, %iright_378 : i32 loc(#loc212)
|
| 150 |
+
tt.reduce.return %iright_379 : i32 loc(#loc203)
|
| 151 |
+
}) : (tensor<128x2x2xi32>) -> tensor<128x2xi32> loc(#loc203)
|
| 152 |
+
%iright_69 = tt.expand_dims %iright_68 {axis = 1 : i32} : tensor<128x2xi32> -> tensor<128x1x2xi32> loc(#loc170)
|
| 153 |
+
%iright_70 = tt.broadcast %iright_69 : tensor<128x1x2xi32> -> tensor<128x2x2xi32> loc(#loc171)
|
| 154 |
+
%ileft_71 = tt.reshape %ileft_66 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc172)
|
| 155 |
+
%iright_72 = tt.reshape %iright_70 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc173)
|
| 156 |
+
%y_idx_73 = tt.reshape %new_idxs_58 : tensor<32x16xi32> -> tensor<128x2x2xi32> loc(#loc174)
|
| 157 |
+
%left_idx_74 = arith.muli %y_idx_73, %ileft_62 : tensor<128x2x2xi32> loc(#loc176)
|
| 158 |
+
%left_idx_75 = "tt.reduce"(%left_idx_74) <{axis = 1 : i32}> ({
|
| 159 |
+
^bb0(%left_idx_377: i32 loc(callsite(#loc1 at #loc177)), %left_idx_378: i32 loc(callsite(#loc1 at #loc177))):
|
| 160 |
+
%left_idx_379 = arith.addi %left_idx_377, %left_idx_378 : i32 loc(#loc213)
|
| 161 |
+
tt.reduce.return %left_idx_379 : i32 loc(#loc206)
|
| 162 |
+
}) : (tensor<128x2x2xi32>) -> tensor<128x2xi32> loc(#loc206)
|
| 163 |
+
%left_idx_76 = tt.expand_dims %left_idx_75 {axis = 1 : i32} : tensor<128x2xi32> -> tensor<128x1x2xi32> loc(#loc178)
|
| 164 |
+
%left_idx_77 = tt.broadcast %left_idx_76 : tensor<128x1x2xi32> -> tensor<128x2x2xi32> loc(#loc179)
|
| 165 |
+
%right_idx_78 = arith.muli %y_idx_73, %flip_22 : tensor<128x2x2xi32> loc(#loc181)
|
| 166 |
+
%right_idx_79 = "tt.reduce"(%right_idx_78) <{axis = 1 : i32}> ({
|
| 167 |
+
^bb0(%right_idx_377: i32 loc(callsite(#loc1 at #loc182)), %right_idx_378: i32 loc(callsite(#loc1 at #loc182))):
|
| 168 |
+
%right_idx_379 = arith.addi %right_idx_377, %right_idx_378 : i32 loc(#loc214)
|
| 169 |
+
tt.reduce.return %right_idx_379 : i32 loc(#loc209)
|
| 170 |
+
}) : (tensor<128x2x2xi32>) -> tensor<128x2xi32> loc(#loc209)
|
| 171 |
+
%right_idx_80 = tt.expand_dims %right_idx_79 {axis = 1 : i32} : tensor<128x2xi32> -> tensor<128x1x2xi32> loc(#loc183)
|
| 172 |
+
%right_idx_81 = tt.broadcast %right_idx_80 : tensor<128x1x2xi32> -> tensor<128x2x2xi32> loc(#loc184)
|
| 173 |
+
%left_idx_82 = tt.reshape %left_idx_77 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc185)
|
| 174 |
+
%right_idx_83 = tt.reshape %right_idx_81 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc186)
|
| 175 |
+
%cond_84 = arith.cmpi slt, %ileft_71, %iright_72 : tensor<32x16xi32> loc(#loc187)
|
| 176 |
+
%eq_85 = arith.cmpi eq, %ileft_71, %iright_72 : tensor<32x16xi32> loc(#loc188)
|
| 177 |
+
%cond_86 = arith.cmpi sgt, %left_idx_82, %right_idx_83 : tensor<32x16xi32> loc(#loc189)
|
| 178 |
+
%cond_87 = arith.andi %eq_85, %cond_86 : tensor<32x16xi1> loc(#loc190)
|
| 179 |
+
%cond_88 = arith.ori %cond_84, %cond_87 : tensor<32x16xi1> loc(#loc191)
|
| 180 |
+
%cond_89 = arith.extui %cond_88 : tensor<32x16xi1> to tensor<32x16xi32> loc(#loc192)
|
| 181 |
+
%cond_90 = arith.xori %cond_89, %flip_60 : tensor<32x16xi32> loc(#loc192)
|
| 182 |
+
%cond_91 = arith.cmpi ne, %cond_90, %cst_0 : tensor<32x16xi32> loc(#loc193)
|
| 183 |
+
%ret_92 = arith.xori %ileft_71, %iright_72 : tensor<32x16xi32> loc(#loc194)
|
| 184 |
+
%ret_93 = arith.select %cond_91, %ret_92, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc195)
|
| 185 |
+
%ret_94 = arith.xori %ret_54, %ret_93 : tensor<32x16xi32> loc(#loc196)
|
| 186 |
+
%new_idxs_95 = arith.xori %left_idx_82, %right_idx_83 : tensor<32x16xi32> loc(#loc197)
|
| 187 |
+
%new_idxs_96 = arith.select %cond_91, %new_idxs_95, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc198)
|
| 188 |
+
%new_idxs_97 = arith.xori %new_idxs_58, %new_idxs_96 : tensor<32x16xi32> loc(#loc199)
|
| 189 |
+
%y_98 = tt.reshape %ret_94 : tensor<32x16xi32> -> tensor<256x2x1xi32> loc(#loc162)
|
| 190 |
+
%ileft_99 = arith.muli %y_98, %ileft : tensor<256x2x1xi32> loc(#loc164)
|
| 191 |
+
%ileft_100 = "tt.reduce"(%ileft_99) <{axis = 1 : i32}> ({
|
| 192 |
+
^bb0(%ileft_377: i32 loc(callsite(#loc1 at #loc165)), %ileft_378: i32 loc(callsite(#loc1 at #loc165))):
|
| 193 |
+
%ileft_379 = arith.addi %ileft_377, %ileft_378 : i32 loc(#loc211)
|
| 194 |
+
tt.reduce.return %ileft_379 : i32 loc(#loc201)
|
| 195 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc201)
|
| 196 |
+
%ileft_101 = tt.expand_dims %ileft_100 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc166)
|
| 197 |
+
%ileft_102 = tt.broadcast %ileft_101 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc167)
|
| 198 |
+
%iright_103 = arith.muli %y_98, %iright : tensor<256x2x1xi32> loc(#loc168)
|
| 199 |
+
%iright_104 = "tt.reduce"(%iright_103) <{axis = 1 : i32}> ({
|
| 200 |
+
^bb0(%iright_377: i32 loc(callsite(#loc1 at #loc169)), %iright_378: i32 loc(callsite(#loc1 at #loc169))):
|
| 201 |
+
%iright_379 = arith.addi %iright_377, %iright_378 : i32 loc(#loc212)
|
| 202 |
+
tt.reduce.return %iright_379 : i32 loc(#loc203)
|
| 203 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc203)
|
| 204 |
+
%iright_105 = tt.expand_dims %iright_104 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc170)
|
| 205 |
+
%iright_106 = tt.broadcast %iright_105 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc171)
|
| 206 |
+
%ileft_107 = tt.reshape %ileft_102 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc172)
|
| 207 |
+
%iright_108 = tt.reshape %iright_106 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc173)
|
| 208 |
+
%y_idx_109 = tt.reshape %new_idxs_97 : tensor<32x16xi32> -> tensor<256x2x1xi32> loc(#loc174)
|
| 209 |
+
%left_idx_110 = arith.muli %y_idx_109, %ileft : tensor<256x2x1xi32> loc(#loc176)
|
| 210 |
+
%left_idx_111 = "tt.reduce"(%left_idx_110) <{axis = 1 : i32}> ({
|
| 211 |
+
^bb0(%left_idx_377: i32 loc(callsite(#loc1 at #loc177)), %left_idx_378: i32 loc(callsite(#loc1 at #loc177))):
|
| 212 |
+
%left_idx_379 = arith.addi %left_idx_377, %left_idx_378 : i32 loc(#loc213)
|
| 213 |
+
tt.reduce.return %left_idx_379 : i32 loc(#loc206)
|
| 214 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc206)
|
| 215 |
+
%left_idx_112 = tt.expand_dims %left_idx_111 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc178)
|
| 216 |
+
%left_idx_113 = tt.broadcast %left_idx_112 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc179)
|
| 217 |
+
%right_idx_114 = arith.muli %y_idx_109, %iright : tensor<256x2x1xi32> loc(#loc181)
|
| 218 |
+
%right_idx_115 = "tt.reduce"(%right_idx_114) <{axis = 1 : i32}> ({
|
| 219 |
+
^bb0(%right_idx_377: i32 loc(callsite(#loc1 at #loc182)), %right_idx_378: i32 loc(callsite(#loc1 at #loc182))):
|
| 220 |
+
%right_idx_379 = arith.addi %right_idx_377, %right_idx_378 : i32 loc(#loc214)
|
| 221 |
+
tt.reduce.return %right_idx_379 : i32 loc(#loc209)
|
| 222 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc209)
|
| 223 |
+
%right_idx_116 = tt.expand_dims %right_idx_115 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc183)
|
| 224 |
+
%right_idx_117 = tt.broadcast %right_idx_116 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc184)
|
| 225 |
+
%left_idx_118 = tt.reshape %left_idx_113 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc185)
|
| 226 |
+
%right_idx_119 = tt.reshape %right_idx_117 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc186)
|
| 227 |
+
%cond_120 = arith.cmpi slt, %ileft_107, %iright_108 : tensor<32x16xi32> loc(#loc187)
|
| 228 |
+
%eq_121 = arith.cmpi eq, %ileft_107, %iright_108 : tensor<32x16xi32> loc(#loc188)
|
| 229 |
+
%cond_122 = arith.cmpi sgt, %left_idx_118, %right_idx_119 : tensor<32x16xi32> loc(#loc189)
|
| 230 |
+
%cond_123 = arith.andi %eq_121, %cond_122 : tensor<32x16xi1> loc(#loc190)
|
| 231 |
+
%cond_124 = arith.ori %cond_120, %cond_123 : tensor<32x16xi1> loc(#loc191)
|
| 232 |
+
%cond_125 = arith.extui %cond_124 : tensor<32x16xi1> to tensor<32x16xi32> loc(#loc192)
|
| 233 |
+
%cond_126 = arith.xori %cond_125, %flip_60 : tensor<32x16xi32> loc(#loc192)
|
| 234 |
+
%cond_127 = arith.cmpi ne, %cond_126, %cst_0 : tensor<32x16xi32> loc(#loc193)
|
| 235 |
+
%ret_128 = arith.xori %ileft_107, %iright_108 : tensor<32x16xi32> loc(#loc194)
|
| 236 |
+
%ret_129 = arith.select %cond_127, %ret_128, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc195)
|
| 237 |
+
%ret_130 = arith.xori %ret_94, %ret_129 : tensor<32x16xi32> loc(#loc196)
|
| 238 |
+
%new_idxs_131 = arith.xori %left_idx_118, %right_idx_119 : tensor<32x16xi32> loc(#loc197)
|
| 239 |
+
%new_idxs_132 = arith.select %cond_127, %new_idxs_131, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc198)
|
| 240 |
+
%new_idxs_133 = arith.xori %new_idxs_97, %new_idxs_132 : tensor<32x16xi32> loc(#loc199)
|
| 241 |
+
%flip_134 = tt.broadcast %flip_21 : tensor<1x2x1xi32> -> tensor<32x2x8xi32> loc(#loc155)
|
| 242 |
+
%flip_135 = tt.reshape %flip_134 : tensor<32x2x8xi32> -> tensor<32x16xi32> loc(#loc156)
|
| 243 |
+
%y_136 = tt.reshape %ret_130 : tensor<32x16xi32> -> tensor<64x2x4xi32> loc(#loc162)
|
| 244 |
+
%ileft_137 = tt.broadcast %left_mask : tensor<1x2x1xi32> -> tensor<64x2x4xi32> loc(#loc164)
|
| 245 |
+
%ileft_138 = arith.muli %y_136, %ileft_137 : tensor<64x2x4xi32> loc(#loc164)
|
| 246 |
+
%ileft_139 = "tt.reduce"(%ileft_138) <{axis = 1 : i32}> ({
|
| 247 |
+
^bb0(%ileft_377: i32 loc(callsite(#loc1 at #loc165)), %ileft_378: i32 loc(callsite(#loc1 at #loc165))):
|
| 248 |
+
%ileft_379 = arith.addi %ileft_377, %ileft_378 : i32 loc(#loc211)
|
| 249 |
+
tt.reduce.return %ileft_379 : i32 loc(#loc201)
|
| 250 |
+
}) : (tensor<64x2x4xi32>) -> tensor<64x4xi32> loc(#loc201)
|
| 251 |
+
%ileft_140 = tt.expand_dims %ileft_139 {axis = 1 : i32} : tensor<64x4xi32> -> tensor<64x1x4xi32> loc(#loc166)
|
| 252 |
+
%ileft_141 = tt.broadcast %ileft_140 : tensor<64x1x4xi32> -> tensor<64x2x4xi32> loc(#loc167)
|
| 253 |
+
%iright_142 = arith.muli %y_136, %flip_59 : tensor<64x2x4xi32> loc(#loc168)
|
| 254 |
+
%iright_143 = "tt.reduce"(%iright_142) <{axis = 1 : i32}> ({
|
| 255 |
+
^bb0(%iright_377: i32 loc(callsite(#loc1 at #loc169)), %iright_378: i32 loc(callsite(#loc1 at #loc169))):
|
| 256 |
+
%iright_379 = arith.addi %iright_377, %iright_378 : i32 loc(#loc212)
|
| 257 |
+
tt.reduce.return %iright_379 : i32 loc(#loc203)
|
| 258 |
+
}) : (tensor<64x2x4xi32>) -> tensor<64x4xi32> loc(#loc203)
|
| 259 |
+
%iright_144 = tt.expand_dims %iright_143 {axis = 1 : i32} : tensor<64x4xi32> -> tensor<64x1x4xi32> loc(#loc170)
|
| 260 |
+
%iright_145 = tt.broadcast %iright_144 : tensor<64x1x4xi32> -> tensor<64x2x4xi32> loc(#loc171)
|
| 261 |
+
%ileft_146 = tt.reshape %ileft_141 : tensor<64x2x4xi32> -> tensor<32x16xi32> loc(#loc172)
|
| 262 |
+
%iright_147 = tt.reshape %iright_145 : tensor<64x2x4xi32> -> tensor<32x16xi32> loc(#loc173)
|
| 263 |
+
%y_idx_148 = tt.reshape %new_idxs_133 : tensor<32x16xi32> -> tensor<64x2x4xi32> loc(#loc174)
|
| 264 |
+
%left_idx_149 = arith.muli %y_idx_148, %ileft_137 : tensor<64x2x4xi32> loc(#loc176)
|
| 265 |
+
%left_idx_150 = "tt.reduce"(%left_idx_149) <{axis = 1 : i32}> ({
|
| 266 |
+
^bb0(%left_idx_377: i32 loc(callsite(#loc1 at #loc177)), %left_idx_378: i32 loc(callsite(#loc1 at #loc177))):
|
| 267 |
+
%left_idx_379 = arith.addi %left_idx_377, %left_idx_378 : i32 loc(#loc213)
|
| 268 |
+
tt.reduce.return %left_idx_379 : i32 loc(#loc206)
|
| 269 |
+
}) : (tensor<64x2x4xi32>) -> tensor<64x4xi32> loc(#loc206)
|
| 270 |
+
%left_idx_151 = tt.expand_dims %left_idx_150 {axis = 1 : i32} : tensor<64x4xi32> -> tensor<64x1x4xi32> loc(#loc178)
|
| 271 |
+
%left_idx_152 = tt.broadcast %left_idx_151 : tensor<64x1x4xi32> -> tensor<64x2x4xi32> loc(#loc179)
|
| 272 |
+
%right_idx_153 = arith.muli %y_idx_148, %flip_59 : tensor<64x2x4xi32> loc(#loc181)
|
| 273 |
+
%right_idx_154 = "tt.reduce"(%right_idx_153) <{axis = 1 : i32}> ({
|
| 274 |
+
^bb0(%right_idx_377: i32 loc(callsite(#loc1 at #loc182)), %right_idx_378: i32 loc(callsite(#loc1 at #loc182))):
|
| 275 |
+
%right_idx_379 = arith.addi %right_idx_377, %right_idx_378 : i32 loc(#loc214)
|
| 276 |
+
tt.reduce.return %right_idx_379 : i32 loc(#loc209)
|
| 277 |
+
}) : (tensor<64x2x4xi32>) -> tensor<64x4xi32> loc(#loc209)
|
| 278 |
+
%right_idx_155 = tt.expand_dims %right_idx_154 {axis = 1 : i32} : tensor<64x4xi32> -> tensor<64x1x4xi32> loc(#loc183)
|
| 279 |
+
%right_idx_156 = tt.broadcast %right_idx_155 : tensor<64x1x4xi32> -> tensor<64x2x4xi32> loc(#loc184)
|
| 280 |
+
%left_idx_157 = tt.reshape %left_idx_152 : tensor<64x2x4xi32> -> tensor<32x16xi32> loc(#loc185)
|
| 281 |
+
%right_idx_158 = tt.reshape %right_idx_156 : tensor<64x2x4xi32> -> tensor<32x16xi32> loc(#loc186)
|
| 282 |
+
%cond_159 = arith.cmpi slt, %ileft_146, %iright_147 : tensor<32x16xi32> loc(#loc187)
|
| 283 |
+
%eq_160 = arith.cmpi eq, %ileft_146, %iright_147 : tensor<32x16xi32> loc(#loc188)
|
| 284 |
+
%cond_161 = arith.cmpi sgt, %left_idx_157, %right_idx_158 : tensor<32x16xi32> loc(#loc189)
|
| 285 |
+
%cond_162 = arith.andi %eq_160, %cond_161 : tensor<32x16xi1> loc(#loc190)
|
| 286 |
+
%cond_163 = arith.ori %cond_159, %cond_162 : tensor<32x16xi1> loc(#loc191)
|
| 287 |
+
%cond_164 = arith.extui %cond_163 : tensor<32x16xi1> to tensor<32x16xi32> loc(#loc192)
|
| 288 |
+
%cond_165 = arith.xori %cond_164, %flip_135 : tensor<32x16xi32> loc(#loc192)
|
| 289 |
+
%cond_166 = arith.cmpi ne, %cond_165, %cst_0 : tensor<32x16xi32> loc(#loc193)
|
| 290 |
+
%ret_167 = arith.xori %ileft_146, %iright_147 : tensor<32x16xi32> loc(#loc194)
|
| 291 |
+
%ret_168 = arith.select %cond_166, %ret_167, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc195)
|
| 292 |
+
%ret_169 = arith.xori %ret_130, %ret_168 : tensor<32x16xi32> loc(#loc196)
|
| 293 |
+
%new_idxs_170 = arith.xori %left_idx_157, %right_idx_158 : tensor<32x16xi32> loc(#loc197)
|
| 294 |
+
%new_idxs_171 = arith.select %cond_166, %new_idxs_170, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc198)
|
| 295 |
+
%new_idxs_172 = arith.xori %new_idxs_133, %new_idxs_171 : tensor<32x16xi32> loc(#loc199)
|
| 296 |
+
%y_173 = tt.reshape %ret_169 : tensor<32x16xi32> -> tensor<128x2x2xi32> loc(#loc162)
|
| 297 |
+
%ileft_174 = arith.muli %y_173, %ileft_62 : tensor<128x2x2xi32> loc(#loc164)
|
| 298 |
+
%ileft_175 = "tt.reduce"(%ileft_174) <{axis = 1 : i32}> ({
|
| 299 |
+
^bb0(%ileft_377: i32 loc(callsite(#loc1 at #loc165)), %ileft_378: i32 loc(callsite(#loc1 at #loc165))):
|
| 300 |
+
%ileft_379 = arith.addi %ileft_377, %ileft_378 : i32 loc(#loc211)
|
| 301 |
+
tt.reduce.return %ileft_379 : i32 loc(#loc201)
|
| 302 |
+
}) : (tensor<128x2x2xi32>) -> tensor<128x2xi32> loc(#loc201)
|
| 303 |
+
%ileft_176 = tt.expand_dims %ileft_175 {axis = 1 : i32} : tensor<128x2xi32> -> tensor<128x1x2xi32> loc(#loc166)
|
| 304 |
+
%ileft_177 = tt.broadcast %ileft_176 : tensor<128x1x2xi32> -> tensor<128x2x2xi32> loc(#loc167)
|
| 305 |
+
%iright_178 = arith.muli %y_173, %flip_22 : tensor<128x2x2xi32> loc(#loc168)
|
| 306 |
+
%iright_179 = "tt.reduce"(%iright_178) <{axis = 1 : i32}> ({
|
| 307 |
+
^bb0(%iright_377: i32 loc(callsite(#loc1 at #loc169)), %iright_378: i32 loc(callsite(#loc1 at #loc169))):
|
| 308 |
+
%iright_379 = arith.addi %iright_377, %iright_378 : i32 loc(#loc212)
|
| 309 |
+
tt.reduce.return %iright_379 : i32 loc(#loc203)
|
| 310 |
+
}) : (tensor<128x2x2xi32>) -> tensor<128x2xi32> loc(#loc203)
|
| 311 |
+
%iright_180 = tt.expand_dims %iright_179 {axis = 1 : i32} : tensor<128x2xi32> -> tensor<128x1x2xi32> loc(#loc170)
|
| 312 |
+
%iright_181 = tt.broadcast %iright_180 : tensor<128x1x2xi32> -> tensor<128x2x2xi32> loc(#loc171)
|
| 313 |
+
%ileft_182 = tt.reshape %ileft_177 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc172)
|
| 314 |
+
%iright_183 = tt.reshape %iright_181 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc173)
|
| 315 |
+
%y_idx_184 = tt.reshape %new_idxs_172 : tensor<32x16xi32> -> tensor<128x2x2xi32> loc(#loc174)
|
| 316 |
+
%left_idx_185 = arith.muli %y_idx_184, %ileft_62 : tensor<128x2x2xi32> loc(#loc176)
|
| 317 |
+
%left_idx_186 = "tt.reduce"(%left_idx_185) <{axis = 1 : i32}> ({
|
| 318 |
+
^bb0(%left_idx_377: i32 loc(callsite(#loc1 at #loc177)), %left_idx_378: i32 loc(callsite(#loc1 at #loc177))):
|
| 319 |
+
%left_idx_379 = arith.addi %left_idx_377, %left_idx_378 : i32 loc(#loc213)
|
| 320 |
+
tt.reduce.return %left_idx_379 : i32 loc(#loc206)
|
| 321 |
+
}) : (tensor<128x2x2xi32>) -> tensor<128x2xi32> loc(#loc206)
|
| 322 |
+
%left_idx_187 = tt.expand_dims %left_idx_186 {axis = 1 : i32} : tensor<128x2xi32> -> tensor<128x1x2xi32> loc(#loc178)
|
| 323 |
+
%left_idx_188 = tt.broadcast %left_idx_187 : tensor<128x1x2xi32> -> tensor<128x2x2xi32> loc(#loc179)
|
| 324 |
+
%right_idx_189 = arith.muli %y_idx_184, %flip_22 : tensor<128x2x2xi32> loc(#loc181)
|
| 325 |
+
%right_idx_190 = "tt.reduce"(%right_idx_189) <{axis = 1 : i32}> ({
|
| 326 |
+
^bb0(%right_idx_377: i32 loc(callsite(#loc1 at #loc182)), %right_idx_378: i32 loc(callsite(#loc1 at #loc182))):
|
| 327 |
+
%right_idx_379 = arith.addi %right_idx_377, %right_idx_378 : i32 loc(#loc214)
|
| 328 |
+
tt.reduce.return %right_idx_379 : i32 loc(#loc209)
|
| 329 |
+
}) : (tensor<128x2x2xi32>) -> tensor<128x2xi32> loc(#loc209)
|
| 330 |
+
%right_idx_191 = tt.expand_dims %right_idx_190 {axis = 1 : i32} : tensor<128x2xi32> -> tensor<128x1x2xi32> loc(#loc183)
|
| 331 |
+
%right_idx_192 = tt.broadcast %right_idx_191 : tensor<128x1x2xi32> -> tensor<128x2x2xi32> loc(#loc184)
|
| 332 |
+
%left_idx_193 = tt.reshape %left_idx_188 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc185)
|
| 333 |
+
%right_idx_194 = tt.reshape %right_idx_192 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc186)
|
| 334 |
+
%cond_195 = arith.cmpi slt, %ileft_182, %iright_183 : tensor<32x16xi32> loc(#loc187)
|
| 335 |
+
%eq_196 = arith.cmpi eq, %ileft_182, %iright_183 : tensor<32x16xi32> loc(#loc188)
|
| 336 |
+
%cond_197 = arith.cmpi sgt, %left_idx_193, %right_idx_194 : tensor<32x16xi32> loc(#loc189)
|
| 337 |
+
%cond_198 = arith.andi %eq_196, %cond_197 : tensor<32x16xi1> loc(#loc190)
|
| 338 |
+
%cond_199 = arith.ori %cond_195, %cond_198 : tensor<32x16xi1> loc(#loc191)
|
| 339 |
+
%cond_200 = arith.extui %cond_199 : tensor<32x16xi1> to tensor<32x16xi32> loc(#loc192)
|
| 340 |
+
%cond_201 = arith.xori %cond_200, %flip_135 : tensor<32x16xi32> loc(#loc192)
|
| 341 |
+
%cond_202 = arith.cmpi ne, %cond_201, %cst_0 : tensor<32x16xi32> loc(#loc193)
|
| 342 |
+
%ret_203 = arith.xori %ileft_182, %iright_183 : tensor<32x16xi32> loc(#loc194)
|
| 343 |
+
%ret_204 = arith.select %cond_202, %ret_203, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc195)
|
| 344 |
+
%ret_205 = arith.xori %ret_169, %ret_204 : tensor<32x16xi32> loc(#loc196)
|
| 345 |
+
%new_idxs_206 = arith.xori %left_idx_193, %right_idx_194 : tensor<32x16xi32> loc(#loc197)
|
| 346 |
+
%new_idxs_207 = arith.select %cond_202, %new_idxs_206, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc198)
|
| 347 |
+
%new_idxs_208 = arith.xori %new_idxs_172, %new_idxs_207 : tensor<32x16xi32> loc(#loc199)
|
| 348 |
+
%y_209 = tt.reshape %ret_205 : tensor<32x16xi32> -> tensor<256x2x1xi32> loc(#loc162)
|
| 349 |
+
%ileft_210 = arith.muli %y_209, %ileft : tensor<256x2x1xi32> loc(#loc164)
|
| 350 |
+
%ileft_211 = "tt.reduce"(%ileft_210) <{axis = 1 : i32}> ({
|
| 351 |
+
^bb0(%ileft_377: i32 loc(callsite(#loc1 at #loc165)), %ileft_378: i32 loc(callsite(#loc1 at #loc165))):
|
| 352 |
+
%ileft_379 = arith.addi %ileft_377, %ileft_378 : i32 loc(#loc211)
|
| 353 |
+
tt.reduce.return %ileft_379 : i32 loc(#loc201)
|
| 354 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc201)
|
| 355 |
+
%ileft_212 = tt.expand_dims %ileft_211 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc166)
|
| 356 |
+
%ileft_213 = tt.broadcast %ileft_212 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc167)
|
| 357 |
+
%iright_214 = arith.muli %y_209, %iright : tensor<256x2x1xi32> loc(#loc168)
|
| 358 |
+
%iright_215 = "tt.reduce"(%iright_214) <{axis = 1 : i32}> ({
|
| 359 |
+
^bb0(%iright_377: i32 loc(callsite(#loc1 at #loc169)), %iright_378: i32 loc(callsite(#loc1 at #loc169))):
|
| 360 |
+
%iright_379 = arith.addi %iright_377, %iright_378 : i32 loc(#loc212)
|
| 361 |
+
tt.reduce.return %iright_379 : i32 loc(#loc203)
|
| 362 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc203)
|
| 363 |
+
%iright_216 = tt.expand_dims %iright_215 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc170)
|
| 364 |
+
%iright_217 = tt.broadcast %iright_216 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc171)
|
| 365 |
+
%ileft_218 = tt.reshape %ileft_213 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc172)
|
| 366 |
+
%iright_219 = tt.reshape %iright_217 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc173)
|
| 367 |
+
%y_idx_220 = tt.reshape %new_idxs_208 : tensor<32x16xi32> -> tensor<256x2x1xi32> loc(#loc174)
|
| 368 |
+
%left_idx_221 = arith.muli %y_idx_220, %ileft : tensor<256x2x1xi32> loc(#loc176)
|
| 369 |
+
%left_idx_222 = "tt.reduce"(%left_idx_221) <{axis = 1 : i32}> ({
|
| 370 |
+
^bb0(%left_idx_377: i32 loc(callsite(#loc1 at #loc177)), %left_idx_378: i32 loc(callsite(#loc1 at #loc177))):
|
| 371 |
+
%left_idx_379 = arith.addi %left_idx_377, %left_idx_378 : i32 loc(#loc213)
|
| 372 |
+
tt.reduce.return %left_idx_379 : i32 loc(#loc206)
|
| 373 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc206)
|
| 374 |
+
%left_idx_223 = tt.expand_dims %left_idx_222 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc178)
|
| 375 |
+
%left_idx_224 = tt.broadcast %left_idx_223 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc179)
|
| 376 |
+
%right_idx_225 = arith.muli %y_idx_220, %iright : tensor<256x2x1xi32> loc(#loc181)
|
| 377 |
+
%right_idx_226 = "tt.reduce"(%right_idx_225) <{axis = 1 : i32}> ({
|
| 378 |
+
^bb0(%right_idx_377: i32 loc(callsite(#loc1 at #loc182)), %right_idx_378: i32 loc(callsite(#loc1 at #loc182))):
|
| 379 |
+
%right_idx_379 = arith.addi %right_idx_377, %right_idx_378 : i32 loc(#loc214)
|
| 380 |
+
tt.reduce.return %right_idx_379 : i32 loc(#loc209)
|
| 381 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc209)
|
| 382 |
+
%right_idx_227 = tt.expand_dims %right_idx_226 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc183)
|
| 383 |
+
%right_idx_228 = tt.broadcast %right_idx_227 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc184)
|
| 384 |
+
%left_idx_229 = tt.reshape %left_idx_224 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc185)
|
| 385 |
+
%right_idx_230 = tt.reshape %right_idx_228 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc186)
|
| 386 |
+
%cond_231 = arith.cmpi slt, %ileft_218, %iright_219 : tensor<32x16xi32> loc(#loc187)
|
| 387 |
+
%eq_232 = arith.cmpi eq, %ileft_218, %iright_219 : tensor<32x16xi32> loc(#loc188)
|
| 388 |
+
%cond_233 = arith.cmpi sgt, %left_idx_229, %right_idx_230 : tensor<32x16xi32> loc(#loc189)
|
| 389 |
+
%cond_234 = arith.andi %eq_232, %cond_233 : tensor<32x16xi1> loc(#loc190)
|
| 390 |
+
%cond_235 = arith.ori %cond_231, %cond_234 : tensor<32x16xi1> loc(#loc191)
|
| 391 |
+
%cond_236 = arith.extui %cond_235 : tensor<32x16xi1> to tensor<32x16xi32> loc(#loc192)
|
| 392 |
+
%cond_237 = arith.xori %cond_236, %flip_135 : tensor<32x16xi32> loc(#loc192)
|
| 393 |
+
%cond_238 = arith.cmpi ne, %cond_237, %cst_0 : tensor<32x16xi32> loc(#loc193)
|
| 394 |
+
%ret_239 = arith.xori %ileft_218, %iright_219 : tensor<32x16xi32> loc(#loc194)
|
| 395 |
+
%ret_240 = arith.select %cond_238, %ret_239, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc195)
|
| 396 |
+
%ret_241 = arith.xori %ret_205, %ret_240 : tensor<32x16xi32> loc(#loc196)
|
| 397 |
+
%new_idxs_242 = arith.xori %left_idx_229, %right_idx_230 : tensor<32x16xi32> loc(#loc197)
|
| 398 |
+
%new_idxs_243 = arith.select %cond_238, %new_idxs_242, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc198)
|
| 399 |
+
%new_idxs_244 = arith.xori %new_idxs_208, %new_idxs_243 : tensor<32x16xi32> loc(#loc199)
|
| 400 |
+
%y_245 = tt.reshape %ret_241 : tensor<32x16xi32> -> tensor<32x2x8xi32> loc(#loc162)
|
| 401 |
+
%ileft_246 = tt.broadcast %left_mask : tensor<1x2x1xi32> -> tensor<32x2x8xi32> loc(#loc164)
|
| 402 |
+
%ileft_247 = arith.muli %y_245, %ileft_246 : tensor<32x2x8xi32> loc(#loc164)
|
| 403 |
+
%ileft_248 = "tt.reduce"(%ileft_247) <{axis = 1 : i32}> ({
|
| 404 |
+
^bb0(%ileft_377: i32 loc(callsite(#loc1 at #loc165)), %ileft_378: i32 loc(callsite(#loc1 at #loc165))):
|
| 405 |
+
%ileft_379 = arith.addi %ileft_377, %ileft_378 : i32 loc(#loc211)
|
| 406 |
+
tt.reduce.return %ileft_379 : i32 loc(#loc201)
|
| 407 |
+
}) : (tensor<32x2x8xi32>) -> tensor<32x8xi32> loc(#loc201)
|
| 408 |
+
%ileft_249 = tt.expand_dims %ileft_248 {axis = 1 : i32} : tensor<32x8xi32> -> tensor<32x1x8xi32> loc(#loc166)
|
| 409 |
+
%ileft_250 = tt.broadcast %ileft_249 : tensor<32x1x8xi32> -> tensor<32x2x8xi32> loc(#loc167)
|
| 410 |
+
%iright_251 = arith.muli %y_245, %flip_134 : tensor<32x2x8xi32> loc(#loc168)
|
| 411 |
+
%iright_252 = "tt.reduce"(%iright_251) <{axis = 1 : i32}> ({
|
| 412 |
+
^bb0(%iright_377: i32 loc(callsite(#loc1 at #loc169)), %iright_378: i32 loc(callsite(#loc1 at #loc169))):
|
| 413 |
+
%iright_379 = arith.addi %iright_377, %iright_378 : i32 loc(#loc212)
|
| 414 |
+
tt.reduce.return %iright_379 : i32 loc(#loc203)
|
| 415 |
+
}) : (tensor<32x2x8xi32>) -> tensor<32x8xi32> loc(#loc203)
|
| 416 |
+
%iright_253 = tt.expand_dims %iright_252 {axis = 1 : i32} : tensor<32x8xi32> -> tensor<32x1x8xi32> loc(#loc170)
|
| 417 |
+
%iright_254 = tt.broadcast %iright_253 : tensor<32x1x8xi32> -> tensor<32x2x8xi32> loc(#loc171)
|
| 418 |
+
%ileft_255 = tt.reshape %ileft_250 : tensor<32x2x8xi32> -> tensor<32x16xi32> loc(#loc172)
|
| 419 |
+
%iright_256 = tt.reshape %iright_254 : tensor<32x2x8xi32> -> tensor<32x16xi32> loc(#loc173)
|
| 420 |
+
%y_idx_257 = tt.reshape %new_idxs_244 : tensor<32x16xi32> -> tensor<32x2x8xi32> loc(#loc174)
|
| 421 |
+
%left_idx_258 = arith.muli %y_idx_257, %ileft_246 : tensor<32x2x8xi32> loc(#loc176)
|
| 422 |
+
%left_idx_259 = "tt.reduce"(%left_idx_258) <{axis = 1 : i32}> ({
|
| 423 |
+
^bb0(%left_idx_377: i32 loc(callsite(#loc1 at #loc177)), %left_idx_378: i32 loc(callsite(#loc1 at #loc177))):
|
| 424 |
+
%left_idx_379 = arith.addi %left_idx_377, %left_idx_378 : i32 loc(#loc213)
|
| 425 |
+
tt.reduce.return %left_idx_379 : i32 loc(#loc206)
|
| 426 |
+
}) : (tensor<32x2x8xi32>) -> tensor<32x8xi32> loc(#loc206)
|
| 427 |
+
%left_idx_260 = tt.expand_dims %left_idx_259 {axis = 1 : i32} : tensor<32x8xi32> -> tensor<32x1x8xi32> loc(#loc178)
|
| 428 |
+
%left_idx_261 = tt.broadcast %left_idx_260 : tensor<32x1x8xi32> -> tensor<32x2x8xi32> loc(#loc179)
|
| 429 |
+
%right_idx_262 = arith.muli %y_idx_257, %flip_134 : tensor<32x2x8xi32> loc(#loc181)
|
| 430 |
+
%right_idx_263 = "tt.reduce"(%right_idx_262) <{axis = 1 : i32}> ({
|
| 431 |
+
^bb0(%right_idx_377: i32 loc(callsite(#loc1 at #loc182)), %right_idx_378: i32 loc(callsite(#loc1 at #loc182))):
|
| 432 |
+
%right_idx_379 = arith.addi %right_idx_377, %right_idx_378 : i32 loc(#loc214)
|
| 433 |
+
tt.reduce.return %right_idx_379 : i32 loc(#loc209)
|
| 434 |
+
}) : (tensor<32x2x8xi32>) -> tensor<32x8xi32> loc(#loc209)
|
| 435 |
+
%right_idx_264 = tt.expand_dims %right_idx_263 {axis = 1 : i32} : tensor<32x8xi32> -> tensor<32x1x8xi32> loc(#loc183)
|
| 436 |
+
%right_idx_265 = tt.broadcast %right_idx_264 : tensor<32x1x8xi32> -> tensor<32x2x8xi32> loc(#loc184)
|
| 437 |
+
%left_idx_266 = tt.reshape %left_idx_261 : tensor<32x2x8xi32> -> tensor<32x16xi32> loc(#loc185)
|
| 438 |
+
%right_idx_267 = tt.reshape %right_idx_265 : tensor<32x2x8xi32> -> tensor<32x16xi32> loc(#loc186)
|
| 439 |
+
%cond_268 = arith.cmpi slt, %ileft_255, %iright_256 : tensor<32x16xi32> loc(#loc187)
|
| 440 |
+
%eq_269 = arith.cmpi eq, %ileft_255, %iright_256 : tensor<32x16xi32> loc(#loc188)
|
| 441 |
+
%cond_270 = arith.cmpi sgt, %left_idx_266, %right_idx_267 : tensor<32x16xi32> loc(#loc189)
|
| 442 |
+
%cond_271 = arith.andi %eq_269, %cond_270 : tensor<32x16xi1> loc(#loc190)
|
| 443 |
+
%cond_272 = arith.ori %cond_268, %cond_271 : tensor<32x16xi1> loc(#loc191)
|
| 444 |
+
%ret_273 = arith.xori %ileft_255, %iright_256 : tensor<32x16xi32> loc(#loc194)
|
| 445 |
+
%ret_274 = arith.select %cond_272, %ret_273, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc195)
|
| 446 |
+
%ret_275 = arith.xori %ret_241, %ret_274 : tensor<32x16xi32> loc(#loc196)
|
| 447 |
+
%new_idxs_276 = arith.xori %left_idx_266, %right_idx_267 : tensor<32x16xi32> loc(#loc197)
|
| 448 |
+
%new_idxs_277 = arith.select %cond_272, %new_idxs_276, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc198)
|
| 449 |
+
%new_idxs_278 = arith.xori %new_idxs_244, %new_idxs_277 : tensor<32x16xi32> loc(#loc199)
|
| 450 |
+
%y_279 = tt.reshape %ret_275 : tensor<32x16xi32> -> tensor<64x2x4xi32> loc(#loc162)
|
| 451 |
+
%ileft_280 = arith.muli %y_279, %ileft_137 : tensor<64x2x4xi32> loc(#loc164)
|
| 452 |
+
%ileft_281 = "tt.reduce"(%ileft_280) <{axis = 1 : i32}> ({
|
| 453 |
+
^bb0(%ileft_377: i32 loc(callsite(#loc1 at #loc165)), %ileft_378: i32 loc(callsite(#loc1 at #loc165))):
|
| 454 |
+
%ileft_379 = arith.addi %ileft_377, %ileft_378 : i32 loc(#loc211)
|
| 455 |
+
tt.reduce.return %ileft_379 : i32 loc(#loc201)
|
| 456 |
+
}) : (tensor<64x2x4xi32>) -> tensor<64x4xi32> loc(#loc201)
|
| 457 |
+
%ileft_282 = tt.expand_dims %ileft_281 {axis = 1 : i32} : tensor<64x4xi32> -> tensor<64x1x4xi32> loc(#loc166)
|
| 458 |
+
%ileft_283 = tt.broadcast %ileft_282 : tensor<64x1x4xi32> -> tensor<64x2x4xi32> loc(#loc167)
|
| 459 |
+
%iright_284 = arith.muli %y_279, %flip_59 : tensor<64x2x4xi32> loc(#loc168)
|
| 460 |
+
%iright_285 = "tt.reduce"(%iright_284) <{axis = 1 : i32}> ({
|
| 461 |
+
^bb0(%iright_377: i32 loc(callsite(#loc1 at #loc169)), %iright_378: i32 loc(callsite(#loc1 at #loc169))):
|
| 462 |
+
%iright_379 = arith.addi %iright_377, %iright_378 : i32 loc(#loc212)
|
| 463 |
+
tt.reduce.return %iright_379 : i32 loc(#loc203)
|
| 464 |
+
}) : (tensor<64x2x4xi32>) -> tensor<64x4xi32> loc(#loc203)
|
| 465 |
+
%iright_286 = tt.expand_dims %iright_285 {axis = 1 : i32} : tensor<64x4xi32> -> tensor<64x1x4xi32> loc(#loc170)
|
| 466 |
+
%iright_287 = tt.broadcast %iright_286 : tensor<64x1x4xi32> -> tensor<64x2x4xi32> loc(#loc171)
|
| 467 |
+
%ileft_288 = tt.reshape %ileft_283 : tensor<64x2x4xi32> -> tensor<32x16xi32> loc(#loc172)
|
| 468 |
+
%iright_289 = tt.reshape %iright_287 : tensor<64x2x4xi32> -> tensor<32x16xi32> loc(#loc173)
|
| 469 |
+
%y_idx_290 = tt.reshape %new_idxs_278 : tensor<32x16xi32> -> tensor<64x2x4xi32> loc(#loc174)
|
| 470 |
+
%left_idx_291 = arith.muli %y_idx_290, %ileft_137 : tensor<64x2x4xi32> loc(#loc176)
|
| 471 |
+
%left_idx_292 = "tt.reduce"(%left_idx_291) <{axis = 1 : i32}> ({
|
| 472 |
+
^bb0(%left_idx_377: i32 loc(callsite(#loc1 at #loc177)), %left_idx_378: i32 loc(callsite(#loc1 at #loc177))):
|
| 473 |
+
%left_idx_379 = arith.addi %left_idx_377, %left_idx_378 : i32 loc(#loc213)
|
| 474 |
+
tt.reduce.return %left_idx_379 : i32 loc(#loc206)
|
| 475 |
+
}) : (tensor<64x2x4xi32>) -> tensor<64x4xi32> loc(#loc206)
|
| 476 |
+
%left_idx_293 = tt.expand_dims %left_idx_292 {axis = 1 : i32} : tensor<64x4xi32> -> tensor<64x1x4xi32> loc(#loc178)
|
| 477 |
+
%left_idx_294 = tt.broadcast %left_idx_293 : tensor<64x1x4xi32> -> tensor<64x2x4xi32> loc(#loc179)
|
| 478 |
+
%right_idx_295 = arith.muli %y_idx_290, %flip_59 : tensor<64x2x4xi32> loc(#loc181)
|
| 479 |
+
%right_idx_296 = "tt.reduce"(%right_idx_295) <{axis = 1 : i32}> ({
|
| 480 |
+
^bb0(%right_idx_377: i32 loc(callsite(#loc1 at #loc182)), %right_idx_378: i32 loc(callsite(#loc1 at #loc182))):
|
| 481 |
+
%right_idx_379 = arith.addi %right_idx_377, %right_idx_378 : i32 loc(#loc214)
|
| 482 |
+
tt.reduce.return %right_idx_379 : i32 loc(#loc209)
|
| 483 |
+
}) : (tensor<64x2x4xi32>) -> tensor<64x4xi32> loc(#loc209)
|
| 484 |
+
%right_idx_297 = tt.expand_dims %right_idx_296 {axis = 1 : i32} : tensor<64x4xi32> -> tensor<64x1x4xi32> loc(#loc183)
|
| 485 |
+
%right_idx_298 = tt.broadcast %right_idx_297 : tensor<64x1x4xi32> -> tensor<64x2x4xi32> loc(#loc184)
|
| 486 |
+
%left_idx_299 = tt.reshape %left_idx_294 : tensor<64x2x4xi32> -> tensor<32x16xi32> loc(#loc185)
|
| 487 |
+
%right_idx_300 = tt.reshape %right_idx_298 : tensor<64x2x4xi32> -> tensor<32x16xi32> loc(#loc186)
|
| 488 |
+
%cond_301 = arith.cmpi slt, %ileft_288, %iright_289 : tensor<32x16xi32> loc(#loc187)
|
| 489 |
+
%eq_302 = arith.cmpi eq, %ileft_288, %iright_289 : tensor<32x16xi32> loc(#loc188)
|
| 490 |
+
%cond_303 = arith.cmpi sgt, %left_idx_299, %right_idx_300 : tensor<32x16xi32> loc(#loc189)
|
| 491 |
+
%cond_304 = arith.andi %eq_302, %cond_303 : tensor<32x16xi1> loc(#loc190)
|
| 492 |
+
%cond_305 = arith.ori %cond_301, %cond_304 : tensor<32x16xi1> loc(#loc191)
|
| 493 |
+
%ret_306 = arith.xori %ileft_288, %iright_289 : tensor<32x16xi32> loc(#loc194)
|
| 494 |
+
%ret_307 = arith.select %cond_305, %ret_306, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc195)
|
| 495 |
+
%ret_308 = arith.xori %ret_275, %ret_307 : tensor<32x16xi32> loc(#loc196)
|
| 496 |
+
%new_idxs_309 = arith.xori %left_idx_299, %right_idx_300 : tensor<32x16xi32> loc(#loc197)
|
| 497 |
+
%new_idxs_310 = arith.select %cond_305, %new_idxs_309, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc198)
|
| 498 |
+
%new_idxs_311 = arith.xori %new_idxs_278, %new_idxs_310 : tensor<32x16xi32> loc(#loc199)
|
| 499 |
+
%y_312 = tt.reshape %ret_308 : tensor<32x16xi32> -> tensor<128x2x2xi32> loc(#loc162)
|
| 500 |
+
%ileft_313 = arith.muli %y_312, %ileft_62 : tensor<128x2x2xi32> loc(#loc164)
|
| 501 |
+
%ileft_314 = "tt.reduce"(%ileft_313) <{axis = 1 : i32}> ({
|
| 502 |
+
^bb0(%ileft_377: i32 loc(callsite(#loc1 at #loc165)), %ileft_378: i32 loc(callsite(#loc1 at #loc165))):
|
| 503 |
+
%ileft_379 = arith.addi %ileft_377, %ileft_378 : i32 loc(#loc211)
|
| 504 |
+
tt.reduce.return %ileft_379 : i32 loc(#loc201)
|
| 505 |
+
}) : (tensor<128x2x2xi32>) -> tensor<128x2xi32> loc(#loc201)
|
| 506 |
+
%ileft_315 = tt.expand_dims %ileft_314 {axis = 1 : i32} : tensor<128x2xi32> -> tensor<128x1x2xi32> loc(#loc166)
|
| 507 |
+
%ileft_316 = tt.broadcast %ileft_315 : tensor<128x1x2xi32> -> tensor<128x2x2xi32> loc(#loc167)
|
| 508 |
+
%iright_317 = arith.muli %y_312, %flip_22 : tensor<128x2x2xi32> loc(#loc168)
|
| 509 |
+
%iright_318 = "tt.reduce"(%iright_317) <{axis = 1 : i32}> ({
|
| 510 |
+
^bb0(%iright_377: i32 loc(callsite(#loc1 at #loc169)), %iright_378: i32 loc(callsite(#loc1 at #loc169))):
|
| 511 |
+
%iright_379 = arith.addi %iright_377, %iright_378 : i32 loc(#loc212)
|
| 512 |
+
tt.reduce.return %iright_379 : i32 loc(#loc203)
|
| 513 |
+
}) : (tensor<128x2x2xi32>) -> tensor<128x2xi32> loc(#loc203)
|
| 514 |
+
%iright_319 = tt.expand_dims %iright_318 {axis = 1 : i32} : tensor<128x2xi32> -> tensor<128x1x2xi32> loc(#loc170)
|
| 515 |
+
%iright_320 = tt.broadcast %iright_319 : tensor<128x1x2xi32> -> tensor<128x2x2xi32> loc(#loc171)
|
| 516 |
+
%ileft_321 = tt.reshape %ileft_316 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc172)
|
| 517 |
+
%iright_322 = tt.reshape %iright_320 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc173)
|
| 518 |
+
%y_idx_323 = tt.reshape %new_idxs_311 : tensor<32x16xi32> -> tensor<128x2x2xi32> loc(#loc174)
|
| 519 |
+
%left_idx_324 = arith.muli %y_idx_323, %ileft_62 : tensor<128x2x2xi32> loc(#loc176)
|
| 520 |
+
%left_idx_325 = "tt.reduce"(%left_idx_324) <{axis = 1 : i32}> ({
|
| 521 |
+
^bb0(%left_idx_377: i32 loc(callsite(#loc1 at #loc177)), %left_idx_378: i32 loc(callsite(#loc1 at #loc177))):
|
| 522 |
+
%left_idx_379 = arith.addi %left_idx_377, %left_idx_378 : i32 loc(#loc213)
|
| 523 |
+
tt.reduce.return %left_idx_379 : i32 loc(#loc206)
|
| 524 |
+
}) : (tensor<128x2x2xi32>) -> tensor<128x2xi32> loc(#loc206)
|
| 525 |
+
%left_idx_326 = tt.expand_dims %left_idx_325 {axis = 1 : i32} : tensor<128x2xi32> -> tensor<128x1x2xi32> loc(#loc178)
|
| 526 |
+
%left_idx_327 = tt.broadcast %left_idx_326 : tensor<128x1x2xi32> -> tensor<128x2x2xi32> loc(#loc179)
|
| 527 |
+
%right_idx_328 = arith.muli %y_idx_323, %flip_22 : tensor<128x2x2xi32> loc(#loc181)
|
| 528 |
+
%right_idx_329 = "tt.reduce"(%right_idx_328) <{axis = 1 : i32}> ({
|
| 529 |
+
^bb0(%right_idx_377: i32 loc(callsite(#loc1 at #loc182)), %right_idx_378: i32 loc(callsite(#loc1 at #loc182))):
|
| 530 |
+
%right_idx_379 = arith.addi %right_idx_377, %right_idx_378 : i32 loc(#loc214)
|
| 531 |
+
tt.reduce.return %right_idx_379 : i32 loc(#loc209)
|
| 532 |
+
}) : (tensor<128x2x2xi32>) -> tensor<128x2xi32> loc(#loc209)
|
| 533 |
+
%right_idx_330 = tt.expand_dims %right_idx_329 {axis = 1 : i32} : tensor<128x2xi32> -> tensor<128x1x2xi32> loc(#loc183)
|
| 534 |
+
%right_idx_331 = tt.broadcast %right_idx_330 : tensor<128x1x2xi32> -> tensor<128x2x2xi32> loc(#loc184)
|
| 535 |
+
%left_idx_332 = tt.reshape %left_idx_327 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc185)
|
| 536 |
+
%right_idx_333 = tt.reshape %right_idx_331 : tensor<128x2x2xi32> -> tensor<32x16xi32> loc(#loc186)
|
| 537 |
+
%cond_334 = arith.cmpi slt, %ileft_321, %iright_322 : tensor<32x16xi32> loc(#loc187)
|
| 538 |
+
%eq_335 = arith.cmpi eq, %ileft_321, %iright_322 : tensor<32x16xi32> loc(#loc188)
|
| 539 |
+
%cond_336 = arith.cmpi sgt, %left_idx_332, %right_idx_333 : tensor<32x16xi32> loc(#loc189)
|
| 540 |
+
%cond_337 = arith.andi %eq_335, %cond_336 : tensor<32x16xi1> loc(#loc190)
|
| 541 |
+
%cond_338 = arith.ori %cond_334, %cond_337 : tensor<32x16xi1> loc(#loc191)
|
| 542 |
+
%ret_339 = arith.xori %ileft_321, %iright_322 : tensor<32x16xi32> loc(#loc194)
|
| 543 |
+
%ret_340 = arith.select %cond_338, %ret_339, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc195)
|
| 544 |
+
%ret_341 = arith.xori %ret_308, %ret_340 : tensor<32x16xi32> loc(#loc196)
|
| 545 |
+
%new_idxs_342 = arith.xori %left_idx_332, %right_idx_333 : tensor<32x16xi32> loc(#loc197)
|
| 546 |
+
%new_idxs_343 = arith.select %cond_338, %new_idxs_342, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc198)
|
| 547 |
+
%new_idxs_344 = arith.xori %new_idxs_311, %new_idxs_343 : tensor<32x16xi32> loc(#loc199)
|
| 548 |
+
%y_345 = tt.reshape %ret_341 : tensor<32x16xi32> -> tensor<256x2x1xi32> loc(#loc162)
|
| 549 |
+
%ileft_346 = arith.muli %y_345, %ileft : tensor<256x2x1xi32> loc(#loc164)
|
| 550 |
+
%ileft_347 = "tt.reduce"(%ileft_346) <{axis = 1 : i32}> ({
|
| 551 |
+
^bb0(%ileft_377: i32 loc(callsite(#loc1 at #loc165)), %ileft_378: i32 loc(callsite(#loc1 at #loc165))):
|
| 552 |
+
%ileft_379 = arith.addi %ileft_377, %ileft_378 : i32 loc(#loc211)
|
| 553 |
+
tt.reduce.return %ileft_379 : i32 loc(#loc201)
|
| 554 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc201)
|
| 555 |
+
%ileft_348 = tt.expand_dims %ileft_347 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc166)
|
| 556 |
+
%ileft_349 = tt.broadcast %ileft_348 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc167)
|
| 557 |
+
%iright_350 = arith.muli %y_345, %iright : tensor<256x2x1xi32> loc(#loc168)
|
| 558 |
+
%iright_351 = "tt.reduce"(%iright_350) <{axis = 1 : i32}> ({
|
| 559 |
+
^bb0(%iright_377: i32 loc(callsite(#loc1 at #loc169)), %iright_378: i32 loc(callsite(#loc1 at #loc169))):
|
| 560 |
+
%iright_379 = arith.addi %iright_377, %iright_378 : i32 loc(#loc212)
|
| 561 |
+
tt.reduce.return %iright_379 : i32 loc(#loc203)
|
| 562 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc203)
|
| 563 |
+
%iright_352 = tt.expand_dims %iright_351 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc170)
|
| 564 |
+
%iright_353 = tt.broadcast %iright_352 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc171)
|
| 565 |
+
%ileft_354 = tt.reshape %ileft_349 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc172)
|
| 566 |
+
%iright_355 = tt.reshape %iright_353 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc173)
|
| 567 |
+
%y_idx_356 = tt.reshape %new_idxs_344 : tensor<32x16xi32> -> tensor<256x2x1xi32> loc(#loc174)
|
| 568 |
+
%left_idx_357 = arith.muli %y_idx_356, %ileft : tensor<256x2x1xi32> loc(#loc176)
|
| 569 |
+
%left_idx_358 = "tt.reduce"(%left_idx_357) <{axis = 1 : i32}> ({
|
| 570 |
+
^bb0(%left_idx_377: i32 loc(callsite(#loc1 at #loc177)), %left_idx_378: i32 loc(callsite(#loc1 at #loc177))):
|
| 571 |
+
%left_idx_379 = arith.addi %left_idx_377, %left_idx_378 : i32 loc(#loc213)
|
| 572 |
+
tt.reduce.return %left_idx_379 : i32 loc(#loc206)
|
| 573 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc206)
|
| 574 |
+
%left_idx_359 = tt.expand_dims %left_idx_358 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc178)
|
| 575 |
+
%left_idx_360 = tt.broadcast %left_idx_359 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc179)
|
| 576 |
+
%right_idx_361 = arith.muli %y_idx_356, %iright : tensor<256x2x1xi32> loc(#loc181)
|
| 577 |
+
%right_idx_362 = "tt.reduce"(%right_idx_361) <{axis = 1 : i32}> ({
|
| 578 |
+
^bb0(%right_idx_377: i32 loc(callsite(#loc1 at #loc182)), %right_idx_378: i32 loc(callsite(#loc1 at #loc182))):
|
| 579 |
+
%right_idx_379 = arith.addi %right_idx_377, %right_idx_378 : i32 loc(#loc214)
|
| 580 |
+
tt.reduce.return %right_idx_379 : i32 loc(#loc209)
|
| 581 |
+
}) : (tensor<256x2x1xi32>) -> tensor<256x1xi32> loc(#loc209)
|
| 582 |
+
%right_idx_363 = tt.expand_dims %right_idx_362 {axis = 1 : i32} : tensor<256x1xi32> -> tensor<256x1x1xi32> loc(#loc183)
|
| 583 |
+
%right_idx_364 = tt.broadcast %right_idx_363 : tensor<256x1x1xi32> -> tensor<256x2x1xi32> loc(#loc184)
|
| 584 |
+
%left_idx_365 = tt.reshape %left_idx_360 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc185)
|
| 585 |
+
%right_idx_366 = tt.reshape %right_idx_364 : tensor<256x2x1xi32> -> tensor<32x16xi32> loc(#loc186)
|
| 586 |
+
%cond_367 = arith.cmpi slt, %ileft_354, %iright_355 : tensor<32x16xi32> loc(#loc187)
|
| 587 |
+
%eq_368 = arith.cmpi eq, %ileft_354, %iright_355 : tensor<32x16xi32> loc(#loc188)
|
| 588 |
+
%cond_369 = arith.cmpi sgt, %left_idx_365, %right_idx_366 : tensor<32x16xi32> loc(#loc189)
|
| 589 |
+
%cond_370 = arith.andi %eq_368, %cond_369 : tensor<32x16xi1> loc(#loc190)
|
| 590 |
+
%cond_371 = arith.ori %cond_367, %cond_370 : tensor<32x16xi1> loc(#loc191)
|
| 591 |
+
%new_idxs_372 = arith.xori %left_idx_365, %right_idx_366 : tensor<32x16xi32> loc(#loc197)
|
| 592 |
+
%new_idxs_373 = arith.select %cond_371, %new_idxs_372, %cst_0 : tensor<32x16xi1>, tensor<32x16xi32> loc(#loc198)
|
| 593 |
+
%new_idxs_374 = arith.xori %new_idxs_344, %new_idxs_373 : tensor<32x16xi32> loc(#loc199)
|
| 594 |
+
%tmp7 = arith.extsi %tmp0_19 : tensor<32x16xi32> to tensor<32x16xi64> loc(#loc149)
|
| 595 |
+
%tmp10_375 = arith.select %tmp0_18, %tmp7, %tmp10 : tensor<32x16xi1>, tensor<32x16xi64> loc(#loc86)
|
| 596 |
+
%tmp11 = "tt.reduce"(%tmp10_375) <{axis = 1 : i32}> ({
|
| 597 |
+
^bb0(%tmp11_377: i64 loc(callsite(#loc1 at #loc150)), %tmp11_378: i64 loc(callsite(#loc1 at #loc150))):
|
| 598 |
+
%tmp11_379 = arith.addi %tmp11_377, %tmp11_378 : i64 loc(#loc200)
|
| 599 |
+
tt.reduce.return %tmp11_379 : i64 loc(#loc160)
|
| 600 |
+
}) : (tensor<32x16xi64>) -> tensor<32xi64> loc(#loc160)
|
| 601 |
+
%tmp11_376 = tt.expand_dims %tmp11 {axis = 1 : i32} : tensor<32xi64> -> tensor<32x1xi64> loc(#loc151)
|
| 602 |
+
%tmp14 = arith.trunci %tmp11_376 : tensor<32x1xi64> to tensor<32x1xi32> loc(#loc152)
|
| 603 |
+
%0 = arith.muli %xindex_6, %cst_2 : tensor<32x1xi32> loc(#loc73)
|
| 604 |
+
%1 = tt.broadcast %r0_index_8 : tensor<1x16xi32> -> tensor<32x16xi32> loc(#loc74)
|
| 605 |
+
%2 = tt.broadcast %0 : tensor<32x1xi32> -> tensor<32x16xi32> loc(#loc74)
|
| 606 |
+
%3 = arith.addi %1, %2 : tensor<32x16xi32> loc(#loc74)
|
| 607 |
+
%4 = tt.splat %out_ptr2 : !tt.ptr<i32> -> tensor<32x16x!tt.ptr<i32>> loc(#loc75)
|
| 608 |
+
%5 = tt.addptr %4, %3 : tensor<32x16x!tt.ptr<i32>>, tensor<32x16xi32> loc(#loc75)
|
| 609 |
+
tt.store %5, %new_idxs_374, %tmp0_18 : tensor<32x16x!tt.ptr<i32>> loc(#loc76)
|
| 610 |
+
%6 = tt.splat %out_ptr3 : !tt.ptr<i32> -> tensor<32x1x!tt.ptr<i32>> loc(#loc77)
|
| 611 |
+
%7 = tt.addptr %6, %xindex_6 : tensor<32x1x!tt.ptr<i32>>, tensor<32x1xi32> loc(#loc77)
|
| 612 |
+
tt.store %7, %tmp14, %xmask_7 : tensor<32x1x!tt.ptr<i32>> loc(#loc78)
|
| 613 |
+
tt.return loc(#loc79)
|
| 614 |
+
} loc(#loc)
|
| 615 |
+
} loc(#loc)
|
| 616 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":44:34)
|
| 617 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":36:49)
|
| 618 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":36:38)
|
| 619 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":26:21)
|
| 620 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":24:28)
|
| 621 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":24:33)
|
| 622 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":25:36)
|
| 623 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":25:44)
|
| 624 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":25:23)
|
| 625 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":27:28)
|
| 626 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":27:38)
|
| 627 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":33:19)
|
| 628 |
+
#loc15 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":34:19)
|
| 629 |
+
#loc16 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":36:35)
|
| 630 |
+
#loc17 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":36:45)
|
| 631 |
+
#loc18 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":36:30)
|
| 632 |
+
#loc19 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":36:54)
|
| 633 |
+
#loc20 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":38:19)
|
| 634 |
+
#loc21 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":40:33)
|
| 635 |
+
#loc22 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":627:41)
|
| 636 |
+
#loc24 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":627:44)
|
| 637 |
+
#loc25 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":627:60)
|
| 638 |
+
#loc26 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":627:68)
|
| 639 |
+
#loc27 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":533:22)
|
| 640 |
+
#loc29 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":537:21)
|
| 641 |
+
#loc30 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":538:40)
|
| 642 |
+
#loc31 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:36)
|
| 643 |
+
#loc33 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:15)
|
| 644 |
+
#loc34 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":538:65)
|
| 645 |
+
#loc35 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":538:78)
|
| 646 |
+
#loc36 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":539:41)
|
| 647 |
+
#loc38 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":539:67)
|
| 648 |
+
#loc39 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":539:80)
|
| 649 |
+
#loc40 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":540:30)
|
| 650 |
+
#loc41 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":541:32)
|
| 651 |
+
#loc42 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":546:29)
|
| 652 |
+
#loc43 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":548:36)
|
| 653 |
+
#loc44 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":548:23)
|
| 654 |
+
#loc45 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":290:25)
|
| 655 |
+
#loc47 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":548:53)
|
| 656 |
+
#loc48 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":548:66)
|
| 657 |
+
#loc49 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":551:37)
|
| 658 |
+
#loc50 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":551:23)
|
| 659 |
+
#loc52 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":551:54)
|
| 660 |
+
#loc53 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":551:67)
|
| 661 |
+
#loc54 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":553:36)
|
| 662 |
+
#loc55 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":554:38)
|
| 663 |
+
#loc56 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":574:22)
|
| 664 |
+
#loc57 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":591:21)
|
| 665 |
+
#loc58 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":594:40)
|
| 666 |
+
#loc59 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":594:29)
|
| 667 |
+
#loc60 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":594:23)
|
| 668 |
+
#loc61 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":599:19)
|
| 669 |
+
#loc62 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":599:28)
|
| 670 |
+
#loc63 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":600:38)
|
| 671 |
+
#loc64 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":600:46)
|
| 672 |
+
#loc65 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":600:15)
|
| 673 |
+
#loc66 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":601:48)
|
| 674 |
+
#loc67 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":601:59)
|
| 675 |
+
#loc68 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":601:22)
|
| 676 |
+
#loc69 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":42:19)
|
| 677 |
+
#loc71 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":45:29)
|
| 678 |
+
#loc72 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":48:21)
|
| 679 |
+
#loc73 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":49:35)
|
| 680 |
+
#loc74 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":49:32)
|
| 681 |
+
#loc75 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":49:25)
|
| 682 |
+
#loc76 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":49:47)
|
| 683 |
+
#loc77 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":50:25)
|
| 684 |
+
#loc78 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":50:37)
|
| 685 |
+
#loc79 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/hx/chxnygpvpmvr2mx2e6mwgdeojthrirnog7nmq6mcsi3wvegvi2so.py":50:4)
|
| 686 |
+
#loc85 = loc(callsite(#loc1 at #loc2))
|
| 687 |
+
#loc86 = loc("tmp10"(#loc3))
|
| 688 |
+
#loc87 = loc("tmp0"(#loc4))
|
| 689 |
+
#loc88 = loc("tmp0"(#loc5))
|
| 690 |
+
#loc89 = loc("xmask"(#loc6))
|
| 691 |
+
#loc90 = loc("xoffset"(#loc7))
|
| 692 |
+
#loc91 = loc("xoffset"(#loc8))
|
| 693 |
+
#loc92 = loc("xindex"(#loc9))
|
| 694 |
+
#loc93 = loc("xindex"(#loc10))
|
| 695 |
+
#loc94 = loc("xindex"(#loc11))
|
| 696 |
+
#loc95 = loc("r0_index"(#loc12))
|
| 697 |
+
#loc96 = loc("r0_index"(#loc13))
|
| 698 |
+
#loc97 = loc("x0"(#loc14))
|
| 699 |
+
#loc98 = loc("x1"(#loc15))
|
| 700 |
+
#loc99 = loc("tmp0"(#loc16))
|
| 701 |
+
#loc100 = loc("tmp0"(#loc17))
|
| 702 |
+
#loc101 = loc("tmp0"(#loc18))
|
| 703 |
+
#loc102 = loc("tmp0"(#loc19))
|
| 704 |
+
#loc103 = loc("tmp2"(#loc20))
|
| 705 |
+
#loc104 = loc("tmp4"(#loc21))
|
| 706 |
+
#loc105 = loc("flip"(#loc22))
|
| 707 |
+
#loc107 = loc("flip"(#loc24))
|
| 708 |
+
#loc108 = loc("flip"(#loc25))
|
| 709 |
+
#loc109 = loc("flip"(#loc26))
|
| 710 |
+
#loc110 = loc("y"(#loc27))
|
| 711 |
+
#loc111 = loc("left_mask"(#loc29))
|
| 712 |
+
#loc112 = loc("ileft"(#loc30))
|
| 713 |
+
#loc114 = loc("ileft"(#loc34))
|
| 714 |
+
#loc115 = loc("ileft"(#loc35))
|
| 715 |
+
#loc116 = loc("iright"(#loc36))
|
| 716 |
+
#loc118 = loc("iright"(#loc38))
|
| 717 |
+
#loc119 = loc("iright"(#loc39))
|
| 718 |
+
#loc120 = loc("ileft"(#loc40))
|
| 719 |
+
#loc121 = loc("iright"(#loc41))
|
| 720 |
+
#loc122 = loc("y_idx"(#loc42))
|
| 721 |
+
#loc123 = loc("left_idx"(#loc43))
|
| 722 |
+
#loc124 = loc("left_idx"(#loc44))
|
| 723 |
+
#loc125 = loc("input"(#loc45))
|
| 724 |
+
#loc127 = loc("left_idx"(#loc47))
|
| 725 |
+
#loc128 = loc("left_idx"(#loc48))
|
| 726 |
+
#loc129 = loc("right_idx"(#loc49))
|
| 727 |
+
#loc130 = loc("right_idx"(#loc50))
|
| 728 |
+
#loc132 = loc("right_idx"(#loc52))
|
| 729 |
+
#loc133 = loc("right_idx"(#loc53))
|
| 730 |
+
#loc134 = loc("left_idx"(#loc54))
|
| 731 |
+
#loc135 = loc("right_idx"(#loc55))
|
| 732 |
+
#loc136 = loc("cond"(#loc56))
|
| 733 |
+
#loc137 = loc("eq"(#loc57))
|
| 734 |
+
#loc138 = loc("cond"(#loc58))
|
| 735 |
+
#loc139 = loc("cond"(#loc59))
|
| 736 |
+
#loc140 = loc("cond"(#loc60))
|
| 737 |
+
#loc141 = loc("cond"(#loc61))
|
| 738 |
+
#loc142 = loc("cond"(#loc62))
|
| 739 |
+
#loc143 = loc("ret"(#loc63))
|
| 740 |
+
#loc144 = loc("ret"(#loc64))
|
| 741 |
+
#loc145 = loc("ret"(#loc65))
|
| 742 |
+
#loc146 = loc("new_idxs"(#loc66))
|
| 743 |
+
#loc147 = loc("new_idxs"(#loc67))
|
| 744 |
+
#loc148 = loc("new_idxs"(#loc68))
|
| 745 |
+
#loc149 = loc("tmp7"(#loc69))
|
| 746 |
+
#loc151 = loc("tmp11"(#loc71))
|
| 747 |
+
#loc152 = loc("tmp14"(#loc72))
|
| 748 |
+
#loc153 = loc(callsite(#loc105 at #loc106))
|
| 749 |
+
#loc154 = loc(callsite(#loc107 at #loc106))
|
| 750 |
+
#loc155 = loc(callsite(#loc108 at #loc106))
|
| 751 |
+
#loc156 = loc(callsite(#loc109 at #loc106))
|
| 752 |
+
#loc158 = loc("cond"(#loc136))
|
| 753 |
+
#loc159 = loc("eq"(#loc137))
|
| 754 |
+
#loc160 = loc(callsite(#loc31 at #loc150))
|
| 755 |
+
#loc162 = loc(callsite(#loc110 at #loc157))
|
| 756 |
+
#loc163 = loc(callsite(#loc111 at #loc157))
|
| 757 |
+
#loc164 = loc(callsite(#loc112 at #loc157))
|
| 758 |
+
#loc166 = loc(callsite(#loc114 at #loc157))
|
| 759 |
+
#loc167 = loc(callsite(#loc115 at #loc157))
|
| 760 |
+
#loc168 = loc(callsite(#loc116 at #loc157))
|
| 761 |
+
#loc170 = loc(callsite(#loc118 at #loc157))
|
| 762 |
+
#loc171 = loc(callsite(#loc119 at #loc157))
|
| 763 |
+
#loc172 = loc(callsite(#loc120 at #loc157))
|
| 764 |
+
#loc173 = loc(callsite(#loc121 at #loc157))
|
| 765 |
+
#loc174 = loc(callsite(#loc122 at #loc157))
|
| 766 |
+
#loc175 = loc(callsite(#loc123 at #loc157))
|
| 767 |
+
#loc176 = loc(callsite(#loc124 at #loc157))
|
| 768 |
+
#loc178 = loc(callsite(#loc127 at #loc157))
|
| 769 |
+
#loc179 = loc(callsite(#loc128 at #loc157))
|
| 770 |
+
#loc180 = loc(callsite(#loc129 at #loc157))
|
| 771 |
+
#loc181 = loc(callsite(#loc130 at #loc157))
|
| 772 |
+
#loc183 = loc(callsite(#loc132 at #loc157))
|
| 773 |
+
#loc184 = loc(callsite(#loc133 at #loc157))
|
| 774 |
+
#loc185 = loc(callsite(#loc134 at #loc157))
|
| 775 |
+
#loc186 = loc(callsite(#loc135 at #loc157))
|
| 776 |
+
#loc187 = loc(callsite(#loc158 at #loc157))
|
| 777 |
+
#loc188 = loc(callsite(#loc159 at #loc157))
|
| 778 |
+
#loc189 = loc(callsite(#loc138 at #loc157))
|
| 779 |
+
#loc190 = loc(callsite(#loc139 at #loc157))
|
| 780 |
+
#loc191 = loc(callsite(#loc140 at #loc157))
|
| 781 |
+
#loc192 = loc(callsite(#loc141 at #loc157))
|
| 782 |
+
#loc193 = loc(callsite(#loc142 at #loc157))
|
| 783 |
+
#loc194 = loc(callsite(#loc143 at #loc157))
|
| 784 |
+
#loc195 = loc(callsite(#loc144 at #loc157))
|
| 785 |
+
#loc196 = loc(callsite(#loc145 at #loc157))
|
| 786 |
+
#loc197 = loc(callsite(#loc146 at #loc157))
|
| 787 |
+
#loc198 = loc(callsite(#loc147 at #loc157))
|
| 788 |
+
#loc199 = loc(callsite(#loc148 at #loc157))
|
| 789 |
+
#loc200 = loc(callsite(#loc33 at #loc160))
|
| 790 |
+
#loc201 = loc(callsite(#loc31 at #loc165))
|
| 791 |
+
#loc203 = loc(callsite(#loc31 at #loc169))
|
| 792 |
+
#loc205 = loc(callsite(#loc125 at #loc177))
|
| 793 |
+
#loc206 = loc(callsite(#loc31 at #loc177))
|
| 794 |
+
#loc208 = loc(callsite(#loc125 at #loc182))
|
| 795 |
+
#loc209 = loc(callsite(#loc31 at #loc182))
|
| 796 |
+
#loc211 = loc(callsite(#loc33 at #loc201))
|
| 797 |
+
#loc212 = loc(callsite(#loc33 at #loc203))
|
| 798 |
+
#loc213 = loc(callsite(#loc33 at #loc206))
|
| 799 |
+
#loc214 = loc(callsite(#loc33 at #loc209))
|
SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/__grp__triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"child_paths": {"triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.source": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.source", "triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.ttir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.ttir", "triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.ttgir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.ttgir", "triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.llir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.llir", "triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.ptx": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.ptx", "triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.cubin": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.cubin", "triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.json": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.json"}}
|
SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.cubin
ADDED
|
Binary file (31.5 kB). View file
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"hash": "16ca2c8864609722b876bac87eb220846cb74e2fe4810a46a027c2f3e653aead", "target": {"backend": "cuda", "arch": 90, "warp_size": 32}, "num_warps": 16, "num_ctas": 1, "num_stages": 1, "warp_size": 32, "maxnreg": null, "cluster_dims": [1, 1, 1], "ptx_version": null, "ptx_options": null, "ir_override": null, "enable_fp_fusion": true, "launch_cooperative_grid": false, "launch_pdl": false, "supported_fp8_dtypes": ["fp8e4b15", "fp8e4nv", "fp8e5"], "deprecated_fp8_dot_operand_dtypes": ["fp8e4b15"], "default_dot_input_precision": "tf32", "allowed_dot_input_precisions": ["tf32", "tf32x3", "ieee"], "max_num_imprecise_acc_default": 1073741824, "extern_libs": [["libdevice", "/workspace/specforge/lib/python3.11/site-packages/triton/backends/nvidia/lib/libdevice.10.bc"]], "debug": true, "backend_name": "cuda", "sanitize_overflow": false, "arch": "sm90", "instrumentation_mode": "", "triton_version": "3.5.1", "tensordesc_meta": [], "shared": 64, "tmem_size": 0, "global_scratch_size": 0, "global_scratch_align": 1, "profile_scratch_size": 0, "profile_scratch_align": 1, "name": "triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0"}
|
SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.llir
ADDED
|
@@ -0,0 +1,934 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
; ModuleID = 'LLVMDialectModule'
|
| 2 |
+
source_filename = "LLVMDialectModule"
|
| 3 |
+
target datalayout = "e-p3:32:32-p4:32:32-p5:32:32-p6:32:32-p7:32:32-i64:64-i128:128-v16:16-v32:32-n16:32:64"
|
| 4 |
+
|
| 5 |
+
@global_smem = external addrspace(3) global [0 x i8], align 16
|
| 6 |
+
@.str = private unnamed_addr constant [11 x i8] c"__CUDA_FTZ\00", align 1
|
| 7 |
+
|
| 8 |
+
; Function Attrs: nounwind
|
| 9 |
+
define ptx_kernel void @triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0(ptr addrspace(1) %0, ptr addrspace(1) %1, i32 %2, i32 %3, ptr addrspace(1) readnone captures(none) %4, ptr addrspace(1) readnone captures(none) %5) local_unnamed_addr #0 !dbg !5 {
|
| 10 |
+
%7 = tail call i32 @llvm.nvvm.read.ptx.sreg.ctaid.x(), !dbg !8
|
| 11 |
+
%8 = tail call i32 @llvm.nvvm.read.ptx.sreg.tid.x(), !dbg !9
|
| 12 |
+
%9 = shl nuw nsw i32 %8, 2, !dbg !9
|
| 13 |
+
%10 = and i32 %9, 2044, !dbg !9
|
| 14 |
+
%11 = mul i32 %7, 32000, !dbg !10
|
| 15 |
+
%12 = zext nneg i32 %10 to i64, !dbg !11
|
| 16 |
+
br label %13, !dbg !11
|
| 17 |
+
|
| 18 |
+
13: ; preds = %6, %13
|
| 19 |
+
%indvars.iv = phi i64 [ 0, %6 ], [ %indvars.iv.next, %13 ]
|
| 20 |
+
%14 = phi <2 x float> [ zeroinitializer, %6 ], [ %271, %13 ]
|
| 21 |
+
%15 = phi <2 x float> [ splat (float 0xFFF0000000000000), %6 ], [ %269, %13 ]
|
| 22 |
+
%16 = phi <2 x float> [ zeroinitializer, %6 ], [ %270, %13 ]
|
| 23 |
+
%17 = phi <2 x float> [ splat (float 0xFFF0000000000000), %6 ], [ %268, %13 ]
|
| 24 |
+
%18 = or disjoint i64 %indvars.iv, %12, !dbg !12
|
| 25 |
+
%19 = icmp samesign ult i64 %18, 32000, !dbg !13
|
| 26 |
+
%20 = trunc nuw nsw i64 %18 to i32, !dbg !14
|
| 27 |
+
%21 = add i32 %11, %20, !dbg !14
|
| 28 |
+
%22 = sext i32 %21 to i64, !dbg !15
|
| 29 |
+
%23 = getelementptr bfloat, ptr addrspace(1) %0, i64 %22, !dbg !15
|
| 30 |
+
%24 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #6, !dbg !16
|
| 31 |
+
%25 = tail call { i32, i32 } asm sideeffect "mov.u32 $0, $2;\0A\09mov.u32 $1, $3;\0A\09@$6 ld.global.L1::evict_last.L2::cache_hint.v2.b32 { $0, $1 }, [ $4 + 0 ], $5;", "=r,=r,r,r,l,l,b"(i32 0, i32 0, ptr addrspace(1) %23, i64 %24, i1 %19) #6, !dbg !16
|
| 32 |
+
%26 = extractvalue { i32, i32 } %25, 0, !dbg !16
|
| 33 |
+
%27 = bitcast i32 %26 to <2 x bfloat>, !dbg !16
|
| 34 |
+
%28 = extractvalue { i32, i32 } %25, 1, !dbg !16
|
| 35 |
+
%29 = bitcast i32 %28 to <2 x bfloat>, !dbg !16
|
| 36 |
+
%30 = fcmp uno <2 x float> %17, zeroinitializer, !dbg !17
|
| 37 |
+
%31 = fcmp uno <2 x float> %15, zeroinitializer, !dbg !17
|
| 38 |
+
%32 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 39 |
+
%.not.i72 = icmp eq i32 %32, 0, !dbg !21
|
| 40 |
+
%33 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 41 |
+
%.not1.i74 = icmp eq i32 %33, 0, !dbg !21
|
| 42 |
+
%34 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 43 |
+
%35 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 44 |
+
%.not3.i78 = icmp eq i32 %35, 0, !dbg !21
|
| 45 |
+
%36 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 46 |
+
%.not4.i80 = icmp eq i32 %36, 0, !dbg !21
|
| 47 |
+
%37 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 48 |
+
%.not.i82 = icmp eq i32 %37, 0, !dbg !21
|
| 49 |
+
%38 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 50 |
+
%.not1.i84 = icmp eq i32 %38, 0, !dbg !21
|
| 51 |
+
%39 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 52 |
+
%40 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 53 |
+
%.not3.i88 = icmp eq i32 %40, 0, !dbg !21
|
| 54 |
+
%41 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 55 |
+
%.not4.i90 = icmp eq i32 %41, 0, !dbg !21
|
| 56 |
+
%42 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 57 |
+
%.not.i92 = icmp eq i32 %42, 0, !dbg !21
|
| 58 |
+
%43 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 59 |
+
%.not1.i94 = icmp eq i32 %43, 0, !dbg !21
|
| 60 |
+
%44 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 61 |
+
%45 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 62 |
+
%.not3.i98 = icmp eq i32 %45, 0, !dbg !21
|
| 63 |
+
%46 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 64 |
+
%.not4.i100 = icmp eq i32 %46, 0, !dbg !21
|
| 65 |
+
%47 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 66 |
+
%.not.i102 = icmp eq i32 %47, 0, !dbg !21
|
| 67 |
+
%48 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 68 |
+
%.not1.i104 = icmp eq i32 %48, 0, !dbg !21
|
| 69 |
+
%49 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 70 |
+
%50 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 71 |
+
%.not3.i108 = icmp eq i32 %50, 0, !dbg !21
|
| 72 |
+
%51 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 73 |
+
%.not4.i110 = icmp eq i32 %51, 0, !dbg !21
|
| 74 |
+
%52 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 75 |
+
%.not.i112 = icmp eq i32 %52, 0, !dbg !21
|
| 76 |
+
%53 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 77 |
+
%.not1.i114 = icmp eq i32 %53, 0, !dbg !21
|
| 78 |
+
%54 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 79 |
+
%55 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 80 |
+
%.not3.i118 = icmp eq i32 %55, 0, !dbg !21
|
| 81 |
+
%56 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 82 |
+
%.not4.i120 = icmp eq i32 %56, 0, !dbg !21
|
| 83 |
+
%57 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 84 |
+
%.not.i122 = icmp eq i32 %57, 0, !dbg !21
|
| 85 |
+
%58 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 86 |
+
%.not1.i124 = icmp eq i32 %58, 0, !dbg !21
|
| 87 |
+
%59 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 88 |
+
%60 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 89 |
+
%.not3.i128 = icmp eq i32 %60, 0, !dbg !21
|
| 90 |
+
%61 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 91 |
+
%.not4.i130 = icmp eq i32 %61, 0, !dbg !21
|
| 92 |
+
%62 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 93 |
+
%.not.i132 = icmp eq i32 %62, 0, !dbg !21
|
| 94 |
+
%63 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 95 |
+
%.not1.i134 = icmp eq i32 %63, 0, !dbg !21
|
| 96 |
+
%64 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 97 |
+
%65 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 98 |
+
%.not3.i138 = icmp eq i32 %65, 0, !dbg !21
|
| 99 |
+
%66 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 100 |
+
%.not4.i140 = icmp eq i32 %66, 0, !dbg !21
|
| 101 |
+
%67 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 102 |
+
%.not.i142 = icmp eq i32 %67, 0, !dbg !21
|
| 103 |
+
%68 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 104 |
+
%.not1.i144 = icmp eq i32 %68, 0, !dbg !21
|
| 105 |
+
%69 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 106 |
+
%70 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 107 |
+
%.not3.i148 = icmp eq i32 %70, 0, !dbg !21
|
| 108 |
+
%71 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !21
|
| 109 |
+
%.not4.i150 = icmp eq i32 %71, 0, !dbg !21
|
| 110 |
+
%72 = fpext <2 x bfloat> %27 to <2 x float>, !dbg !22
|
| 111 |
+
%73 = fcmp ogt <2 x float> %17, %72, !dbg !23
|
| 112 |
+
%74 = or <2 x i1> %30, %73, !dbg !24
|
| 113 |
+
%75 = select <2 x i1> %74, <2 x float> %17, <2 x float> %72, !dbg !25
|
| 114 |
+
%76 = fcmp oeq <2 x float> %75, splat (float 0xFFF0000000000000), !dbg !26
|
| 115 |
+
%foldExtExtBinop = fsub <2 x float> %17, %75, !dbg !27
|
| 116 |
+
%77 = extractelement <2 x float> %foldExtExtBinop, i64 0, !dbg !27
|
| 117 |
+
%foldExtExtBinop177 = fsub <2 x float> %17, %75, !dbg !27
|
| 118 |
+
%78 = extractelement <2 x float> %foldExtExtBinop177, i64 1, !dbg !27
|
| 119 |
+
%79 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %77, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 120 |
+
%80 = tail call float @llvm.nvvm.fma.rn.f(float %77, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 121 |
+
%.02.i73 = select i1 %.not.i72, float %80, float %79, !dbg !21
|
| 122 |
+
%81 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i73) #6, !dbg !21
|
| 123 |
+
%82 = tail call float @llvm.nvvm.saturate.f(float %.02.i73) #6, !dbg !21
|
| 124 |
+
%.03.i75 = select i1 %.not1.i74, float %82, float %81, !dbg !21
|
| 125 |
+
%83 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i75, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 126 |
+
%84 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i75, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 127 |
+
%85 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %78, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 128 |
+
%86 = tail call float @llvm.nvvm.fma.rn.f(float %78, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 129 |
+
%.02.i83 = select i1 %.not.i82, float %86, float %85, !dbg !21
|
| 130 |
+
%87 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i83) #6, !dbg !21
|
| 131 |
+
%88 = tail call float @llvm.nvvm.saturate.f(float %.02.i83) #6, !dbg !21
|
| 132 |
+
%.03.i85 = select i1 %.not1.i84, float %88, float %87, !dbg !21
|
| 133 |
+
%89 = insertelement <2 x i32> poison, i32 %34, i64 0, !dbg !21
|
| 134 |
+
%90 = insertelement <2 x i32> %89, i32 %39, i64 1, !dbg !21
|
| 135 |
+
%91 = icmp eq <2 x i32> %90, zeroinitializer, !dbg !21
|
| 136 |
+
%92 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i85, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 137 |
+
%93 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i85, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 138 |
+
%94 = insertelement <2 x float> poison, float %84, i64 0, !dbg !21
|
| 139 |
+
%95 = insertelement <2 x float> %94, float %93, i64 1, !dbg !21
|
| 140 |
+
%96 = insertelement <2 x float> poison, float %83, i64 0, !dbg !21
|
| 141 |
+
%97 = insertelement <2 x float> %96, float %92, i64 1, !dbg !21
|
| 142 |
+
%98 = select <2 x i1> %91, <2 x float> %95, <2 x float> %97, !dbg !21
|
| 143 |
+
%99 = extractelement <2 x float> %98, i64 0, !dbg !21
|
| 144 |
+
%100 = fadd float %99, 0xC168000FE0000000, !dbg !21
|
| 145 |
+
%101 = fneg float %100, !dbg !21
|
| 146 |
+
%102 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %77, float 0x3FF7154760000000, float %101) #6, !dbg !21
|
| 147 |
+
%103 = tail call float @llvm.nvvm.fma.rn.f(float %77, float 0x3FF7154760000000, float %101) #6, !dbg !21
|
| 148 |
+
%.0.i79 = select i1 %.not3.i78, float %103, float %102, !dbg !21
|
| 149 |
+
%104 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %77, float 0x3E54AE0C00000000, float %.0.i79) #6, !dbg !21
|
| 150 |
+
%105 = tail call float @llvm.nvvm.fma.rn.f(float %77, float 0x3E54AE0C00000000, float %.0.i79) #6, !dbg !21
|
| 151 |
+
%.01.i81 = select i1 %.not4.i80, float %105, float %104, !dbg !21
|
| 152 |
+
%106 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i81) #6, !dbg !21
|
| 153 |
+
%107 = extractelement <2 x float> %98, i64 1, !dbg !21
|
| 154 |
+
%108 = fadd float %107, 0xC168000FE0000000, !dbg !21
|
| 155 |
+
%109 = fneg float %108, !dbg !21
|
| 156 |
+
%110 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %78, float 0x3FF7154760000000, float %109) #6, !dbg !21
|
| 157 |
+
%111 = tail call float @llvm.nvvm.fma.rn.f(float %78, float 0x3FF7154760000000, float %109) #6, !dbg !21
|
| 158 |
+
%.0.i89 = select i1 %.not3.i88, float %111, float %110, !dbg !21
|
| 159 |
+
%112 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %78, float 0x3E54AE0C00000000, float %.0.i89) #6, !dbg !21
|
| 160 |
+
%113 = tail call float @llvm.nvvm.fma.rn.f(float %78, float 0x3E54AE0C00000000, float %.0.i89) #6, !dbg !21
|
| 161 |
+
%.01.i91 = select i1 %.not4.i90, float %113, float %112, !dbg !21
|
| 162 |
+
%114 = bitcast <2 x float> %98 to <2 x i32>, !dbg !21
|
| 163 |
+
%115 = shl <2 x i32> %114, splat (i32 23), !dbg !21
|
| 164 |
+
%116 = bitcast <2 x i32> %115 to <2 x float>, !dbg !21
|
| 165 |
+
%117 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i91) #6, !dbg !21
|
| 166 |
+
%118 = insertelement <2 x float> poison, float %106, i64 0, !dbg !21
|
| 167 |
+
%119 = insertelement <2 x float> %118, float %117, i64 1, !dbg !21
|
| 168 |
+
%120 = fmul <2 x float> %119, %116, !dbg !21
|
| 169 |
+
%121 = select <2 x i1> %76, <2 x float> splat (float 1.000000e+00), <2 x float> %120, !dbg !28
|
| 170 |
+
%foldExtExtBinop179 = fsub <2 x float> %72, %75, !dbg !29
|
| 171 |
+
%122 = extractelement <2 x float> %foldExtExtBinop179, i64 0, !dbg !29
|
| 172 |
+
%foldExtExtBinop181 = fsub <2 x float> %72, %75, !dbg !29
|
| 173 |
+
%123 = extractelement <2 x float> %foldExtExtBinop181, i64 1, !dbg !29
|
| 174 |
+
%124 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %122, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 175 |
+
%125 = tail call float @llvm.nvvm.fma.rn.f(float %122, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 176 |
+
%.02.i113 = select i1 %.not.i112, float %125, float %124, !dbg !21
|
| 177 |
+
%126 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i113) #6, !dbg !21
|
| 178 |
+
%127 = tail call float @llvm.nvvm.saturate.f(float %.02.i113) #6, !dbg !21
|
| 179 |
+
%.03.i115 = select i1 %.not1.i114, float %127, float %126, !dbg !21
|
| 180 |
+
%128 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i115, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 181 |
+
%129 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i115, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 182 |
+
%130 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %123, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 183 |
+
%131 = tail call float @llvm.nvvm.fma.rn.f(float %123, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 184 |
+
%.02.i123 = select i1 %.not.i122, float %131, float %130, !dbg !21
|
| 185 |
+
%132 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i123) #6, !dbg !21
|
| 186 |
+
%133 = tail call float @llvm.nvvm.saturate.f(float %.02.i123) #6, !dbg !21
|
| 187 |
+
%.03.i125 = select i1 %.not1.i124, float %133, float %132, !dbg !21
|
| 188 |
+
%134 = insertelement <2 x i32> poison, i32 %54, i64 0, !dbg !21
|
| 189 |
+
%135 = insertelement <2 x i32> %134, i32 %59, i64 1, !dbg !21
|
| 190 |
+
%136 = icmp eq <2 x i32> %135, zeroinitializer, !dbg !21
|
| 191 |
+
%137 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i125, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 192 |
+
%138 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i125, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 193 |
+
%139 = insertelement <2 x float> poison, float %129, i64 0, !dbg !21
|
| 194 |
+
%140 = insertelement <2 x float> %139, float %138, i64 1, !dbg !21
|
| 195 |
+
%141 = insertelement <2 x float> poison, float %128, i64 0, !dbg !21
|
| 196 |
+
%142 = insertelement <2 x float> %141, float %137, i64 1, !dbg !21
|
| 197 |
+
%143 = select <2 x i1> %136, <2 x float> %140, <2 x float> %142, !dbg !21
|
| 198 |
+
%144 = extractelement <2 x float> %143, i64 0, !dbg !21
|
| 199 |
+
%145 = fadd float %144, 0xC168000FE0000000, !dbg !21
|
| 200 |
+
%146 = fneg float %145, !dbg !21
|
| 201 |
+
%147 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %122, float 0x3FF7154760000000, float %146) #6, !dbg !21
|
| 202 |
+
%148 = tail call float @llvm.nvvm.fma.rn.f(float %122, float 0x3FF7154760000000, float %146) #6, !dbg !21
|
| 203 |
+
%.0.i119 = select i1 %.not3.i118, float %148, float %147, !dbg !21
|
| 204 |
+
%149 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %122, float 0x3E54AE0C00000000, float %.0.i119) #6, !dbg !21
|
| 205 |
+
%150 = tail call float @llvm.nvvm.fma.rn.f(float %122, float 0x3E54AE0C00000000, float %.0.i119) #6, !dbg !21
|
| 206 |
+
%.01.i121 = select i1 %.not4.i120, float %150, float %149, !dbg !21
|
| 207 |
+
%151 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i121) #6, !dbg !21
|
| 208 |
+
%152 = extractelement <2 x float> %143, i64 1, !dbg !21
|
| 209 |
+
%153 = fadd float %152, 0xC168000FE0000000, !dbg !21
|
| 210 |
+
%154 = fneg float %153, !dbg !21
|
| 211 |
+
%155 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %123, float 0x3FF7154760000000, float %154) #6, !dbg !21
|
| 212 |
+
%156 = tail call float @llvm.nvvm.fma.rn.f(float %123, float 0x3FF7154760000000, float %154) #6, !dbg !21
|
| 213 |
+
%.0.i129 = select i1 %.not3.i128, float %156, float %155, !dbg !21
|
| 214 |
+
%157 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %123, float 0x3E54AE0C00000000, float %.0.i129) #6, !dbg !21
|
| 215 |
+
%158 = tail call float @llvm.nvvm.fma.rn.f(float %123, float 0x3E54AE0C00000000, float %.0.i129) #6, !dbg !21
|
| 216 |
+
%.01.i131 = select i1 %.not4.i130, float %158, float %157, !dbg !21
|
| 217 |
+
%159 = bitcast <2 x float> %143 to <2 x i32>, !dbg !21
|
| 218 |
+
%160 = shl <2 x i32> %159, splat (i32 23), !dbg !21
|
| 219 |
+
%161 = bitcast <2 x i32> %160 to <2 x float>, !dbg !21
|
| 220 |
+
%162 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i131) #6, !dbg !21
|
| 221 |
+
%163 = insertelement <2 x float> poison, float %151, i64 0, !dbg !21
|
| 222 |
+
%164 = insertelement <2 x float> %163, float %162, i64 1, !dbg !21
|
| 223 |
+
%165 = fmul <2 x float> %164, %161, !dbg !21
|
| 224 |
+
%166 = select <2 x i1> %76, <2 x float> splat (float 1.000000e+00), <2 x float> %165, !dbg !30
|
| 225 |
+
%167 = fmul <2 x float> %16, %121, !dbg !31
|
| 226 |
+
%168 = fadd <2 x float> %167, %166, !dbg !32
|
| 227 |
+
%169 = fpext <2 x bfloat> %29 to <2 x float>, !dbg !22
|
| 228 |
+
%170 = fcmp ogt <2 x float> %15, %169, !dbg !23
|
| 229 |
+
%171 = or <2 x i1> %31, %170, !dbg !24
|
| 230 |
+
%172 = select <2 x i1> %171, <2 x float> %15, <2 x float> %169, !dbg !25
|
| 231 |
+
%173 = fcmp oeq <2 x float> %172, splat (float 0xFFF0000000000000), !dbg !26
|
| 232 |
+
%foldExtExtBinop183 = fsub <2 x float> %15, %172, !dbg !27
|
| 233 |
+
%174 = extractelement <2 x float> %foldExtExtBinop183, i64 0, !dbg !27
|
| 234 |
+
%foldExtExtBinop185 = fsub <2 x float> %15, %172, !dbg !27
|
| 235 |
+
%175 = extractelement <2 x float> %foldExtExtBinop185, i64 1, !dbg !27
|
| 236 |
+
%176 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %174, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 237 |
+
%177 = tail call float @llvm.nvvm.fma.rn.f(float %174, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 238 |
+
%.02.i93 = select i1 %.not.i92, float %177, float %176, !dbg !21
|
| 239 |
+
%178 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i93) #6, !dbg !21
|
| 240 |
+
%179 = tail call float @llvm.nvvm.saturate.f(float %.02.i93) #6, !dbg !21
|
| 241 |
+
%.03.i95 = select i1 %.not1.i94, float %179, float %178, !dbg !21
|
| 242 |
+
%180 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i95, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 243 |
+
%181 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i95, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 244 |
+
%182 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %175, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 245 |
+
%183 = tail call float @llvm.nvvm.fma.rn.f(float %175, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 246 |
+
%.02.i103 = select i1 %.not.i102, float %183, float %182, !dbg !21
|
| 247 |
+
%184 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i103) #6, !dbg !21
|
| 248 |
+
%185 = tail call float @llvm.nvvm.saturate.f(float %.02.i103) #6, !dbg !21
|
| 249 |
+
%.03.i105 = select i1 %.not1.i104, float %185, float %184, !dbg !21
|
| 250 |
+
%186 = insertelement <2 x i32> poison, i32 %44, i64 0, !dbg !21
|
| 251 |
+
%187 = insertelement <2 x i32> %186, i32 %49, i64 1, !dbg !21
|
| 252 |
+
%188 = icmp eq <2 x i32> %187, zeroinitializer, !dbg !21
|
| 253 |
+
%189 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i105, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 254 |
+
%190 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i105, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 255 |
+
%191 = insertelement <2 x float> poison, float %181, i64 0, !dbg !21
|
| 256 |
+
%192 = insertelement <2 x float> %191, float %190, i64 1, !dbg !21
|
| 257 |
+
%193 = insertelement <2 x float> poison, float %180, i64 0, !dbg !21
|
| 258 |
+
%194 = insertelement <2 x float> %193, float %189, i64 1, !dbg !21
|
| 259 |
+
%195 = select <2 x i1> %188, <2 x float> %192, <2 x float> %194, !dbg !21
|
| 260 |
+
%196 = extractelement <2 x float> %195, i64 0, !dbg !21
|
| 261 |
+
%197 = fadd float %196, 0xC168000FE0000000, !dbg !21
|
| 262 |
+
%198 = fneg float %197, !dbg !21
|
| 263 |
+
%199 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %174, float 0x3FF7154760000000, float %198) #6, !dbg !21
|
| 264 |
+
%200 = tail call float @llvm.nvvm.fma.rn.f(float %174, float 0x3FF7154760000000, float %198) #6, !dbg !21
|
| 265 |
+
%.0.i99 = select i1 %.not3.i98, float %200, float %199, !dbg !21
|
| 266 |
+
%201 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %174, float 0x3E54AE0C00000000, float %.0.i99) #6, !dbg !21
|
| 267 |
+
%202 = tail call float @llvm.nvvm.fma.rn.f(float %174, float 0x3E54AE0C00000000, float %.0.i99) #6, !dbg !21
|
| 268 |
+
%.01.i101 = select i1 %.not4.i100, float %202, float %201, !dbg !21
|
| 269 |
+
%203 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i101) #6, !dbg !21
|
| 270 |
+
%204 = extractelement <2 x float> %195, i64 1, !dbg !21
|
| 271 |
+
%205 = fadd float %204, 0xC168000FE0000000, !dbg !21
|
| 272 |
+
%206 = fneg float %205, !dbg !21
|
| 273 |
+
%207 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %175, float 0x3FF7154760000000, float %206) #6, !dbg !21
|
| 274 |
+
%208 = tail call float @llvm.nvvm.fma.rn.f(float %175, float 0x3FF7154760000000, float %206) #6, !dbg !21
|
| 275 |
+
%.0.i109 = select i1 %.not3.i108, float %208, float %207, !dbg !21
|
| 276 |
+
%209 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %175, float 0x3E54AE0C00000000, float %.0.i109) #6, !dbg !21
|
| 277 |
+
%210 = tail call float @llvm.nvvm.fma.rn.f(float %175, float 0x3E54AE0C00000000, float %.0.i109) #6, !dbg !21
|
| 278 |
+
%.01.i111 = select i1 %.not4.i110, float %210, float %209, !dbg !21
|
| 279 |
+
%211 = bitcast <2 x float> %195 to <2 x i32>, !dbg !21
|
| 280 |
+
%212 = shl <2 x i32> %211, splat (i32 23), !dbg !21
|
| 281 |
+
%213 = bitcast <2 x i32> %212 to <2 x float>, !dbg !21
|
| 282 |
+
%214 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i111) #6, !dbg !21
|
| 283 |
+
%215 = insertelement <2 x float> poison, float %203, i64 0, !dbg !21
|
| 284 |
+
%216 = insertelement <2 x float> %215, float %214, i64 1, !dbg !21
|
| 285 |
+
%217 = fmul <2 x float> %216, %213, !dbg !21
|
| 286 |
+
%218 = select <2 x i1> %173, <2 x float> splat (float 1.000000e+00), <2 x float> %217, !dbg !28
|
| 287 |
+
%foldExtExtBinop187 = fsub <2 x float> %169, %172, !dbg !29
|
| 288 |
+
%219 = extractelement <2 x float> %foldExtExtBinop187, i64 0, !dbg !29
|
| 289 |
+
%foldExtExtBinop189 = fsub <2 x float> %169, %172, !dbg !29
|
| 290 |
+
%220 = extractelement <2 x float> %foldExtExtBinop189, i64 1, !dbg !29
|
| 291 |
+
%221 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %219, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 292 |
+
%222 = tail call float @llvm.nvvm.fma.rn.f(float %219, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 293 |
+
%.02.i133 = select i1 %.not.i132, float %222, float %221, !dbg !21
|
| 294 |
+
%223 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i133) #6, !dbg !21
|
| 295 |
+
%224 = tail call float @llvm.nvvm.saturate.f(float %.02.i133) #6, !dbg !21
|
| 296 |
+
%.03.i135 = select i1 %.not1.i134, float %224, float %223, !dbg !21
|
| 297 |
+
%225 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i135, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 298 |
+
%226 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i135, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 299 |
+
%227 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %220, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 300 |
+
%228 = tail call float @llvm.nvvm.fma.rn.f(float %220, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !21
|
| 301 |
+
%.02.i143 = select i1 %.not.i142, float %228, float %227, !dbg !21
|
| 302 |
+
%229 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i143) #6, !dbg !21
|
| 303 |
+
%230 = tail call float @llvm.nvvm.saturate.f(float %.02.i143) #6, !dbg !21
|
| 304 |
+
%.03.i145 = select i1 %.not1.i144, float %230, float %229, !dbg !21
|
| 305 |
+
%231 = insertelement <2 x i32> poison, i32 %64, i64 0, !dbg !21
|
| 306 |
+
%232 = insertelement <2 x i32> %231, i32 %69, i64 1, !dbg !21
|
| 307 |
+
%233 = icmp eq <2 x i32> %232, zeroinitializer, !dbg !21
|
| 308 |
+
%234 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i145, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 309 |
+
%235 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i145, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !21
|
| 310 |
+
%236 = insertelement <2 x float> poison, float %226, i64 0, !dbg !21
|
| 311 |
+
%237 = insertelement <2 x float> %236, float %235, i64 1, !dbg !21
|
| 312 |
+
%238 = insertelement <2 x float> poison, float %225, i64 0, !dbg !21
|
| 313 |
+
%239 = insertelement <2 x float> %238, float %234, i64 1, !dbg !21
|
| 314 |
+
%240 = select <2 x i1> %233, <2 x float> %237, <2 x float> %239, !dbg !21
|
| 315 |
+
%241 = extractelement <2 x float> %240, i64 0, !dbg !21
|
| 316 |
+
%242 = fadd float %241, 0xC168000FE0000000, !dbg !21
|
| 317 |
+
%243 = fneg float %242, !dbg !21
|
| 318 |
+
%244 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %219, float 0x3FF7154760000000, float %243) #6, !dbg !21
|
| 319 |
+
%245 = tail call float @llvm.nvvm.fma.rn.f(float %219, float 0x3FF7154760000000, float %243) #6, !dbg !21
|
| 320 |
+
%.0.i139 = select i1 %.not3.i138, float %245, float %244, !dbg !21
|
| 321 |
+
%246 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %219, float 0x3E54AE0C00000000, float %.0.i139) #6, !dbg !21
|
| 322 |
+
%247 = tail call float @llvm.nvvm.fma.rn.f(float %219, float 0x3E54AE0C00000000, float %.0.i139) #6, !dbg !21
|
| 323 |
+
%.01.i141 = select i1 %.not4.i140, float %247, float %246, !dbg !21
|
| 324 |
+
%248 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i141) #6, !dbg !21
|
| 325 |
+
%249 = extractelement <2 x float> %240, i64 1, !dbg !21
|
| 326 |
+
%250 = fadd float %249, 0xC168000FE0000000, !dbg !21
|
| 327 |
+
%251 = fneg float %250, !dbg !21
|
| 328 |
+
%252 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %220, float 0x3FF7154760000000, float %251) #6, !dbg !21
|
| 329 |
+
%253 = tail call float @llvm.nvvm.fma.rn.f(float %220, float 0x3FF7154760000000, float %251) #6, !dbg !21
|
| 330 |
+
%.0.i149 = select i1 %.not3.i148, float %253, float %252, !dbg !21
|
| 331 |
+
%254 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %220, float 0x3E54AE0C00000000, float %.0.i149) #6, !dbg !21
|
| 332 |
+
%255 = tail call float @llvm.nvvm.fma.rn.f(float %220, float 0x3E54AE0C00000000, float %.0.i149) #6, !dbg !21
|
| 333 |
+
%.01.i151 = select i1 %.not4.i150, float %255, float %254, !dbg !21
|
| 334 |
+
%256 = bitcast <2 x float> %240 to <2 x i32>, !dbg !21
|
| 335 |
+
%257 = shl <2 x i32> %256, splat (i32 23), !dbg !21
|
| 336 |
+
%258 = bitcast <2 x i32> %257 to <2 x float>, !dbg !21
|
| 337 |
+
%259 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i151) #6, !dbg !21
|
| 338 |
+
%260 = insertelement <2 x float> poison, float %248, i64 0, !dbg !21
|
| 339 |
+
%261 = insertelement <2 x float> %260, float %259, i64 1, !dbg !21
|
| 340 |
+
%262 = fmul <2 x float> %261, %258, !dbg !21
|
| 341 |
+
%263 = select <2 x i1> %173, <2 x float> splat (float 1.000000e+00), <2 x float> %262, !dbg !30
|
| 342 |
+
%264 = fmul <2 x float> %14, %218, !dbg !31
|
| 343 |
+
%265 = fadd <2 x float> %264, %263, !dbg !32
|
| 344 |
+
%266 = insertelement <2 x i1> poison, i1 %19, i64 0, !dbg !33
|
| 345 |
+
%267 = shufflevector <2 x i1> %266, <2 x i1> poison, <2 x i32> zeroinitializer, !dbg !33
|
| 346 |
+
%268 = select <2 x i1> %267, <2 x float> %75, <2 x float> %17, !dbg !33
|
| 347 |
+
%269 = select <2 x i1> %267, <2 x float> %172, <2 x float> %15, !dbg !33
|
| 348 |
+
%270 = select <2 x i1> %267, <2 x float> %168, <2 x float> %16, !dbg !34
|
| 349 |
+
%271 = select <2 x i1> %267, <2 x float> %265, <2 x float> %14, !dbg !34
|
| 350 |
+
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 2048, !dbg !11
|
| 351 |
+
%272 = icmp samesign ult i64 %indvars.iv, 29952, !dbg !11
|
| 352 |
+
br i1 %272, label %13, label %273, !dbg !11
|
| 353 |
+
|
| 354 |
+
273: ; preds = %13
|
| 355 |
+
%274 = and i32 %8, 31, !dbg !9
|
| 356 |
+
%275 = lshr i32 %8, 5, !dbg !9
|
| 357 |
+
%276 = extractelement <2 x float> %268, i64 0, !dbg !35
|
| 358 |
+
%277 = extractelement <2 x float> %268, i64 1, !dbg !35
|
| 359 |
+
%278 = fcmp ogt float %276, %277, !dbg !35
|
| 360 |
+
%279 = fcmp uno float %276, 0.000000e+00, !dbg !37
|
| 361 |
+
%280 = or i1 %278, %279, !dbg !38
|
| 362 |
+
%281 = select i1 %280, float %276, float %277, !dbg !39
|
| 363 |
+
%282 = extractelement <2 x float> %269, i64 0, !dbg !35
|
| 364 |
+
%283 = fcmp ogt float %281, %282, !dbg !35
|
| 365 |
+
%284 = fcmp uno float %281, 0.000000e+00, !dbg !37
|
| 366 |
+
%285 = or i1 %283, %284, !dbg !38
|
| 367 |
+
%286 = select i1 %285, float %281, float %282, !dbg !39
|
| 368 |
+
%287 = extractelement <2 x float> %269, i64 1, !dbg !35
|
| 369 |
+
%288 = fcmp ogt float %286, %287, !dbg !35
|
| 370 |
+
%289 = fcmp uno float %286, 0.000000e+00, !dbg !37
|
| 371 |
+
%290 = or i1 %288, %289, !dbg !38
|
| 372 |
+
%291 = select i1 %290, float %286, float %287, !dbg !39
|
| 373 |
+
%292 = bitcast float %291 to i32, !dbg !40
|
| 374 |
+
%293 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %292, i32 16, i32 31), !dbg !40
|
| 375 |
+
%294 = bitcast i32 %293 to float, !dbg !40
|
| 376 |
+
%295 = fcmp ogt float %291, %294, !dbg !35
|
| 377 |
+
%296 = fcmp uno float %291, 0.000000e+00, !dbg !37
|
| 378 |
+
%297 = or i1 %296, %295, !dbg !38
|
| 379 |
+
%298 = select i1 %297, float %291, float %294, !dbg !39
|
| 380 |
+
%299 = bitcast float %298 to i32, !dbg !40
|
| 381 |
+
%300 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %299, i32 8, i32 31), !dbg !40
|
| 382 |
+
%301 = bitcast i32 %300 to float, !dbg !40
|
| 383 |
+
%302 = fcmp ogt float %298, %301, !dbg !35
|
| 384 |
+
%303 = fcmp uno float %298, 0.000000e+00, !dbg !37
|
| 385 |
+
%304 = or i1 %302, %303, !dbg !38
|
| 386 |
+
%305 = select i1 %304, float %298, float %301, !dbg !39
|
| 387 |
+
%306 = bitcast float %305 to i32, !dbg !40
|
| 388 |
+
%307 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %306, i32 4, i32 31), !dbg !40
|
| 389 |
+
%308 = bitcast i32 %307 to float, !dbg !40
|
| 390 |
+
%309 = fcmp ogt float %305, %308, !dbg !35
|
| 391 |
+
%310 = fcmp uno float %305, 0.000000e+00, !dbg !37
|
| 392 |
+
%311 = or i1 %309, %310, !dbg !38
|
| 393 |
+
%312 = select i1 %311, float %305, float %308, !dbg !39
|
| 394 |
+
%313 = bitcast float %312 to i32, !dbg !40
|
| 395 |
+
%314 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %313, i32 2, i32 31), !dbg !40
|
| 396 |
+
%315 = bitcast i32 %314 to float, !dbg !40
|
| 397 |
+
%316 = fcmp ogt float %312, %315, !dbg !35
|
| 398 |
+
%317 = fcmp uno float %312, 0.000000e+00, !dbg !37
|
| 399 |
+
%318 = or i1 %316, %317, !dbg !38
|
| 400 |
+
%319 = select i1 %318, float %312, float %315, !dbg !39
|
| 401 |
+
%320 = bitcast float %319 to i32, !dbg !40
|
| 402 |
+
%321 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %320, i32 1, i32 31), !dbg !40
|
| 403 |
+
%322 = bitcast i32 %321 to float, !dbg !40
|
| 404 |
+
%323 = fcmp ogt float %319, %322, !dbg !35
|
| 405 |
+
%324 = fcmp uno float %319, 0.000000e+00, !dbg !37
|
| 406 |
+
%325 = or i1 %323, %324, !dbg !38
|
| 407 |
+
%326 = and i32 %275, 15, !dbg !40
|
| 408 |
+
%327 = icmp eq i32 %274, 0, !dbg !40
|
| 409 |
+
%328 = getelementptr float, ptr addrspace(3) @global_smem, i32 %326, !dbg !40
|
| 410 |
+
%329 = select i1 %325, i32 %320, i32 %321, !dbg !39
|
| 411 |
+
%330 = insertelement <1 x i32> poison, i32 %329, i64 0, !dbg !40
|
| 412 |
+
tail call void asm sideeffect "@$2 st.shared.b32 [ $0 + 0 ], $1;", "r,r,b"(ptr addrspace(3) %328, <1 x i32> %330, i1 %327) #6, !dbg !40
|
| 413 |
+
tail call void @llvm.nvvm.barrier.cta.sync.aligned.all(i32 0), !dbg !40
|
| 414 |
+
%331 = icmp samesign ult i32 %8, 16, !dbg !40
|
| 415 |
+
%332 = getelementptr float, ptr addrspace(3) @global_smem, i32 %8, !dbg !40
|
| 416 |
+
%333 = tail call i32 asm sideeffect "@$2 ld.shared.b32 $0, [ $1 + 0 ];", "=r,r,b"(ptr addrspace(3) %332, i1 %331) #6, !dbg !40
|
| 417 |
+
%334 = bitcast i32 %333 to float, !dbg !40
|
| 418 |
+
%335 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %333, i32 8, i32 31), !dbg !40
|
| 419 |
+
%336 = bitcast i32 %335 to float, !dbg !40
|
| 420 |
+
%337 = fcmp ogt float %334, %336, !dbg !35
|
| 421 |
+
%338 = fcmp uno float %334, 0.000000e+00, !dbg !37
|
| 422 |
+
%339 = or i1 %338, %337, !dbg !38
|
| 423 |
+
%340 = select i1 %339, float %334, float %336, !dbg !39
|
| 424 |
+
%341 = bitcast float %340 to i32, !dbg !40
|
| 425 |
+
%342 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %341, i32 4, i32 31), !dbg !40
|
| 426 |
+
%343 = bitcast i32 %342 to float, !dbg !40
|
| 427 |
+
%344 = fcmp ogt float %340, %343, !dbg !35
|
| 428 |
+
%345 = fcmp uno float %340, 0.000000e+00, !dbg !37
|
| 429 |
+
%346 = or i1 %344, %345, !dbg !38
|
| 430 |
+
%347 = select i1 %346, float %340, float %343, !dbg !39
|
| 431 |
+
%348 = bitcast float %347 to i32, !dbg !40
|
| 432 |
+
%349 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %348, i32 2, i32 31), !dbg !40
|
| 433 |
+
%350 = bitcast i32 %349 to float, !dbg !40
|
| 434 |
+
%351 = fcmp ogt float %347, %350, !dbg !35
|
| 435 |
+
%352 = fcmp uno float %347, 0.000000e+00, !dbg !37
|
| 436 |
+
%353 = or i1 %351, %352, !dbg !38
|
| 437 |
+
%354 = select i1 %353, float %347, float %350, !dbg !39
|
| 438 |
+
%355 = bitcast float %354 to i32, !dbg !40
|
| 439 |
+
%356 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %355, i32 1, i32 31), !dbg !40
|
| 440 |
+
%357 = bitcast i32 %356 to float, !dbg !40
|
| 441 |
+
%358 = fcmp ogt float %354, %357, !dbg !35
|
| 442 |
+
%359 = fcmp uno float %354, 0.000000e+00, !dbg !37
|
| 443 |
+
%360 = or i1 %358, %359, !dbg !38
|
| 444 |
+
%361 = icmp eq i32 %8, 0, !dbg !40
|
| 445 |
+
%362 = select i1 %360, i32 %355, i32 %356, !dbg !39
|
| 446 |
+
%363 = insertelement <1 x i32> poison, i32 %362, i64 0, !dbg !40
|
| 447 |
+
tail call void asm sideeffect "@$2 st.shared.b32 [ $0 + 0 ], $1;", "r,r,b"(ptr addrspace(3) %332, <1 x i32> %363, i1 %361) #6, !dbg !40
|
| 448 |
+
tail call void @llvm.nvvm.barrier.cta.sync.aligned.all(i32 0), !dbg !40
|
| 449 |
+
%364 = load float, ptr addrspace(3) @global_smem, align 16, !dbg !40
|
| 450 |
+
%365 = fcmp oeq float %364, 0xFFF0000000000000, !dbg !41
|
| 451 |
+
%366 = fsub float %276, %364, !dbg !42
|
| 452 |
+
%367 = fsub float %277, %364, !dbg !42
|
| 453 |
+
%368 = fsub float %282, %364, !dbg !42
|
| 454 |
+
%369 = fsub float %287, %364, !dbg !42
|
| 455 |
+
%370 = select i1 %365, float 0.000000e+00, float %366, !dbg !43
|
| 456 |
+
%371 = select i1 %365, float 0.000000e+00, float %367, !dbg !43
|
| 457 |
+
%372 = select i1 %365, float 0.000000e+00, float %368, !dbg !43
|
| 458 |
+
%373 = select i1 %365, float 0.000000e+00, float %369, !dbg !43
|
| 459 |
+
%374 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 460 |
+
%.not.i = icmp eq i32 %374, 0, !dbg !44
|
| 461 |
+
%375 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %370, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !44
|
| 462 |
+
%376 = tail call float @llvm.nvvm.fma.rn.f(float %370, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !44
|
| 463 |
+
%.02.i = select i1 %.not.i, float %376, float %375, !dbg !44
|
| 464 |
+
%377 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 465 |
+
%.not1.i = icmp eq i32 %377, 0, !dbg !44
|
| 466 |
+
%378 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i) #6, !dbg !44
|
| 467 |
+
%379 = tail call float @llvm.nvvm.saturate.f(float %.02.i) #6, !dbg !44
|
| 468 |
+
%.03.i = select i1 %.not1.i, float %379, float %378, !dbg !44
|
| 469 |
+
%380 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 470 |
+
%381 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !44
|
| 471 |
+
%382 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !44
|
| 472 |
+
%383 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 473 |
+
%.not3.i = icmp eq i32 %383, 0, !dbg !44
|
| 474 |
+
%384 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 475 |
+
%.not4.i = icmp eq i32 %384, 0, !dbg !44
|
| 476 |
+
%385 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 477 |
+
%.not.i2 = icmp eq i32 %385, 0, !dbg !44
|
| 478 |
+
%386 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %371, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !44
|
| 479 |
+
%387 = tail call float @llvm.nvvm.fma.rn.f(float %371, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !44
|
| 480 |
+
%.02.i3 = select i1 %.not.i2, float %387, float %386, !dbg !44
|
| 481 |
+
%388 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 482 |
+
%.not1.i4 = icmp eq i32 %388, 0, !dbg !44
|
| 483 |
+
%389 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i3) #6, !dbg !44
|
| 484 |
+
%390 = tail call float @llvm.nvvm.saturate.f(float %.02.i3) #6, !dbg !44
|
| 485 |
+
%.03.i5 = select i1 %.not1.i4, float %390, float %389, !dbg !44
|
| 486 |
+
%391 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 487 |
+
%392 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i5, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !44
|
| 488 |
+
%393 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i5, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !44
|
| 489 |
+
%394 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 490 |
+
%.not3.i8 = icmp eq i32 %394, 0, !dbg !44
|
| 491 |
+
%395 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 492 |
+
%.not4.i10 = icmp eq i32 %395, 0, !dbg !44
|
| 493 |
+
%396 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 494 |
+
%.not.i12 = icmp eq i32 %396, 0, !dbg !44
|
| 495 |
+
%397 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %372, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !44
|
| 496 |
+
%398 = tail call float @llvm.nvvm.fma.rn.f(float %372, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !44
|
| 497 |
+
%.02.i13 = select i1 %.not.i12, float %398, float %397, !dbg !44
|
| 498 |
+
%399 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 499 |
+
%.not1.i14 = icmp eq i32 %399, 0, !dbg !44
|
| 500 |
+
%400 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i13) #6, !dbg !44
|
| 501 |
+
%401 = tail call float @llvm.nvvm.saturate.f(float %.02.i13) #6, !dbg !44
|
| 502 |
+
%.03.i15 = select i1 %.not1.i14, float %401, float %400, !dbg !44
|
| 503 |
+
%402 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 504 |
+
%403 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i15, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !44
|
| 505 |
+
%404 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i15, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !44
|
| 506 |
+
%405 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 507 |
+
%.not3.i18 = icmp eq i32 %405, 0, !dbg !44
|
| 508 |
+
%406 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 509 |
+
%.not4.i20 = icmp eq i32 %406, 0, !dbg !44
|
| 510 |
+
%407 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 511 |
+
%.not.i22 = icmp eq i32 %407, 0, !dbg !44
|
| 512 |
+
%408 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %373, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !44
|
| 513 |
+
%409 = tail call float @llvm.nvvm.fma.rn.f(float %373, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !44
|
| 514 |
+
%.02.i23 = select i1 %.not.i22, float %409, float %408, !dbg !44
|
| 515 |
+
%410 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 516 |
+
%.not1.i24 = icmp eq i32 %410, 0, !dbg !44
|
| 517 |
+
%411 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i23) #6, !dbg !44
|
| 518 |
+
%412 = tail call float @llvm.nvvm.saturate.f(float %.02.i23) #6, !dbg !44
|
| 519 |
+
%.03.i25 = select i1 %.not1.i24, float %412, float %411, !dbg !44
|
| 520 |
+
%413 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 521 |
+
%414 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i25, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !44
|
| 522 |
+
%415 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i25, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !44
|
| 523 |
+
%416 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 524 |
+
%.not3.i28 = icmp eq i32 %416, 0, !dbg !44
|
| 525 |
+
%417 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !44
|
| 526 |
+
%.not4.i30 = icmp eq i32 %417, 0, !dbg !44
|
| 527 |
+
%418 = insertelement <2 x i32> poison, i32 %380, i64 0, !dbg !44
|
| 528 |
+
%419 = insertelement <2 x i32> %418, i32 %391, i64 1, !dbg !44
|
| 529 |
+
%420 = icmp eq <2 x i32> %419, zeroinitializer, !dbg !44
|
| 530 |
+
%421 = insertelement <2 x float> poison, float %382, i64 0, !dbg !44
|
| 531 |
+
%422 = insertelement <2 x float> %421, float %393, i64 1, !dbg !44
|
| 532 |
+
%423 = insertelement <2 x float> poison, float %381, i64 0, !dbg !44
|
| 533 |
+
%424 = insertelement <2 x float> %423, float %392, i64 1, !dbg !44
|
| 534 |
+
%425 = select <2 x i1> %420, <2 x float> %422, <2 x float> %424, !dbg !44
|
| 535 |
+
%426 = extractelement <2 x float> %425, i64 0, !dbg !44
|
| 536 |
+
%427 = fadd float %426, 0xC168000FE0000000, !dbg !44
|
| 537 |
+
%428 = fneg float %427, !dbg !44
|
| 538 |
+
%429 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %370, float 0x3FF7154760000000, float %428) #6, !dbg !44
|
| 539 |
+
%430 = tail call float @llvm.nvvm.fma.rn.f(float %370, float 0x3FF7154760000000, float %428) #6, !dbg !44
|
| 540 |
+
%.0.i = select i1 %.not3.i, float %430, float %429, !dbg !44
|
| 541 |
+
%431 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %370, float 0x3E54AE0C00000000, float %.0.i) #6, !dbg !44
|
| 542 |
+
%432 = tail call float @llvm.nvvm.fma.rn.f(float %370, float 0x3E54AE0C00000000, float %.0.i) #6, !dbg !44
|
| 543 |
+
%.01.i = select i1 %.not4.i, float %432, float %431, !dbg !44
|
| 544 |
+
%433 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i) #6, !dbg !44
|
| 545 |
+
%434 = extractelement <2 x float> %425, i64 1, !dbg !44
|
| 546 |
+
%435 = fadd float %434, 0xC168000FE0000000, !dbg !44
|
| 547 |
+
%436 = fneg float %435, !dbg !44
|
| 548 |
+
%437 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %371, float 0x3FF7154760000000, float %436) #6, !dbg !44
|
| 549 |
+
%438 = tail call float @llvm.nvvm.fma.rn.f(float %371, float 0x3FF7154760000000, float %436) #6, !dbg !44
|
| 550 |
+
%.0.i9 = select i1 %.not3.i8, float %438, float %437, !dbg !44
|
| 551 |
+
%439 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %371, float 0x3E54AE0C00000000, float %.0.i9) #6, !dbg !44
|
| 552 |
+
%440 = tail call float @llvm.nvvm.fma.rn.f(float %371, float 0x3E54AE0C00000000, float %.0.i9) #6, !dbg !44
|
| 553 |
+
%.01.i11 = select i1 %.not4.i10, float %440, float %439, !dbg !44
|
| 554 |
+
%441 = bitcast <2 x float> %425 to <2 x i32>, !dbg !44
|
| 555 |
+
%442 = shl <2 x i32> %441, splat (i32 23), !dbg !44
|
| 556 |
+
%443 = bitcast <2 x i32> %442 to <2 x float>, !dbg !44
|
| 557 |
+
%444 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i11) #6, !dbg !44
|
| 558 |
+
%445 = insertelement <2 x float> poison, float %433, i64 0, !dbg !44
|
| 559 |
+
%446 = insertelement <2 x float> %445, float %444, i64 1, !dbg !44
|
| 560 |
+
%447 = fmul <2 x float> %446, %443, !dbg !44
|
| 561 |
+
%448 = fmul <2 x float> %270, %447, !dbg !45
|
| 562 |
+
%449 = insertelement <2 x i32> poison, i32 %402, i64 0, !dbg !44
|
| 563 |
+
%450 = insertelement <2 x i32> %449, i32 %413, i64 1, !dbg !44
|
| 564 |
+
%451 = icmp eq <2 x i32> %450, zeroinitializer, !dbg !44
|
| 565 |
+
%452 = insertelement <2 x float> poison, float %404, i64 0, !dbg !44
|
| 566 |
+
%453 = insertelement <2 x float> %452, float %415, i64 1, !dbg !44
|
| 567 |
+
%454 = insertelement <2 x float> poison, float %403, i64 0, !dbg !44
|
| 568 |
+
%455 = insertelement <2 x float> %454, float %414, i64 1, !dbg !44
|
| 569 |
+
%456 = select <2 x i1> %451, <2 x float> %453, <2 x float> %455, !dbg !44
|
| 570 |
+
%457 = extractelement <2 x float> %456, i64 0, !dbg !44
|
| 571 |
+
%458 = fadd float %457, 0xC168000FE0000000, !dbg !44
|
| 572 |
+
%459 = fneg float %458, !dbg !44
|
| 573 |
+
%460 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %372, float 0x3FF7154760000000, float %459) #6, !dbg !44
|
| 574 |
+
%461 = tail call float @llvm.nvvm.fma.rn.f(float %372, float 0x3FF7154760000000, float %459) #6, !dbg !44
|
| 575 |
+
%.0.i19 = select i1 %.not3.i18, float %461, float %460, !dbg !44
|
| 576 |
+
%462 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %372, float 0x3E54AE0C00000000, float %.0.i19) #6, !dbg !44
|
| 577 |
+
%463 = tail call float @llvm.nvvm.fma.rn.f(float %372, float 0x3E54AE0C00000000, float %.0.i19) #6, !dbg !44
|
| 578 |
+
%.01.i21 = select i1 %.not4.i20, float %463, float %462, !dbg !44
|
| 579 |
+
%464 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i21) #6, !dbg !44
|
| 580 |
+
%465 = extractelement <2 x float> %456, i64 1, !dbg !44
|
| 581 |
+
%466 = fadd float %465, 0xC168000FE0000000, !dbg !44
|
| 582 |
+
%467 = fneg float %466, !dbg !44
|
| 583 |
+
%468 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %373, float 0x3FF7154760000000, float %467) #6, !dbg !44
|
| 584 |
+
%469 = tail call float @llvm.nvvm.fma.rn.f(float %373, float 0x3FF7154760000000, float %467) #6, !dbg !44
|
| 585 |
+
%.0.i29 = select i1 %.not3.i28, float %469, float %468, !dbg !44
|
| 586 |
+
%470 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %373, float 0x3E54AE0C00000000, float %.0.i29) #6, !dbg !44
|
| 587 |
+
%471 = tail call float @llvm.nvvm.fma.rn.f(float %373, float 0x3E54AE0C00000000, float %.0.i29) #6, !dbg !44
|
| 588 |
+
%.01.i31 = select i1 %.not4.i30, float %471, float %470, !dbg !44
|
| 589 |
+
%472 = bitcast <2 x float> %456 to <2 x i32>, !dbg !44
|
| 590 |
+
%473 = shl <2 x i32> %472, splat (i32 23), !dbg !44
|
| 591 |
+
%474 = bitcast <2 x i32> %473 to <2 x float>, !dbg !44
|
| 592 |
+
%475 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i31) #6, !dbg !44
|
| 593 |
+
%476 = insertelement <2 x float> poison, float %464, i64 0, !dbg !44
|
| 594 |
+
%477 = insertelement <2 x float> %476, float %475, i64 1, !dbg !44
|
| 595 |
+
%478 = fmul <2 x float> %477, %474, !dbg !44
|
| 596 |
+
%479 = fmul <2 x float> %271, %478, !dbg !45
|
| 597 |
+
tail call void @llvm.nvvm.barrier.cta.sync.aligned.all(i32 0), !dbg !46
|
| 598 |
+
%shift = shufflevector <2 x float> %448, <2 x float> poison, <2 x i32> <i32 1, i32 poison>, !dbg !49
|
| 599 |
+
%foldExtExtBinop191 = fadd <2 x float> %448, %shift, !dbg !49
|
| 600 |
+
%foldExtExtBinop193 = fadd <2 x float> %foldExtExtBinop191, %479, !dbg !49
|
| 601 |
+
%shift195 = shufflevector <2 x float> %479, <2 x float> poison, <2 x i32> <i32 1, i32 poison>, !dbg !49
|
| 602 |
+
%foldExtExtBinop196 = fadd <2 x float> %foldExtExtBinop193, %shift195, !dbg !49
|
| 603 |
+
%480 = extractelement <2 x float> %foldExtExtBinop196, i64 0, !dbg !49
|
| 604 |
+
%481 = bitcast float %480 to i32, !dbg !46
|
| 605 |
+
%482 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %481, i32 16, i32 31), !dbg !46
|
| 606 |
+
%483 = bitcast i32 %482 to float, !dbg !46
|
| 607 |
+
%484 = fadd float %480, %483, !dbg !49
|
| 608 |
+
%485 = bitcast float %484 to i32, !dbg !46
|
| 609 |
+
%486 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %485, i32 8, i32 31), !dbg !46
|
| 610 |
+
%487 = bitcast i32 %486 to float, !dbg !46
|
| 611 |
+
%488 = fadd float %484, %487, !dbg !49
|
| 612 |
+
%489 = bitcast float %488 to i32, !dbg !46
|
| 613 |
+
%490 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %489, i32 4, i32 31), !dbg !46
|
| 614 |
+
%491 = bitcast i32 %490 to float, !dbg !46
|
| 615 |
+
%492 = fadd float %488, %491, !dbg !49
|
| 616 |
+
%493 = bitcast float %492 to i32, !dbg !46
|
| 617 |
+
%494 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %493, i32 2, i32 31), !dbg !46
|
| 618 |
+
%495 = bitcast i32 %494 to float, !dbg !46
|
| 619 |
+
%496 = fadd float %492, %495, !dbg !49
|
| 620 |
+
%497 = bitcast float %496 to i32, !dbg !46
|
| 621 |
+
%498 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %497, i32 1, i32 31), !dbg !46
|
| 622 |
+
%499 = bitcast i32 %498 to float, !dbg !46
|
| 623 |
+
%500 = fadd float %496, %499, !dbg !49
|
| 624 |
+
%501 = bitcast float %500 to <1 x i32>, !dbg !46
|
| 625 |
+
tail call void asm sideeffect "@$2 st.shared.b32 [ $0 + 0 ], $1;", "r,r,b"(ptr addrspace(3) %328, <1 x i32> %501, i1 %327) #6, !dbg !46
|
| 626 |
+
tail call void @llvm.nvvm.barrier.cta.sync.aligned.all(i32 0), !dbg !46
|
| 627 |
+
%502 = tail call i32 asm sideeffect "@$2 ld.shared.b32 $0, [ $1 + 0 ];", "=r,r,b"(ptr addrspace(3) %332, i1 %331) #6, !dbg !46
|
| 628 |
+
%503 = bitcast i32 %502 to float, !dbg !46
|
| 629 |
+
%504 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %502, i32 8, i32 31), !dbg !46
|
| 630 |
+
%505 = bitcast i32 %504 to float, !dbg !46
|
| 631 |
+
%506 = fadd float %503, %505, !dbg !49
|
| 632 |
+
%507 = bitcast float %506 to i32, !dbg !46
|
| 633 |
+
%508 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %507, i32 4, i32 31), !dbg !46
|
| 634 |
+
%509 = bitcast i32 %508 to float, !dbg !46
|
| 635 |
+
%510 = fadd float %506, %509, !dbg !49
|
| 636 |
+
%511 = bitcast float %510 to i32, !dbg !46
|
| 637 |
+
%512 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %511, i32 2, i32 31), !dbg !46
|
| 638 |
+
%513 = bitcast i32 %512 to float, !dbg !46
|
| 639 |
+
%514 = fadd float %510, %513, !dbg !49
|
| 640 |
+
%515 = bitcast float %514 to i32, !dbg !46
|
| 641 |
+
%516 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %515, i32 1, i32 31), !dbg !46
|
| 642 |
+
%517 = bitcast i32 %516 to float, !dbg !46
|
| 643 |
+
%518 = fadd float %514, %517, !dbg !49
|
| 644 |
+
%519 = bitcast float %518 to <1 x i32>, !dbg !46
|
| 645 |
+
tail call void asm sideeffect "@$2 st.shared.b32 [ $0 + 0 ], $1;", "r,r,b"(ptr addrspace(3) %332, <1 x i32> %519, i1 %361) #6, !dbg !46
|
| 646 |
+
tail call void @llvm.nvvm.barrier.cta.sync.aligned.all(i32 0), !dbg !46
|
| 647 |
+
%520 = load float, ptr addrspace(3) @global_smem, align 16, !dbg !46
|
| 648 |
+
br label %521, !dbg !50
|
| 649 |
+
|
| 650 |
+
521: ; preds = %273, %521
|
| 651 |
+
%indvars.iv160 = phi i64 [ 0, %273 ], [ %indvars.iv.next161, %521 ]
|
| 652 |
+
%522 = or disjoint i64 %indvars.iv160, %12, !dbg !51
|
| 653 |
+
%523 = icmp samesign ult i64 %522, 32000, !dbg !52
|
| 654 |
+
%524 = trunc nuw nsw i64 %522 to i32, !dbg !53
|
| 655 |
+
%525 = add i32 %11, %524, !dbg !53
|
| 656 |
+
%526 = sext i32 %525 to i64, !dbg !54
|
| 657 |
+
%527 = getelementptr bfloat, ptr addrspace(1) %0, i64 %526, !dbg !54
|
| 658 |
+
%528 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_first.b64 $0, 1.0;", "=l"() #6, !dbg !55
|
| 659 |
+
%529 = tail call { i32, i32 } asm sideeffect "mov.u32 $0, $2;\0A\09mov.u32 $1, $3;\0A\09@$6 ld.global.L1::evict_first.L2::cache_hint.v2.b32 { $0, $1 }, [ $4 + 0 ], $5;", "=r,=r,r,r,l,l,b"(i32 0, i32 0, ptr addrspace(1) %527, i64 %528, i1 %523) #6, !dbg !55
|
| 660 |
+
%530 = extractvalue { i32, i32 } %529, 0, !dbg !55
|
| 661 |
+
%531 = bitcast i32 %530 to <2 x bfloat>, !dbg !55
|
| 662 |
+
%532 = extractvalue { i32, i32 } %529, 1, !dbg !55
|
| 663 |
+
%533 = bitcast i32 %532 to <2 x bfloat>, !dbg !55
|
| 664 |
+
%534 = extractelement <2 x bfloat> %531, i64 0, !dbg !55
|
| 665 |
+
%535 = extractelement <2 x bfloat> %531, i64 1, !dbg !55
|
| 666 |
+
%536 = extractelement <2 x bfloat> %533, i64 0, !dbg !55
|
| 667 |
+
%537 = extractelement <2 x bfloat> %533, i64 1, !dbg !55
|
| 668 |
+
%538 = fpext bfloat %534 to float, !dbg !56
|
| 669 |
+
%539 = fpext bfloat %535 to float, !dbg !56
|
| 670 |
+
%540 = fpext bfloat %536 to float, !dbg !56
|
| 671 |
+
%541 = fpext bfloat %537 to float, !dbg !56
|
| 672 |
+
%542 = fsub float %538, %364, !dbg !57
|
| 673 |
+
%543 = fsub float %539, %364, !dbg !57
|
| 674 |
+
%544 = fsub float %540, %364, !dbg !57
|
| 675 |
+
%545 = fsub float %541, %364, !dbg !57
|
| 676 |
+
%546 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 677 |
+
%.not.i32 = icmp eq i32 %546, 0, !dbg !58
|
| 678 |
+
%547 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %542, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !58
|
| 679 |
+
%548 = tail call float @llvm.nvvm.fma.rn.f(float %542, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !58
|
| 680 |
+
%.02.i33 = select i1 %.not.i32, float %548, float %547, !dbg !58
|
| 681 |
+
%549 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 682 |
+
%.not1.i34 = icmp eq i32 %549, 0, !dbg !58
|
| 683 |
+
%550 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i33) #6, !dbg !58
|
| 684 |
+
%551 = tail call float @llvm.nvvm.saturate.f(float %.02.i33) #6, !dbg !58
|
| 685 |
+
%.03.i35 = select i1 %.not1.i34, float %551, float %550, !dbg !58
|
| 686 |
+
%552 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 687 |
+
%.not2.i36 = icmp eq i32 %552, 0, !dbg !58
|
| 688 |
+
%553 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i35, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !58
|
| 689 |
+
%554 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i35, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !58
|
| 690 |
+
%.04.i37 = select i1 %.not2.i36, float %554, float %553, !dbg !58
|
| 691 |
+
%555 = fadd float %.04.i37, 0xC168000FE0000000, !dbg !58
|
| 692 |
+
%556 = fneg float %555, !dbg !58
|
| 693 |
+
%557 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 694 |
+
%.not3.i38 = icmp eq i32 %557, 0, !dbg !58
|
| 695 |
+
%558 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %542, float 0x3FF7154760000000, float %556) #6, !dbg !58
|
| 696 |
+
%559 = tail call float @llvm.nvvm.fma.rn.f(float %542, float 0x3FF7154760000000, float %556) #6, !dbg !58
|
| 697 |
+
%.0.i39 = select i1 %.not3.i38, float %559, float %558, !dbg !58
|
| 698 |
+
%560 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 699 |
+
%.not4.i40 = icmp eq i32 %560, 0, !dbg !58
|
| 700 |
+
%561 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %542, float 0x3E54AE0C00000000, float %.0.i39) #6, !dbg !58
|
| 701 |
+
%562 = tail call float @llvm.nvvm.fma.rn.f(float %542, float 0x3E54AE0C00000000, float %.0.i39) #6, !dbg !58
|
| 702 |
+
%.01.i41 = select i1 %.not4.i40, float %562, float %561, !dbg !58
|
| 703 |
+
%563 = bitcast float %.04.i37 to i32, !dbg !58
|
| 704 |
+
%564 = shl i32 %563, 23, !dbg !58
|
| 705 |
+
%565 = bitcast i32 %564 to float, !dbg !58
|
| 706 |
+
%566 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i41) #6, !dbg !58
|
| 707 |
+
%567 = fmul float %566, %565, !dbg !58
|
| 708 |
+
%568 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 709 |
+
%.not.i42 = icmp eq i32 %568, 0, !dbg !58
|
| 710 |
+
%569 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %543, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !58
|
| 711 |
+
%570 = tail call float @llvm.nvvm.fma.rn.f(float %543, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !58
|
| 712 |
+
%.02.i43 = select i1 %.not.i42, float %570, float %569, !dbg !58
|
| 713 |
+
%571 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 714 |
+
%.not1.i44 = icmp eq i32 %571, 0, !dbg !58
|
| 715 |
+
%572 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i43) #6, !dbg !58
|
| 716 |
+
%573 = tail call float @llvm.nvvm.saturate.f(float %.02.i43) #6, !dbg !58
|
| 717 |
+
%.03.i45 = select i1 %.not1.i44, float %573, float %572, !dbg !58
|
| 718 |
+
%574 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 719 |
+
%.not2.i46 = icmp eq i32 %574, 0, !dbg !58
|
| 720 |
+
%575 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i45, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !58
|
| 721 |
+
%576 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i45, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !58
|
| 722 |
+
%.04.i47 = select i1 %.not2.i46, float %576, float %575, !dbg !58
|
| 723 |
+
%577 = fadd float %.04.i47, 0xC168000FE0000000, !dbg !58
|
| 724 |
+
%578 = fneg float %577, !dbg !58
|
| 725 |
+
%579 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 726 |
+
%.not3.i48 = icmp eq i32 %579, 0, !dbg !58
|
| 727 |
+
%580 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %543, float 0x3FF7154760000000, float %578) #6, !dbg !58
|
| 728 |
+
%581 = tail call float @llvm.nvvm.fma.rn.f(float %543, float 0x3FF7154760000000, float %578) #6, !dbg !58
|
| 729 |
+
%.0.i49 = select i1 %.not3.i48, float %581, float %580, !dbg !58
|
| 730 |
+
%582 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 731 |
+
%.not4.i50 = icmp eq i32 %582, 0, !dbg !58
|
| 732 |
+
%583 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %543, float 0x3E54AE0C00000000, float %.0.i49) #6, !dbg !58
|
| 733 |
+
%584 = tail call float @llvm.nvvm.fma.rn.f(float %543, float 0x3E54AE0C00000000, float %.0.i49) #6, !dbg !58
|
| 734 |
+
%.01.i51 = select i1 %.not4.i50, float %584, float %583, !dbg !58
|
| 735 |
+
%585 = bitcast float %.04.i47 to i32, !dbg !58
|
| 736 |
+
%586 = shl i32 %585, 23, !dbg !58
|
| 737 |
+
%587 = bitcast i32 %586 to float, !dbg !58
|
| 738 |
+
%588 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i51) #6, !dbg !58
|
| 739 |
+
%589 = fmul float %588, %587, !dbg !58
|
| 740 |
+
%590 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 741 |
+
%.not.i52 = icmp eq i32 %590, 0, !dbg !58
|
| 742 |
+
%591 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %544, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !58
|
| 743 |
+
%592 = tail call float @llvm.nvvm.fma.rn.f(float %544, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !58
|
| 744 |
+
%.02.i53 = select i1 %.not.i52, float %592, float %591, !dbg !58
|
| 745 |
+
%593 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 746 |
+
%.not1.i54 = icmp eq i32 %593, 0, !dbg !58
|
| 747 |
+
%594 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i53) #6, !dbg !58
|
| 748 |
+
%595 = tail call float @llvm.nvvm.saturate.f(float %.02.i53) #6, !dbg !58
|
| 749 |
+
%.03.i55 = select i1 %.not1.i54, float %595, float %594, !dbg !58
|
| 750 |
+
%596 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 751 |
+
%.not2.i56 = icmp eq i32 %596, 0, !dbg !58
|
| 752 |
+
%597 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i55, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !58
|
| 753 |
+
%598 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i55, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !58
|
| 754 |
+
%.04.i57 = select i1 %.not2.i56, float %598, float %597, !dbg !58
|
| 755 |
+
%599 = fadd float %.04.i57, 0xC168000FE0000000, !dbg !58
|
| 756 |
+
%600 = fneg float %599, !dbg !58
|
| 757 |
+
%601 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 758 |
+
%.not3.i58 = icmp eq i32 %601, 0, !dbg !58
|
| 759 |
+
%602 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %544, float 0x3FF7154760000000, float %600) #6, !dbg !58
|
| 760 |
+
%603 = tail call float @llvm.nvvm.fma.rn.f(float %544, float 0x3FF7154760000000, float %600) #6, !dbg !58
|
| 761 |
+
%.0.i59 = select i1 %.not3.i58, float %603, float %602, !dbg !58
|
| 762 |
+
%604 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 763 |
+
%.not4.i60 = icmp eq i32 %604, 0, !dbg !58
|
| 764 |
+
%605 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %544, float 0x3E54AE0C00000000, float %.0.i59) #6, !dbg !58
|
| 765 |
+
%606 = tail call float @llvm.nvvm.fma.rn.f(float %544, float 0x3E54AE0C00000000, float %.0.i59) #6, !dbg !58
|
| 766 |
+
%.01.i61 = select i1 %.not4.i60, float %606, float %605, !dbg !58
|
| 767 |
+
%607 = bitcast float %.04.i57 to i32, !dbg !58
|
| 768 |
+
%608 = shl i32 %607, 23, !dbg !58
|
| 769 |
+
%609 = bitcast i32 %608 to float, !dbg !58
|
| 770 |
+
%610 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i61) #6, !dbg !58
|
| 771 |
+
%611 = fmul float %610, %609, !dbg !58
|
| 772 |
+
%612 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 773 |
+
%.not.i62 = icmp eq i32 %612, 0, !dbg !58
|
| 774 |
+
%613 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %545, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !58
|
| 775 |
+
%614 = tail call float @llvm.nvvm.fma.rn.f(float %545, float 0x3F777313A0000000, float 5.000000e-01) #6, !dbg !58
|
| 776 |
+
%.02.i63 = select i1 %.not.i62, float %614, float %613, !dbg !58
|
| 777 |
+
%615 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 778 |
+
%.not1.i64 = icmp eq i32 %615, 0, !dbg !58
|
| 779 |
+
%616 = tail call float @llvm.nvvm.saturate.ftz.f(float %.02.i63) #6, !dbg !58
|
| 780 |
+
%617 = tail call float @llvm.nvvm.saturate.f(float %.02.i63) #6, !dbg !58
|
| 781 |
+
%.03.i65 = select i1 %.not1.i64, float %617, float %616, !dbg !58
|
| 782 |
+
%618 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 783 |
+
%.not2.i66 = icmp eq i32 %618, 0, !dbg !58
|
| 784 |
+
%619 = tail call float @llvm.nvvm.fma.rm.ftz.f(float %.03.i65, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !58
|
| 785 |
+
%620 = tail call float @llvm.nvvm.fma.rm.f(float %.03.i65, float 2.520000e+02, float 0x4168000020000000) #6, !dbg !58
|
| 786 |
+
%.04.i67 = select i1 %.not2.i66, float %620, float %619, !dbg !58
|
| 787 |
+
%621 = fadd float %.04.i67, 0xC168000FE0000000, !dbg !58
|
| 788 |
+
%622 = fneg float %621, !dbg !58
|
| 789 |
+
%623 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 790 |
+
%.not3.i68 = icmp eq i32 %623, 0, !dbg !58
|
| 791 |
+
%624 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %545, float 0x3FF7154760000000, float %622) #6, !dbg !58
|
| 792 |
+
%625 = tail call float @llvm.nvvm.fma.rn.f(float %545, float 0x3FF7154760000000, float %622) #6, !dbg !58
|
| 793 |
+
%.0.i69 = select i1 %.not3.i68, float %625, float %624, !dbg !58
|
| 794 |
+
%626 = tail call i32 @__nvvm_reflect(ptr nonnull @.str) #6, !dbg !58
|
| 795 |
+
%.not4.i70 = icmp eq i32 %626, 0, !dbg !58
|
| 796 |
+
%627 = tail call float @llvm.nvvm.fma.rn.ftz.f(float %545, float 0x3E54AE0C00000000, float %.0.i69) #6, !dbg !58
|
| 797 |
+
%628 = tail call float @llvm.nvvm.fma.rn.f(float %545, float 0x3E54AE0C00000000, float %.0.i69) #6, !dbg !58
|
| 798 |
+
%.01.i71 = select i1 %.not4.i70, float %628, float %627, !dbg !58
|
| 799 |
+
%629 = bitcast float %.04.i67 to i32, !dbg !58
|
| 800 |
+
%630 = shl i32 %629, 23, !dbg !58
|
| 801 |
+
%631 = bitcast i32 %630 to float, !dbg !58
|
| 802 |
+
%632 = tail call float @llvm.nvvm.ex2.approx.ftz.f(float %.01.i71) #6, !dbg !58
|
| 803 |
+
%633 = fmul float %632, %631, !dbg !58
|
| 804 |
+
%634 = tail call float @llvm.nvvm.div.full(float %567, float %520), !dbg !59
|
| 805 |
+
%635 = tail call float @llvm.nvvm.div.full(float %589, float %520), !dbg !59
|
| 806 |
+
%636 = tail call float @llvm.nvvm.div.full(float %611, float %520), !dbg !59
|
| 807 |
+
%637 = tail call float @llvm.nvvm.div.full(float %633, float %520), !dbg !59
|
| 808 |
+
%638 = getelementptr float, ptr addrspace(1) %1, i64 %526, !dbg !60
|
| 809 |
+
%639 = bitcast float %634 to i32, !dbg !61
|
| 810 |
+
%640 = bitcast float %635 to i32, !dbg !61
|
| 811 |
+
%641 = bitcast float %636 to i32, !dbg !61
|
| 812 |
+
%642 = bitcast float %637 to i32, !dbg !61
|
| 813 |
+
tail call void asm sideeffect "@$5 st.global.v4.b32 [ $4 + 0 ], { $0, $1, $2, $3 };", "r,r,r,r,l,b"(i32 %639, i32 %640, i32 %641, i32 %642, ptr addrspace(1) %638, i1 %523) #6, !dbg !61
|
| 814 |
+
%indvars.iv.next161 = add nuw nsw i64 %indvars.iv160, 2048, !dbg !50
|
| 815 |
+
%643 = icmp samesign ult i64 %indvars.iv160, 29952, !dbg !50
|
| 816 |
+
br i1 %643, label %521, label %644, !dbg !50
|
| 817 |
+
|
| 818 |
+
644: ; preds = %521
|
| 819 |
+
ret void, !dbg !62
|
| 820 |
+
}
|
| 821 |
+
|
| 822 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 823 |
+
declare noundef range(i32 0, 2147483647) i32 @llvm.nvvm.read.ptx.sreg.ctaid.x() #1
|
| 824 |
+
|
| 825 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 826 |
+
declare noundef range(i32 0, 1024) i32 @llvm.nvvm.read.ptx.sreg.tid.x() #1
|
| 827 |
+
|
| 828 |
+
; Function Attrs: convergent nocallback nounwind memory(inaccessiblemem: readwrite)
|
| 829 |
+
declare i32 @llvm.nvvm.shfl.sync.bfly.i32(i32, i32, i32, i32) #2
|
| 830 |
+
|
| 831 |
+
; Function Attrs: convergent nocallback nounwind
|
| 832 |
+
declare void @llvm.nvvm.barrier.cta.sync.aligned.all(i32) #3
|
| 833 |
+
|
| 834 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none)
|
| 835 |
+
declare float @llvm.nvvm.div.full(float, float) #4
|
| 836 |
+
|
| 837 |
+
declare i32 @__nvvm_reflect(ptr) local_unnamed_addr #5
|
| 838 |
+
|
| 839 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 840 |
+
declare float @llvm.nvvm.fma.rn.ftz.f(float, float, float) #1
|
| 841 |
+
|
| 842 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 843 |
+
declare float @llvm.nvvm.fma.rn.f(float, float, float) #1
|
| 844 |
+
|
| 845 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 846 |
+
declare float @llvm.nvvm.saturate.ftz.f(float) #1
|
| 847 |
+
|
| 848 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 849 |
+
declare float @llvm.nvvm.saturate.f(float) #1
|
| 850 |
+
|
| 851 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 852 |
+
declare float @llvm.nvvm.fma.rm.ftz.f(float, float, float) #1
|
| 853 |
+
|
| 854 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 855 |
+
declare float @llvm.nvvm.fma.rm.f(float, float, float) #1
|
| 856 |
+
|
| 857 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none)
|
| 858 |
+
declare float @llvm.nvvm.ex2.approx.ftz.f(float) #4
|
| 859 |
+
|
| 860 |
+
attributes #0 = { nounwind "nvvm.reqntid"="512" }
|
| 861 |
+
attributes #1 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
|
| 862 |
+
attributes #2 = { convergent nocallback nounwind memory(inaccessiblemem: readwrite) }
|
| 863 |
+
attributes #3 = { convergent nocallback nounwind }
|
| 864 |
+
attributes #4 = { mustprogress nocallback nofree nosync nounwind willreturn memory(none) }
|
| 865 |
+
attributes #5 = { "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
| 866 |
+
attributes #6 = { nounwind }
|
| 867 |
+
|
| 868 |
+
!llvm.dbg.cu = !{!0}
|
| 869 |
+
!llvm.module.flags = !{!2, !3}
|
| 870 |
+
!llvm.ident = !{!4}
|
| 871 |
+
|
| 872 |
+
!0 = distinct !DICompileUnit(language: DW_LANG_C, file: !1, producer: "triton", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly)
|
| 873 |
+
!1 = !DIFile(filename: "cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py", directory: "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx")
|
| 874 |
+
!2 = !{i32 2, !"Debug Info Version", i32 3}
|
| 875 |
+
!3 = !{i32 4, !"nvvm-reflect-ftz", i32 1}
|
| 876 |
+
!4 = !{!"clang version 3.8.0 (tags/RELEASE_380/final)"}
|
| 877 |
+
!5 = distinct !DISubprogram(name: "triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0", linkageName: "triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0", scope: !1, file: !1, line: 18, type: !6, scopeLine: 18, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0)
|
| 878 |
+
!6 = !DISubroutineType(cc: DW_CC_normal, types: !7)
|
| 879 |
+
!7 = !{}
|
| 880 |
+
!8 = !DILocation(line: 23, column: 28, scope: !5)
|
| 881 |
+
!9 = !DILocation(line: 26, column: 37, scope: !5)
|
| 882 |
+
!10 = !DILocation(line: 37, column: 47, scope: !5)
|
| 883 |
+
!11 = !DILocation(line: 31, column: 40, scope: !5)
|
| 884 |
+
!12 = !DILocation(line: 32, column: 31, scope: !5)
|
| 885 |
+
!13 = !DILocation(line: 33, column: 29, scope: !5)
|
| 886 |
+
!14 = !DILocation(line: 37, column: 41, scope: !5)
|
| 887 |
+
!15 = !DILocation(line: 37, column: 34, scope: !5)
|
| 888 |
+
!16 = !DILocation(line: 37, column: 52, scope: !5)
|
| 889 |
+
!17 = !DILocation(line: 112, column: 21, scope: !18, inlinedAt: !20)
|
| 890 |
+
!18 = distinct !DILexicalBlockFile(scope: !5, file: !19, discriminator: 0)
|
| 891 |
+
!19 = !DIFile(filename: "triton_helpers.py", directory: "/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime")
|
| 892 |
+
!20 = !DILocation(line: 42, column: 40, scope: !5)
|
| 893 |
+
!21 = !DILocation(line: 173, column: 29, scope: !18, inlinedAt: !20)
|
| 894 |
+
!22 = !DILocation(line: 37, column: 105, scope: !5)
|
| 895 |
+
!23 = !DILocation(line: 110, column: 15, scope: !18, inlinedAt: !20)
|
| 896 |
+
!24 = !DILocation(line: 112, column: 16, scope: !18, inlinedAt: !20)
|
| 897 |
+
!25 = !DILocation(line: 113, column: 29, scope: !18, inlinedAt: !20)
|
| 898 |
+
!26 = !DILocation(line: 196, column: 19, scope: !18, inlinedAt: !20)
|
| 899 |
+
!27 = !DILocation(line: 196, column: 53, scope: !18, inlinedAt: !20)
|
| 900 |
+
!28 = !DILocation(line: 196, column: 39, scope: !18, inlinedAt: !20)
|
| 901 |
+
!29 = !DILocation(line: 199, column: 53, scope: !18, inlinedAt: !20)
|
| 902 |
+
!30 = !DILocation(line: 199, column: 39, scope: !18, inlinedAt: !20)
|
| 903 |
+
!31 = !DILocation(line: 205, column: 24, scope: !18, inlinedAt: !20)
|
| 904 |
+
!32 = !DILocation(line: 205, column: 36, scope: !18, inlinedAt: !20)
|
| 905 |
+
!33 = !DILocation(line: 45, column: 54, scope: !5)
|
| 906 |
+
!34 = !DILocation(line: 46, column: 54, scope: !5)
|
| 907 |
+
!35 = !DILocation(line: 110, column: 15, scope: !18, inlinedAt: !36)
|
| 908 |
+
!36 = !DILocation(line: 49, column: 33, scope: !5)
|
| 909 |
+
!37 = !DILocation(line: 112, column: 21, scope: !18, inlinedAt: !36)
|
| 910 |
+
!38 = !DILocation(line: 112, column: 16, scope: !18, inlinedAt: !36)
|
| 911 |
+
!39 = !DILocation(line: 113, column: 29, scope: !18, inlinedAt: !36)
|
| 912 |
+
!40 = !DILocation(line: 123, column: 29, scope: !18, inlinedAt: !36)
|
| 913 |
+
!41 = !DILocation(line: 180, column: 40, scope: !18, inlinedAt: !36)
|
| 914 |
+
!42 = !DILocation(line: 180, column: 68, scope: !18, inlinedAt: !36)
|
| 915 |
+
!43 = !DILocation(line: 180, column: 58, scope: !18, inlinedAt: !36)
|
| 916 |
+
!44 = !DILocation(line: 173, column: 29, scope: !18, inlinedAt: !36)
|
| 917 |
+
!45 = !DILocation(line: 181, column: 31, scope: !18, inlinedAt: !36)
|
| 918 |
+
!46 = !DILocation(line: 291, column: 36, scope: !47, inlinedAt: !36)
|
| 919 |
+
!47 = distinct !DILexicalBlockFile(scope: !5, file: !48, discriminator: 0)
|
| 920 |
+
!48 = !DIFile(filename: "standard.py", directory: "/workspace/specforge/lib/python3.11/site-packages/triton/language")
|
| 921 |
+
!49 = !DILocation(line: 261, column: 15, scope: !47, inlinedAt: !36)
|
| 922 |
+
!50 = !DILocation(line: 52, column: 40, scope: !5)
|
| 923 |
+
!51 = !DILocation(line: 53, column: 31, scope: !5)
|
| 924 |
+
!52 = !DILocation(line: 54, column: 29, scope: !5)
|
| 925 |
+
!53 = !DILocation(line: 58, column: 41, scope: !5)
|
| 926 |
+
!54 = !DILocation(line: 58, column: 34, scope: !5)
|
| 927 |
+
!55 = !DILocation(line: 58, column: 52, scope: !5)
|
| 928 |
+
!56 = !DILocation(line: 58, column: 106, scope: !5)
|
| 929 |
+
!57 = !DILocation(line: 60, column: 22, scope: !5)
|
| 930 |
+
!58 = !DILocation(line: 61, column: 29, scope: !5)
|
| 931 |
+
!59 = !DILocation(line: 62, column: 23, scope: !5)
|
| 932 |
+
!60 = !DILocation(line: 63, column: 29, scope: !5)
|
| 933 |
+
!61 = !DILocation(line: 63, column: 53, scope: !5)
|
| 934 |
+
!62 = !DILocation(line: 52, column: 4, scope: !5)
|
SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.ptx
ADDED
|
@@ -0,0 +1,921 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
//
|
| 2 |
+
// Generated by LLVM NVPTX Back-End
|
| 3 |
+
//
|
| 4 |
+
|
| 5 |
+
.version 8.7
|
| 6 |
+
.target sm_90a
|
| 7 |
+
.address_size 64
|
| 8 |
+
|
| 9 |
+
// .globl triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0 // -- Begin function triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0
|
| 10 |
+
.extern .shared .align 16 .b8 global_smem[];
|
| 11 |
+
.global .align 1 .b8 _$_str[11] = {95, 95, 67, 85, 68, 65, 95, 70, 84, 90};
|
| 12 |
+
// @triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0
|
| 13 |
+
.visible .entry triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0(
|
| 14 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0_param_0,
|
| 15 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0_param_1,
|
| 16 |
+
.param .u32 triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0_param_2,
|
| 17 |
+
.param .u32 triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0_param_3,
|
| 18 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0_param_4,
|
| 19 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0_param_5
|
| 20 |
+
)
|
| 21 |
+
.reqntid 512
|
| 22 |
+
{
|
| 23 |
+
.reg .pred %p<49>;
|
| 24 |
+
.reg .b16 %rs<9>;
|
| 25 |
+
.reg .b32 %r<354>;
|
| 26 |
+
.reg .b64 %rd<68>;
|
| 27 |
+
.loc 1 18 0 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:18:0
|
| 28 |
+
$L__func_begin0:
|
| 29 |
+
.loc 1 18 0 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:18:0
|
| 30 |
+
|
| 31 |
+
// %bb.0:
|
| 32 |
+
ld.param.b64 %rd16, [triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0_param_1];
|
| 33 |
+
ld.param.b64 %rd15, [triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0_param_0];
|
| 34 |
+
$L__tmp0:
|
| 35 |
+
.loc 1 23 28 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:23:28
|
| 36 |
+
mov.u32 %r4, %ctaid.x;
|
| 37 |
+
.loc 1 26 37 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:26:37
|
| 38 |
+
mov.u32 %r1, %tid.x;
|
| 39 |
+
shl.b32 %r5, %r1, 2;
|
| 40 |
+
and.b32 %r6, %r5, 2044;
|
| 41 |
+
.loc 1 31 40 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:31:40
|
| 42 |
+
cvt.u64.u32 %rd1, %r6;
|
| 43 |
+
mad.lo.s32 %r7, %r4, 32000, %r6;
|
| 44 |
+
cvt.u64.u32 %rd2, %r7;
|
| 45 |
+
mov.b32 %r8, 0fFF800000;
|
| 46 |
+
mov.b64 %rd64, {%r8, %r8};
|
| 47 |
+
mov.b32 %r9, 0f00000000;
|
| 48 |
+
mov.b64 %rd63, {%r9, %r9};
|
| 49 |
+
mov.b64 %rd62, 0;
|
| 50 |
+
mov.b64 %rd65, %rd63;
|
| 51 |
+
mov.b64 %rd66, %rd64;
|
| 52 |
+
$L__BB0_1: // =>This Inner Loop Header: Depth=1
|
| 53 |
+
.loc 1 33 29 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:33:29
|
| 54 |
+
add.s64 %rd23, %rd1, %rd62;
|
| 55 |
+
setp.lt.u64 %p1, %rd23, 32000;
|
| 56 |
+
.loc 1 37 34 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:37:34
|
| 57 |
+
add.s64 %rd24, %rd2, %rd62;
|
| 58 |
+
cvt.u32.u64 %r14, %rd24;
|
| 59 |
+
mad.wide.s32 %rd21, %r14, 2, %rd15;
|
| 60 |
+
.loc 1 37 52 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:37:52
|
| 61 |
+
// begin inline asm
|
| 62 |
+
mov.u64 %rd20, 0x0;
|
| 63 |
+
createpolicy.fractional.L2::evict_last.b64 %rd20, 1.0;
|
| 64 |
+
// end inline asm
|
| 65 |
+
mov.b32 %r12, 0;
|
| 66 |
+
// begin inline asm
|
| 67 |
+
mov.u32 %r10, %r12;
|
| 68 |
+
mov.u32 %r11, %r12;
|
| 69 |
+
@%p1 ld.global.L1::evict_last.L2::cache_hint.v2.b32 { %r10, %r11 }, [ %rd21 + 0 ], %rd20;
|
| 70 |
+
// end inline asm
|
| 71 |
+
$L__tmp1:
|
| 72 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 73 |
+
mov.b64 {%r15, %r16}, %rd66;
|
| 74 |
+
setp.nan.f32 %p2, %r15, %r15;
|
| 75 |
+
setp.nan.f32 %p3, %r16, %r16;
|
| 76 |
+
mov.b64 {%r17, %r18}, %rd64;
|
| 77 |
+
setp.nan.f32 %p4, %r17, %r17;
|
| 78 |
+
setp.nan.f32 %p5, %r18, %r18;
|
| 79 |
+
$L__tmp2:
|
| 80 |
+
.loc 1 37 105 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:37:105
|
| 81 |
+
mov.b32 {%rs1, %rs2}, %r10;
|
| 82 |
+
cvt.f32.bf16 %r19, %rs2;
|
| 83 |
+
cvt.f32.bf16 %r20, %rs1;
|
| 84 |
+
$L__tmp3:
|
| 85 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 86 |
+
setp.gt.f32 %p6, %r15, %r20;
|
| 87 |
+
setp.gt.f32 %p7, %r16, %r19;
|
| 88 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 89 |
+
selp.f32 %r21, %r16, %r19, %p7;
|
| 90 |
+
selp.f32 %r22, %r16, %r21, %p3;
|
| 91 |
+
selp.f32 %r23, %r15, %r20, %p6;
|
| 92 |
+
selp.f32 %r24, %r15, %r23, %p2;
|
| 93 |
+
.loc 2 196 19 // triton_helpers.py:196:19 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 94 |
+
setp.eq.f32 %p8, %r24, 0fFF800000;
|
| 95 |
+
setp.eq.f32 %p9, %r22, 0fFF800000;
|
| 96 |
+
.loc 2 196 53 // triton_helpers.py:196:53 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 97 |
+
sub.f32 %r25, %r16, %r22;
|
| 98 |
+
sub.f32 %r26, %r15, %r24;
|
| 99 |
+
mov.b32 %r27, 0f3F000000;
|
| 100 |
+
mov.b32 %r28, 0f3BBB989D;
|
| 101 |
+
.loc 2 173 29 // triton_helpers.py:173:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 102 |
+
fma.rn.ftz.f32 %r29, %r26, %r28, %r27;
|
| 103 |
+
cvt.ftz.sat.f32.f32 %r30, %r29;
|
| 104 |
+
mov.b32 %r31, 0f4B400001;
|
| 105 |
+
mov.b32 %r32, 0f437C0000;
|
| 106 |
+
fma.rm.ftz.f32 %r33, %r30, %r32, %r31;
|
| 107 |
+
fma.rn.ftz.f32 %r34, %r25, %r28, %r27;
|
| 108 |
+
cvt.ftz.sat.f32.f32 %r35, %r34;
|
| 109 |
+
fma.rm.ftz.f32 %r36, %r35, %r32, %r31;
|
| 110 |
+
mov.b64 %rd25, {%r33, %r36};
|
| 111 |
+
cvt.u32.u64 %r37, %rd25;
|
| 112 |
+
add.f32 %r38, %r33, 0fCB40007F;
|
| 113 |
+
neg.f32 %r39, %r38;
|
| 114 |
+
mov.b32 %r40, 0f3FB8AA3B;
|
| 115 |
+
fma.rn.ftz.f32 %r41, %r26, %r40, %r39;
|
| 116 |
+
mov.b32 %r42, 0f32A57060;
|
| 117 |
+
fma.rn.ftz.f32 %r43, %r26, %r42, %r41;
|
| 118 |
+
ex2.approx.ftz.f32 %r44, %r43;
|
| 119 |
+
add.f32 %r45, %r36, 0fCB40007F;
|
| 120 |
+
neg.f32 %r46, %r45;
|
| 121 |
+
fma.rn.ftz.f32 %r47, %r25, %r40, %r46;
|
| 122 |
+
fma.rn.ftz.f32 %r48, %r25, %r42, %r47;
|
| 123 |
+
shl.b64 %rd26, %rd25, 23;
|
| 124 |
+
and.b64 %rd27, %rd26, -36028797018963968;
|
| 125 |
+
shl.b32 %r49, %r37, 23;
|
| 126 |
+
cvt.u64.u32 %rd28, %r49;
|
| 127 |
+
or.b64 %rd29, %rd28, %rd27;
|
| 128 |
+
ex2.approx.ftz.f32 %r50, %r48;
|
| 129 |
+
mov.b64 {%r51, %r52}, %rd29;
|
| 130 |
+
mul.f32 %r53, %r44, %r51;
|
| 131 |
+
mul.f32 %r54, %r50, %r52;
|
| 132 |
+
.loc 2 196 39 // triton_helpers.py:196:39 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 133 |
+
selp.f32 %r55, 0f3F800000, %r54, %p9;
|
| 134 |
+
selp.f32 %r56, 0f3F800000, %r53, %p8;
|
| 135 |
+
.loc 2 199 53 // triton_helpers.py:199:53 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 136 |
+
sub.f32 %r57, %r19, %r22;
|
| 137 |
+
sub.f32 %r58, %r20, %r24;
|
| 138 |
+
.loc 2 173 29 // triton_helpers.py:173:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 139 |
+
fma.rn.ftz.f32 %r59, %r58, %r28, %r27;
|
| 140 |
+
cvt.ftz.sat.f32.f32 %r60, %r59;
|
| 141 |
+
fma.rm.ftz.f32 %r61, %r60, %r32, %r31;
|
| 142 |
+
fma.rn.ftz.f32 %r62, %r57, %r28, %r27;
|
| 143 |
+
cvt.ftz.sat.f32.f32 %r63, %r62;
|
| 144 |
+
fma.rm.ftz.f32 %r64, %r63, %r32, %r31;
|
| 145 |
+
mov.b64 %rd30, {%r61, %r64};
|
| 146 |
+
cvt.u32.u64 %r65, %rd30;
|
| 147 |
+
add.f32 %r66, %r61, 0fCB40007F;
|
| 148 |
+
neg.f32 %r67, %r66;
|
| 149 |
+
fma.rn.ftz.f32 %r68, %r58, %r40, %r67;
|
| 150 |
+
fma.rn.ftz.f32 %r69, %r58, %r42, %r68;
|
| 151 |
+
ex2.approx.ftz.f32 %r70, %r69;
|
| 152 |
+
add.f32 %r71, %r64, 0fCB40007F;
|
| 153 |
+
neg.f32 %r72, %r71;
|
| 154 |
+
fma.rn.ftz.f32 %r73, %r57, %r40, %r72;
|
| 155 |
+
fma.rn.ftz.f32 %r74, %r57, %r42, %r73;
|
| 156 |
+
shl.b64 %rd31, %rd30, 23;
|
| 157 |
+
and.b64 %rd32, %rd31, -36028797018963968;
|
| 158 |
+
shl.b32 %r75, %r65, 23;
|
| 159 |
+
cvt.u64.u32 %rd33, %r75;
|
| 160 |
+
or.b64 %rd34, %rd33, %rd32;
|
| 161 |
+
ex2.approx.ftz.f32 %r76, %r74;
|
| 162 |
+
mov.b64 {%r77, %r78}, %rd34;
|
| 163 |
+
mul.f32 %r79, %r70, %r77;
|
| 164 |
+
mul.f32 %r80, %r76, %r78;
|
| 165 |
+
.loc 2 199 39 // triton_helpers.py:199:39 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 166 |
+
selp.f32 %r81, 0f3F800000, %r80, %p9;
|
| 167 |
+
selp.f32 %r82, 0f3F800000, %r79, %p8;
|
| 168 |
+
.loc 2 205 36 // triton_helpers.py:205:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 169 |
+
mov.b64 {%r83, %r84}, %rd65;
|
| 170 |
+
fma.rn.f32 %r85, %r83, %r56, %r82;
|
| 171 |
+
fma.rn.f32 %r86, %r84, %r55, %r81;
|
| 172 |
+
$L__tmp4:
|
| 173 |
+
.loc 1 37 105 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:37:105
|
| 174 |
+
mov.b32 {%rs3, %rs4}, %r11;
|
| 175 |
+
cvt.f32.bf16 %r87, %rs4;
|
| 176 |
+
cvt.f32.bf16 %r88, %rs3;
|
| 177 |
+
$L__tmp5:
|
| 178 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 179 |
+
setp.gt.f32 %p10, %r17, %r88;
|
| 180 |
+
setp.gt.f32 %p11, %r18, %r87;
|
| 181 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 182 |
+
selp.f32 %r89, %r18, %r87, %p11;
|
| 183 |
+
selp.f32 %r90, %r18, %r89, %p5;
|
| 184 |
+
selp.f32 %r91, %r17, %r88, %p10;
|
| 185 |
+
selp.f32 %r92, %r17, %r91, %p4;
|
| 186 |
+
.loc 2 196 19 // triton_helpers.py:196:19 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 187 |
+
setp.eq.f32 %p12, %r92, 0fFF800000;
|
| 188 |
+
setp.eq.f32 %p13, %r90, 0fFF800000;
|
| 189 |
+
.loc 2 196 53 // triton_helpers.py:196:53 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 190 |
+
sub.f32 %r93, %r18, %r90;
|
| 191 |
+
sub.f32 %r94, %r17, %r92;
|
| 192 |
+
.loc 2 173 29 // triton_helpers.py:173:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 193 |
+
fma.rn.ftz.f32 %r95, %r94, %r28, %r27;
|
| 194 |
+
cvt.ftz.sat.f32.f32 %r96, %r95;
|
| 195 |
+
fma.rm.ftz.f32 %r97, %r96, %r32, %r31;
|
| 196 |
+
fma.rn.ftz.f32 %r98, %r93, %r28, %r27;
|
| 197 |
+
cvt.ftz.sat.f32.f32 %r99, %r98;
|
| 198 |
+
fma.rm.ftz.f32 %r100, %r99, %r32, %r31;
|
| 199 |
+
mov.b64 %rd35, {%r97, %r100};
|
| 200 |
+
cvt.u32.u64 %r101, %rd35;
|
| 201 |
+
add.f32 %r102, %r97, 0fCB40007F;
|
| 202 |
+
neg.f32 %r103, %r102;
|
| 203 |
+
fma.rn.ftz.f32 %r104, %r94, %r40, %r103;
|
| 204 |
+
fma.rn.ftz.f32 %r105, %r94, %r42, %r104;
|
| 205 |
+
ex2.approx.ftz.f32 %r106, %r105;
|
| 206 |
+
add.f32 %r107, %r100, 0fCB40007F;
|
| 207 |
+
neg.f32 %r108, %r107;
|
| 208 |
+
fma.rn.ftz.f32 %r109, %r93, %r40, %r108;
|
| 209 |
+
fma.rn.ftz.f32 %r110, %r93, %r42, %r109;
|
| 210 |
+
shl.b64 %rd36, %rd35, 23;
|
| 211 |
+
and.b64 %rd37, %rd36, -36028797018963968;
|
| 212 |
+
shl.b32 %r111, %r101, 23;
|
| 213 |
+
cvt.u64.u32 %rd38, %r111;
|
| 214 |
+
or.b64 %rd39, %rd38, %rd37;
|
| 215 |
+
ex2.approx.ftz.f32 %r112, %r110;
|
| 216 |
+
mov.b64 {%r113, %r114}, %rd39;
|
| 217 |
+
mul.f32 %r115, %r106, %r113;
|
| 218 |
+
mul.f32 %r116, %r112, %r114;
|
| 219 |
+
.loc 2 196 39 // triton_helpers.py:196:39 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 220 |
+
selp.f32 %r117, 0f3F800000, %r116, %p13;
|
| 221 |
+
selp.f32 %r118, 0f3F800000, %r115, %p12;
|
| 222 |
+
.loc 2 199 53 // triton_helpers.py:199:53 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 223 |
+
sub.f32 %r119, %r87, %r90;
|
| 224 |
+
sub.f32 %r120, %r88, %r92;
|
| 225 |
+
.loc 2 173 29 // triton_helpers.py:173:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 226 |
+
fma.rn.ftz.f32 %r121, %r120, %r28, %r27;
|
| 227 |
+
cvt.ftz.sat.f32.f32 %r122, %r121;
|
| 228 |
+
fma.rm.ftz.f32 %r123, %r122, %r32, %r31;
|
| 229 |
+
fma.rn.ftz.f32 %r124, %r119, %r28, %r27;
|
| 230 |
+
cvt.ftz.sat.f32.f32 %r125, %r124;
|
| 231 |
+
fma.rm.ftz.f32 %r126, %r125, %r32, %r31;
|
| 232 |
+
mov.b64 %rd40, {%r123, %r126};
|
| 233 |
+
cvt.u32.u64 %r127, %rd40;
|
| 234 |
+
add.f32 %r128, %r123, 0fCB40007F;
|
| 235 |
+
neg.f32 %r129, %r128;
|
| 236 |
+
fma.rn.ftz.f32 %r130, %r120, %r40, %r129;
|
| 237 |
+
fma.rn.ftz.f32 %r131, %r120, %r42, %r130;
|
| 238 |
+
ex2.approx.ftz.f32 %r132, %r131;
|
| 239 |
+
add.f32 %r133, %r126, 0fCB40007F;
|
| 240 |
+
neg.f32 %r134, %r133;
|
| 241 |
+
fma.rn.ftz.f32 %r135, %r119, %r40, %r134;
|
| 242 |
+
fma.rn.ftz.f32 %r136, %r119, %r42, %r135;
|
| 243 |
+
shl.b64 %rd41, %rd40, 23;
|
| 244 |
+
and.b64 %rd42, %rd41, -36028797018963968;
|
| 245 |
+
shl.b32 %r137, %r127, 23;
|
| 246 |
+
cvt.u64.u32 %rd43, %r137;
|
| 247 |
+
or.b64 %rd44, %rd43, %rd42;
|
| 248 |
+
ex2.approx.ftz.f32 %r138, %r136;
|
| 249 |
+
mov.b64 {%r139, %r140}, %rd44;
|
| 250 |
+
mul.f32 %r141, %r132, %r139;
|
| 251 |
+
mul.f32 %r142, %r138, %r140;
|
| 252 |
+
.loc 2 199 39 // triton_helpers.py:199:39 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 253 |
+
selp.f32 %r143, 0f3F800000, %r142, %p13;
|
| 254 |
+
selp.f32 %r144, 0f3F800000, %r141, %p12;
|
| 255 |
+
.loc 2 205 36 // triton_helpers.py:205:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:42:40 ]
|
| 256 |
+
mov.b64 {%r145, %r146}, %rd63;
|
| 257 |
+
fma.rn.f32 %r147, %r145, %r118, %r144;
|
| 258 |
+
fma.rn.f32 %r148, %r146, %r117, %r143;
|
| 259 |
+
$L__tmp6:
|
| 260 |
+
.loc 1 45 54 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:45:54
|
| 261 |
+
selp.f32 %r149, %r22, %r16, %p1;
|
| 262 |
+
selp.f32 %r150, %r24, %r15, %p1;
|
| 263 |
+
mov.b64 %rd66, {%r150, %r149};
|
| 264 |
+
selp.f32 %r151, %r90, %r18, %p1;
|
| 265 |
+
selp.f32 %r152, %r92, %r17, %p1;
|
| 266 |
+
mov.b64 %rd64, {%r152, %r151};
|
| 267 |
+
.loc 1 46 54 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:46:54
|
| 268 |
+
selp.f32 %r153, %r86, %r84, %p1;
|
| 269 |
+
selp.f32 %r154, %r85, %r83, %p1;
|
| 270 |
+
mov.b64 %rd65, {%r154, %r153};
|
| 271 |
+
selp.f32 %r155, %r148, %r146, %p1;
|
| 272 |
+
selp.f32 %r156, %r147, %r145, %p1;
|
| 273 |
+
mov.b64 %rd63, {%r156, %r155};
|
| 274 |
+
.loc 1 31 40 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:31:40
|
| 275 |
+
add.s64 %rd12, %rd62, 2048;
|
| 276 |
+
setp.lt.u64 %p14, %rd62, 29952;
|
| 277 |
+
mov.b64 %rd62, %rd12;
|
| 278 |
+
@%p14 bra $L__BB0_1;
|
| 279 |
+
// %bb.2:
|
| 280 |
+
.loc 1 26 37 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:26:37
|
| 281 |
+
and.b32 %r169, %r1, 31;
|
| 282 |
+
$L__tmp7:
|
| 283 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 284 |
+
mov.b64 {%r170, %r171}, %rd66;
|
| 285 |
+
setp.gt.f32 %p21, %r170, %r171;
|
| 286 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 287 |
+
setp.nan.f32 %p22, %r170, %r170;
|
| 288 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 289 |
+
selp.f32 %r172, %r170, %r171, %p22;
|
| 290 |
+
selp.f32 %r173, %r170, %r172, %p21;
|
| 291 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 292 |
+
mov.b64 {%r174, %r175}, %rd64;
|
| 293 |
+
setp.gt.f32 %p23, %r173, %r174;
|
| 294 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 295 |
+
setp.nan.f32 %p24, %r173, %r173;
|
| 296 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 297 |
+
selp.f32 %r176, %r173, %r174, %p24;
|
| 298 |
+
selp.f32 %r177, %r173, %r176, %p23;
|
| 299 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 300 |
+
setp.gt.f32 %p25, %r177, %r175;
|
| 301 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 302 |
+
setp.nan.f32 %p26, %r177, %r177;
|
| 303 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 304 |
+
selp.f32 %r178, %r177, %r175, %p26;
|
| 305 |
+
selp.f32 %r179, %r177, %r178, %p25;
|
| 306 |
+
.loc 2 123 29 // triton_helpers.py:123:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 307 |
+
shfl.sync.bfly.b32 %r180, %r179, 16, 31, -1;
|
| 308 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 309 |
+
setp.gt.f32 %p27, %r179, %r180;
|
| 310 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 311 |
+
setp.nan.f32 %p28, %r179, %r179;
|
| 312 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 313 |
+
selp.f32 %r181, %r179, %r180, %p27;
|
| 314 |
+
selp.f32 %r182, %r179, %r181, %p28;
|
| 315 |
+
.loc 2 123 29 // triton_helpers.py:123:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 316 |
+
shfl.sync.bfly.b32 %r183, %r182, 8, 31, -1;
|
| 317 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 318 |
+
setp.gt.f32 %p29, %r182, %r183;
|
| 319 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 320 |
+
setp.nan.f32 %p30, %r182, %r182;
|
| 321 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 322 |
+
selp.f32 %r184, %r182, %r183, %p30;
|
| 323 |
+
selp.f32 %r185, %r182, %r184, %p29;
|
| 324 |
+
.loc 2 123 29 // triton_helpers.py:123:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 325 |
+
shfl.sync.bfly.b32 %r186, %r185, 4, 31, -1;
|
| 326 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 327 |
+
setp.gt.f32 %p31, %r185, %r186;
|
| 328 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 329 |
+
setp.nan.f32 %p32, %r185, %r185;
|
| 330 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 331 |
+
selp.f32 %r187, %r185, %r186, %p32;
|
| 332 |
+
selp.f32 %r188, %r185, %r187, %p31;
|
| 333 |
+
.loc 2 123 29 // triton_helpers.py:123:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 334 |
+
shfl.sync.bfly.b32 %r189, %r188, 2, 31, -1;
|
| 335 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 336 |
+
setp.gt.f32 %p33, %r188, %r189;
|
| 337 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 338 |
+
setp.nan.f32 %p34, %r188, %r188;
|
| 339 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 340 |
+
selp.f32 %r190, %r188, %r189, %p34;
|
| 341 |
+
selp.f32 %r191, %r188, %r190, %p33;
|
| 342 |
+
.loc 2 123 29 // triton_helpers.py:123:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 343 |
+
shfl.sync.bfly.b32 %r192, %r191, 1, 31, -1;
|
| 344 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 345 |
+
setp.gt.f32 %p35, %r191, %r192;
|
| 346 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 347 |
+
setp.nan.f32 %p36, %r191, %r191;
|
| 348 |
+
.loc 2 123 29 // triton_helpers.py:123:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 349 |
+
setp.eq.b32 %p15, %r169, 0;
|
| 350 |
+
shr.u32 %r193, %r1, 3;
|
| 351 |
+
and.b32 %r194, %r193, 60;
|
| 352 |
+
mov.b32 %r195, global_smem;
|
| 353 |
+
add.s32 %r157, %r195, %r194;
|
| 354 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 355 |
+
selp.b32 %r196, %r191, %r192, %p36;
|
| 356 |
+
selp.b32 %r158, %r191, %r196, %p35;
|
| 357 |
+
.loc 2 123 29 // triton_helpers.py:123:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 358 |
+
// begin inline asm
|
| 359 |
+
@%p15 st.shared.b32 [ %r157 + 0 ], %r158;
|
| 360 |
+
// end inline asm
|
| 361 |
+
bar.sync 0;
|
| 362 |
+
setp.lt.u32 %p16, %r1, 16;
|
| 363 |
+
add.s32 %r160, %r195, %r5;
|
| 364 |
+
// begin inline asm
|
| 365 |
+
@%p16 ld.shared.b32 %r159, [ %r160 + 0 ];
|
| 366 |
+
// end inline asm
|
| 367 |
+
shfl.sync.bfly.b32 %r198, %r159, 8, 31, -1;
|
| 368 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 369 |
+
setp.gt.f32 %p37, %r159, %r198;
|
| 370 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 371 |
+
setp.nan.f32 %p38, %r159, %r159;
|
| 372 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 373 |
+
selp.f32 %r199, %r159, %r198, %p37;
|
| 374 |
+
selp.f32 %r200, %r159, %r199, %p38;
|
| 375 |
+
.loc 2 123 29 // triton_helpers.py:123:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 376 |
+
shfl.sync.bfly.b32 %r201, %r200, 4, 31, -1;
|
| 377 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 378 |
+
setp.gt.f32 %p39, %r200, %r201;
|
| 379 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 380 |
+
setp.nan.f32 %p40, %r200, %r200;
|
| 381 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 382 |
+
selp.f32 %r202, %r200, %r201, %p40;
|
| 383 |
+
selp.f32 %r203, %r200, %r202, %p39;
|
| 384 |
+
.loc 2 123 29 // triton_helpers.py:123:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 385 |
+
shfl.sync.bfly.b32 %r204, %r203, 2, 31, -1;
|
| 386 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 387 |
+
setp.gt.f32 %p41, %r203, %r204;
|
| 388 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 389 |
+
setp.nan.f32 %p42, %r203, %r203;
|
| 390 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 391 |
+
selp.f32 %r205, %r203, %r204, %p42;
|
| 392 |
+
selp.f32 %r206, %r203, %r205, %p41;
|
| 393 |
+
.loc 2 123 29 // triton_helpers.py:123:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 394 |
+
shfl.sync.bfly.b32 %r207, %r206, 1, 31, -1;
|
| 395 |
+
.loc 2 110 15 // triton_helpers.py:110:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 396 |
+
setp.gt.f32 %p43, %r206, %r207;
|
| 397 |
+
.loc 2 112 21 // triton_helpers.py:112:21 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 398 |
+
setp.nan.f32 %p44, %r206, %r206;
|
| 399 |
+
.loc 2 123 29 // triton_helpers.py:123:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 400 |
+
setp.eq.b32 %p17, %r1, 0;
|
| 401 |
+
.loc 2 113 29 // triton_helpers.py:113:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 402 |
+
selp.b32 %r208, %r206, %r207, %p44;
|
| 403 |
+
selp.b32 %r162, %r206, %r208, %p43;
|
| 404 |
+
.loc 2 123 29 // triton_helpers.py:123:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 405 |
+
// begin inline asm
|
| 406 |
+
@%p17 st.shared.b32 [ %r160 + 0 ], %r162;
|
| 407 |
+
// end inline asm
|
| 408 |
+
bar.sync 0;
|
| 409 |
+
ld.shared.b32 %r2, [global_smem];
|
| 410 |
+
.loc 2 180 40 // triton_helpers.py:180:40 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 411 |
+
setp.eq.f32 %p45, %r2, 0fFF800000;
|
| 412 |
+
.loc 2 180 68 // triton_helpers.py:180:68 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 413 |
+
sub.f32 %r209, %r170, %r2;
|
| 414 |
+
sub.f32 %r210, %r171, %r2;
|
| 415 |
+
sub.f32 %r211, %r174, %r2;
|
| 416 |
+
sub.f32 %r212, %r175, %r2;
|
| 417 |
+
.loc 2 180 58 // triton_helpers.py:180:58 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 418 |
+
selp.f32 %r213, 0f00000000, %r209, %p45;
|
| 419 |
+
selp.f32 %r214, 0f00000000, %r210, %p45;
|
| 420 |
+
selp.f32 %r215, 0f00000000, %r211, %p45;
|
| 421 |
+
selp.f32 %r216, 0f00000000, %r212, %p45;
|
| 422 |
+
.loc 2 173 29 // triton_helpers.py:173:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 423 |
+
fma.rn.ftz.f32 %r219, %r213, %r28, %r27;
|
| 424 |
+
cvt.ftz.sat.f32.f32 %r220, %r219;
|
| 425 |
+
fma.rm.ftz.f32 %r223, %r220, %r32, %r31;
|
| 426 |
+
fma.rn.ftz.f32 %r224, %r214, %r28, %r27;
|
| 427 |
+
cvt.ftz.sat.f32.f32 %r225, %r224;
|
| 428 |
+
fma.rm.ftz.f32 %r226, %r225, %r32, %r31;
|
| 429 |
+
fma.rn.ftz.f32 %r227, %r215, %r28, %r27;
|
| 430 |
+
cvt.ftz.sat.f32.f32 %r228, %r227;
|
| 431 |
+
fma.rm.ftz.f32 %r229, %r228, %r32, %r31;
|
| 432 |
+
fma.rn.ftz.f32 %r230, %r216, %r28, %r27;
|
| 433 |
+
cvt.ftz.sat.f32.f32 %r231, %r230;
|
| 434 |
+
fma.rm.ftz.f32 %r232, %r231, %r32, %r31;
|
| 435 |
+
mov.b64 %rd46, {%r223, %r226};
|
| 436 |
+
cvt.u32.u64 %r233, %rd46;
|
| 437 |
+
add.f32 %r234, %r223, 0fCB40007F;
|
| 438 |
+
neg.f32 %r235, %r234;
|
| 439 |
+
fma.rn.ftz.f32 %r237, %r213, %r40, %r235;
|
| 440 |
+
fma.rn.ftz.f32 %r239, %r213, %r42, %r237;
|
| 441 |
+
ex2.approx.ftz.f32 %r240, %r239;
|
| 442 |
+
add.f32 %r241, %r226, 0fCB40007F;
|
| 443 |
+
neg.f32 %r242, %r241;
|
| 444 |
+
fma.rn.ftz.f32 %r243, %r214, %r40, %r242;
|
| 445 |
+
fma.rn.ftz.f32 %r244, %r214, %r42, %r243;
|
| 446 |
+
shl.b64 %rd47, %rd46, 23;
|
| 447 |
+
and.b64 %rd48, %rd47, -36028797018963968;
|
| 448 |
+
shl.b32 %r245, %r233, 23;
|
| 449 |
+
cvt.u64.u32 %rd49, %r245;
|
| 450 |
+
or.b64 %rd50, %rd49, %rd48;
|
| 451 |
+
ex2.approx.ftz.f32 %r246, %r244;
|
| 452 |
+
mov.b64 {%r247, %r248}, %rd50;
|
| 453 |
+
mul.f32 %r249, %r240, %r247;
|
| 454 |
+
mul.f32 %r250, %r246, %r248;
|
| 455 |
+
.loc 2 181 31 // triton_helpers.py:181:31 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 456 |
+
mov.b64 {%r251, %r252}, %rd65;
|
| 457 |
+
mul.f32 %r253, %r252, %r250;
|
| 458 |
+
.loc 2 173 29 // triton_helpers.py:173:29 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 459 |
+
mov.b64 %rd51, {%r229, %r232};
|
| 460 |
+
cvt.u32.u64 %r254, %rd51;
|
| 461 |
+
add.f32 %r255, %r229, 0fCB40007F;
|
| 462 |
+
neg.f32 %r256, %r255;
|
| 463 |
+
fma.rn.ftz.f32 %r257, %r215, %r40, %r256;
|
| 464 |
+
fma.rn.ftz.f32 %r258, %r215, %r42, %r257;
|
| 465 |
+
ex2.approx.ftz.f32 %r259, %r258;
|
| 466 |
+
add.f32 %r260, %r232, 0fCB40007F;
|
| 467 |
+
neg.f32 %r261, %r260;
|
| 468 |
+
fma.rn.ftz.f32 %r262, %r216, %r40, %r261;
|
| 469 |
+
fma.rn.ftz.f32 %r263, %r216, %r42, %r262;
|
| 470 |
+
shl.b64 %rd52, %rd51, 23;
|
| 471 |
+
and.b64 %rd53, %rd52, -36028797018963968;
|
| 472 |
+
shl.b32 %r264, %r254, 23;
|
| 473 |
+
cvt.u64.u32 %rd54, %r264;
|
| 474 |
+
or.b64 %rd55, %rd54, %rd53;
|
| 475 |
+
ex2.approx.ftz.f32 %r265, %r263;
|
| 476 |
+
mov.b64 {%r266, %r267}, %rd55;
|
| 477 |
+
mul.f32 %r268, %r265, %r267;
|
| 478 |
+
mul.f32 %r269, %r259, %r266;
|
| 479 |
+
.loc 2 181 31 // triton_helpers.py:181:31 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 480 |
+
mov.b64 {%r270, %r271}, %rd63;
|
| 481 |
+
.loc 3 291 36 // standard.py:291:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 482 |
+
bar.sync 0;
|
| 483 |
+
.loc 3 261 15 // standard.py:261:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 484 |
+
fma.rn.f32 %r272, %r251, %r249, %r253;
|
| 485 |
+
fma.rn.f32 %r273, %r270, %r269, %r272;
|
| 486 |
+
fma.rn.f32 %r274, %r271, %r268, %r273;
|
| 487 |
+
.loc 3 291 36 // standard.py:291:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 488 |
+
shfl.sync.bfly.b32 %r275, %r274, 16, 31, -1;
|
| 489 |
+
.loc 3 261 15 // standard.py:261:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 490 |
+
add.f32 %r276, %r274, %r275;
|
| 491 |
+
.loc 3 291 36 // standard.py:291:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 492 |
+
shfl.sync.bfly.b32 %r277, %r276, 8, 31, -1;
|
| 493 |
+
.loc 3 261 15 // standard.py:261:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 494 |
+
add.f32 %r278, %r276, %r277;
|
| 495 |
+
.loc 3 291 36 // standard.py:291:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 496 |
+
shfl.sync.bfly.b32 %r279, %r278, 4, 31, -1;
|
| 497 |
+
.loc 3 261 15 // standard.py:261:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 498 |
+
add.f32 %r280, %r278, %r279;
|
| 499 |
+
.loc 3 291 36 // standard.py:291:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 500 |
+
shfl.sync.bfly.b32 %r281, %r280, 2, 31, -1;
|
| 501 |
+
.loc 3 261 15 // standard.py:261:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 502 |
+
add.f32 %r282, %r280, %r281;
|
| 503 |
+
.loc 3 291 36 // standard.py:291:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 504 |
+
shfl.sync.bfly.b32 %r283, %r282, 1, 31, -1;
|
| 505 |
+
.loc 3 261 15 // standard.py:261:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 506 |
+
add.f32 %r164, %r282, %r283;
|
| 507 |
+
.loc 3 291 36 // standard.py:291:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 508 |
+
// begin inline asm
|
| 509 |
+
@%p15 st.shared.b32 [ %r157 + 0 ], %r164;
|
| 510 |
+
// end inline asm
|
| 511 |
+
bar.sync 0;
|
| 512 |
+
// begin inline asm
|
| 513 |
+
@%p16 ld.shared.b32 %r165, [ %r160 + 0 ];
|
| 514 |
+
// end inline asm
|
| 515 |
+
shfl.sync.bfly.b32 %r284, %r165, 8, 31, -1;
|
| 516 |
+
.loc 3 261 15 // standard.py:261:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 517 |
+
add.f32 %r285, %r165, %r284;
|
| 518 |
+
.loc 3 291 36 // standard.py:291:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 519 |
+
shfl.sync.bfly.b32 %r286, %r285, 4, 31, -1;
|
| 520 |
+
.loc 3 261 15 // standard.py:261:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 521 |
+
add.f32 %r287, %r285, %r286;
|
| 522 |
+
.loc 3 291 36 // standard.py:291:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 523 |
+
shfl.sync.bfly.b32 %r288, %r287, 2, 31, -1;
|
| 524 |
+
.loc 3 261 15 // standard.py:261:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 525 |
+
add.f32 %r289, %r287, %r288;
|
| 526 |
+
.loc 3 291 36 // standard.py:291:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 527 |
+
shfl.sync.bfly.b32 %r290, %r289, 1, 31, -1;
|
| 528 |
+
.loc 3 261 15 // standard.py:261:15 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 529 |
+
add.f32 %r168, %r289, %r290;
|
| 530 |
+
.loc 3 291 36 // standard.py:291:36 @[ cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:49:33 ]
|
| 531 |
+
// begin inline asm
|
| 532 |
+
@%p17 st.shared.b32 [ %r160 + 0 ], %r168;
|
| 533 |
+
// end inline asm
|
| 534 |
+
bar.sync 0;
|
| 535 |
+
mov.b64 %rd67, 0;
|
| 536 |
+
ld.shared.b32 %r3, [global_smem];
|
| 537 |
+
$L__tmp8:
|
| 538 |
+
$L__BB0_3: // =>This Inner Loop Header: Depth=1
|
| 539 |
+
.loc 1 54 29 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:54:29
|
| 540 |
+
add.s64 %rd60, %rd1, %rd67;
|
| 541 |
+
setp.lt.u64 %p46, %rd60, 32000;
|
| 542 |
+
.loc 1 58 34 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:58:34
|
| 543 |
+
add.s64 %rd61, %rd2, %rd67;
|
| 544 |
+
cvt.u32.u64 %r299, %rd61;
|
| 545 |
+
mad.wide.s32 %rd57, %r299, 2, %rd15;
|
| 546 |
+
.loc 1 58 52 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:58:52
|
| 547 |
+
// begin inline asm
|
| 548 |
+
mov.u64 %rd56, 0x0;
|
| 549 |
+
createpolicy.fractional.L2::evict_first.b64 %rd56, 1.0;
|
| 550 |
+
// end inline asm
|
| 551 |
+
mov.b32 %r293, 0;
|
| 552 |
+
// begin inline asm
|
| 553 |
+
mov.u32 %r291, %r293;
|
| 554 |
+
mov.u32 %r292, %r293;
|
| 555 |
+
@%p46 ld.global.L1::evict_first.L2::cache_hint.v2.b32 { %r291, %r292 }, [ %rd57 + 0 ], %rd56;
|
| 556 |
+
// end inline asm
|
| 557 |
+
mov.b32 {%rs5, %rs6}, %r291;
|
| 558 |
+
mov.b32 {%rs7, %rs8}, %r292;
|
| 559 |
+
.loc 1 58 106 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:58:106
|
| 560 |
+
cvt.f32.bf16 %r300, %rs5;
|
| 561 |
+
cvt.f32.bf16 %r301, %rs6;
|
| 562 |
+
cvt.f32.bf16 %r302, %rs7;
|
| 563 |
+
cvt.f32.bf16 %r303, %rs8;
|
| 564 |
+
.loc 1 60 22 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:60:22
|
| 565 |
+
sub.f32 %r304, %r300, %r2;
|
| 566 |
+
sub.f32 %r305, %r301, %r2;
|
| 567 |
+
sub.f32 %r306, %r302, %r2;
|
| 568 |
+
sub.f32 %r307, %r303, %r2;
|
| 569 |
+
mov.b32 %r308, 0f3F000000;
|
| 570 |
+
mov.b32 %r309, 0f3BBB989D;
|
| 571 |
+
.loc 1 61 29 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:61:29
|
| 572 |
+
fma.rn.ftz.f32 %r310, %r304, %r309, %r308;
|
| 573 |
+
cvt.ftz.sat.f32.f32 %r311, %r310;
|
| 574 |
+
mov.b32 %r312, 0f4B400001;
|
| 575 |
+
mov.b32 %r313, 0f437C0000;
|
| 576 |
+
fma.rm.ftz.f32 %r314, %r311, %r313, %r312;
|
| 577 |
+
add.f32 %r315, %r314, 0fCB40007F;
|
| 578 |
+
neg.f32 %r316, %r315;
|
| 579 |
+
mov.b32 %r317, 0f3FB8AA3B;
|
| 580 |
+
fma.rn.ftz.f32 %r318, %r304, %r317, %r316;
|
| 581 |
+
mov.b32 %r319, 0f32A57060;
|
| 582 |
+
fma.rn.ftz.f32 %r320, %r304, %r319, %r318;
|
| 583 |
+
shl.b32 %r321, %r314, 23;
|
| 584 |
+
ex2.approx.ftz.f32 %r322, %r320;
|
| 585 |
+
mul.f32 %r323, %r322, %r321;
|
| 586 |
+
fma.rn.ftz.f32 %r324, %r305, %r309, %r308;
|
| 587 |
+
cvt.ftz.sat.f32.f32 %r325, %r324;
|
| 588 |
+
fma.rm.ftz.f32 %r326, %r325, %r313, %r312;
|
| 589 |
+
add.f32 %r327, %r326, 0fCB40007F;
|
| 590 |
+
neg.f32 %r328, %r327;
|
| 591 |
+
fma.rn.ftz.f32 %r329, %r305, %r317, %r328;
|
| 592 |
+
fma.rn.ftz.f32 %r330, %r305, %r319, %r329;
|
| 593 |
+
shl.b32 %r331, %r326, 23;
|
| 594 |
+
ex2.approx.ftz.f32 %r332, %r330;
|
| 595 |
+
mul.f32 %r333, %r332, %r331;
|
| 596 |
+
fma.rn.ftz.f32 %r334, %r306, %r309, %r308;
|
| 597 |
+
cvt.ftz.sat.f32.f32 %r335, %r334;
|
| 598 |
+
fma.rm.ftz.f32 %r336, %r335, %r313, %r312;
|
| 599 |
+
add.f32 %r337, %r336, 0fCB40007F;
|
| 600 |
+
neg.f32 %r338, %r337;
|
| 601 |
+
fma.rn.ftz.f32 %r339, %r306, %r317, %r338;
|
| 602 |
+
fma.rn.ftz.f32 %r340, %r306, %r319, %r339;
|
| 603 |
+
shl.b32 %r341, %r336, 23;
|
| 604 |
+
ex2.approx.ftz.f32 %r342, %r340;
|
| 605 |
+
mul.f32 %r343, %r342, %r341;
|
| 606 |
+
fma.rn.ftz.f32 %r344, %r307, %r309, %r308;
|
| 607 |
+
cvt.ftz.sat.f32.f32 %r345, %r344;
|
| 608 |
+
fma.rm.ftz.f32 %r346, %r345, %r313, %r312;
|
| 609 |
+
add.f32 %r347, %r346, 0fCB40007F;
|
| 610 |
+
neg.f32 %r348, %r347;
|
| 611 |
+
fma.rn.ftz.f32 %r349, %r307, %r317, %r348;
|
| 612 |
+
fma.rn.ftz.f32 %r350, %r307, %r319, %r349;
|
| 613 |
+
shl.b32 %r351, %r346, 23;
|
| 614 |
+
ex2.approx.ftz.f32 %r352, %r350;
|
| 615 |
+
mul.f32 %r353, %r352, %r351;
|
| 616 |
+
.loc 1 62 23 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:62:23
|
| 617 |
+
div.full.f32 %r295, %r323, %r3;
|
| 618 |
+
div.full.f32 %r296, %r333, %r3;
|
| 619 |
+
div.full.f32 %r297, %r343, %r3;
|
| 620 |
+
div.full.f32 %r298, %r353, %r3;
|
| 621 |
+
.loc 1 63 29 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:63:29
|
| 622 |
+
mad.wide.s32 %rd59, %r299, 4, %rd16;
|
| 623 |
+
.loc 1 63 53 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:63:53
|
| 624 |
+
// begin inline asm
|
| 625 |
+
@%p46 st.global.v4.b32 [ %rd59 + 0 ], { %r295, %r296, %r297, %r298 };
|
| 626 |
+
// end inline asm
|
| 627 |
+
.loc 1 52 40 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:52:40
|
| 628 |
+
add.s64 %rd14, %rd67, 2048;
|
| 629 |
+
setp.lt.u64 %p48, %rd67, 29952;
|
| 630 |
+
mov.b64 %rd67, %rd14;
|
| 631 |
+
@%p48 bra $L__BB0_3;
|
| 632 |
+
// %bb.4:
|
| 633 |
+
.loc 1 52 4 // cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py:52:4
|
| 634 |
+
ret;
|
| 635 |
+
$L__tmp9:
|
| 636 |
+
$L__func_end0:
|
| 637 |
+
// -- End function
|
| 638 |
+
}
|
| 639 |
+
.file 1 "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py"
|
| 640 |
+
.file 2 "/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py"
|
| 641 |
+
.file 3 "/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py"
|
| 642 |
+
.section .debug_abbrev
|
| 643 |
+
{
|
| 644 |
+
.b8 1 // Abbreviation Code
|
| 645 |
+
.b8 17 // DW_TAG_compile_unit
|
| 646 |
+
.b8 1 // DW_CHILDREN_yes
|
| 647 |
+
.b8 37 // DW_AT_producer
|
| 648 |
+
.b8 8 // DW_FORM_string
|
| 649 |
+
.b8 19 // DW_AT_language
|
| 650 |
+
.b8 5 // DW_FORM_data2
|
| 651 |
+
.b8 3 // DW_AT_name
|
| 652 |
+
.b8 8 // DW_FORM_string
|
| 653 |
+
.b8 16 // DW_AT_stmt_list
|
| 654 |
+
.b8 6 // DW_FORM_data4
|
| 655 |
+
.b8 27 // DW_AT_comp_dir
|
| 656 |
+
.b8 8 // DW_FORM_string
|
| 657 |
+
.b8 0 // EOM(1)
|
| 658 |
+
.b8 0 // EOM(2)
|
| 659 |
+
.b8 2 // Abbreviation Code
|
| 660 |
+
.b8 46 // DW_TAG_subprogram
|
| 661 |
+
.b8 0 // DW_CHILDREN_no
|
| 662 |
+
.b8 3 // DW_AT_name
|
| 663 |
+
.b8 8 // DW_FORM_string
|
| 664 |
+
.b8 32 // DW_AT_inline
|
| 665 |
+
.b8 11 // DW_FORM_data1
|
| 666 |
+
.b8 0 // EOM(1)
|
| 667 |
+
.b8 0 // EOM(2)
|
| 668 |
+
.b8 3 // Abbreviation Code
|
| 669 |
+
.b8 46 // DW_TAG_subprogram
|
| 670 |
+
.b8 1 // DW_CHILDREN_yes
|
| 671 |
+
.b8 17 // DW_AT_low_pc
|
| 672 |
+
.b8 1 // DW_FORM_addr
|
| 673 |
+
.b8 18 // DW_AT_high_pc
|
| 674 |
+
.b8 1 // DW_FORM_addr
|
| 675 |
+
.b8 49 // DW_AT_abstract_origin
|
| 676 |
+
.b8 19 // DW_FORM_ref4
|
| 677 |
+
.b8 0 // EOM(1)
|
| 678 |
+
.b8 0 // EOM(2)
|
| 679 |
+
.b8 4 // Abbreviation Code
|
| 680 |
+
.b8 29 // DW_TAG_inlined_subroutine
|
| 681 |
+
.b8 0 // DW_CHILDREN_no
|
| 682 |
+
.b8 49 // DW_AT_abstract_origin
|
| 683 |
+
.b8 19 // DW_FORM_ref4
|
| 684 |
+
.b8 17 // DW_AT_low_pc
|
| 685 |
+
.b8 1 // DW_FORM_addr
|
| 686 |
+
.b8 18 // DW_AT_high_pc
|
| 687 |
+
.b8 1 // DW_FORM_addr
|
| 688 |
+
.b8 88 // DW_AT_call_file
|
| 689 |
+
.b8 11 // DW_FORM_data1
|
| 690 |
+
.b8 89 // DW_AT_call_line
|
| 691 |
+
.b8 11 // DW_FORM_data1
|
| 692 |
+
.b8 87 // DW_AT_call_column
|
| 693 |
+
.b8 11 // DW_FORM_data1
|
| 694 |
+
.b8 0 // EOM(1)
|
| 695 |
+
.b8 0 // EOM(2)
|
| 696 |
+
.b8 0 // EOM(3)
|
| 697 |
+
}
|
| 698 |
+
.section .debug_info
|
| 699 |
+
{
|
| 700 |
+
.b32 276 // Length of Unit
|
| 701 |
+
.b8 2 // DWARF version number
|
| 702 |
+
.b8 0
|
| 703 |
+
.b32 .debug_abbrev // Offset Into Abbrev. Section
|
| 704 |
+
.b8 8 // Address Size (in bytes)
|
| 705 |
+
.b8 1 // Abbrev [1] 0xb:0x10d DW_TAG_compile_unit
|
| 706 |
+
.b8 116 // DW_AT_producer
|
| 707 |
+
.b8 114
|
| 708 |
+
.b8 105
|
| 709 |
+
.b8 116
|
| 710 |
+
.b8 111
|
| 711 |
+
.b8 110
|
| 712 |
+
.b8 0
|
| 713 |
+
.b8 2 // DW_AT_language
|
| 714 |
+
.b8 0
|
| 715 |
+
.b8 99 // DW_AT_name
|
| 716 |
+
.b8 118
|
| 717 |
+
.b8 120
|
| 718 |
+
.b8 116
|
| 719 |
+
.b8 98
|
| 720 |
+
.b8 120
|
| 721 |
+
.b8 105
|
| 722 |
+
.b8 99
|
| 723 |
+
.b8 105
|
| 724 |
+
.b8 99
|
| 725 |
+
.b8 52
|
| 726 |
+
.b8 111
|
| 727 |
+
.b8 109
|
| 728 |
+
.b8 98
|
| 729 |
+
.b8 109
|
| 730 |
+
.b8 50
|
| 731 |
+
.b8 100
|
| 732 |
+
.b8 50
|
| 733 |
+
.b8 102
|
| 734 |
+
.b8 108
|
| 735 |
+
.b8 99
|
| 736 |
+
.b8 122
|
| 737 |
+
.b8 120
|
| 738 |
+
.b8 121
|
| 739 |
+
.b8 100
|
| 740 |
+
.b8 107
|
| 741 |
+
.b8 111
|
| 742 |
+
.b8 108
|
| 743 |
+
.b8 50
|
| 744 |
+
.b8 108
|
| 745 |
+
.b8 50
|
| 746 |
+
.b8 102
|
| 747 |
+
.b8 102
|
| 748 |
+
.b8 114
|
| 749 |
+
.b8 52
|
| 750 |
+
.b8 113
|
| 751 |
+
.b8 116
|
| 752 |
+
.b8 111
|
| 753 |
+
.b8 116
|
| 754 |
+
.b8 51
|
| 755 |
+
.b8 114
|
| 756 |
+
.b8 114
|
| 757 |
+
.b8 122
|
| 758 |
+
.b8 110
|
| 759 |
+
.b8 106
|
| 760 |
+
.b8 122
|
| 761 |
+
.b8 55
|
| 762 |
+
.b8 98
|
| 763 |
+
.b8 104
|
| 764 |
+
.b8 110
|
| 765 |
+
.b8 103
|
| 766 |
+
.b8 102
|
| 767 |
+
.b8 46
|
| 768 |
+
.b8 112
|
| 769 |
+
.b8 121
|
| 770 |
+
.b8 0
|
| 771 |
+
.b32 .debug_line // DW_AT_stmt_list
|
| 772 |
+
.b8 47 // DW_AT_comp_dir
|
| 773 |
+
.b8 119
|
| 774 |
+
.b8 111
|
| 775 |
+
.b8 114
|
| 776 |
+
.b8 107
|
| 777 |
+
.b8 115
|
| 778 |
+
.b8 112
|
| 779 |
+
.b8 97
|
| 780 |
+
.b8 99
|
| 781 |
+
.b8 101
|
| 782 |
+
.b8 47
|
| 783 |
+
.b8 104
|
| 784 |
+
.b8 97
|
| 785 |
+
.b8 110
|
| 786 |
+
.b8 114
|
| 787 |
+
.b8 117
|
| 788 |
+
.b8 105
|
| 789 |
+
.b8 47
|
| 790 |
+
.b8 83
|
| 791 |
+
.b8 112
|
| 792 |
+
.b8 101
|
| 793 |
+
.b8 99
|
| 794 |
+
.b8 70
|
| 795 |
+
.b8 111
|
| 796 |
+
.b8 114
|
| 797 |
+
.b8 103
|
| 798 |
+
.b8 101
|
| 799 |
+
.b8 45
|
| 800 |
+
.b8 101
|
| 801 |
+
.b8 120
|
| 802 |
+
.b8 116
|
| 803 |
+
.b8 47
|
| 804 |
+
.b8 99
|
| 805 |
+
.b8 97
|
| 806 |
+
.b8 99
|
| 807 |
+
.b8 104
|
| 808 |
+
.b8 101
|
| 809 |
+
.b8 47
|
| 810 |
+
.b8 99
|
| 811 |
+
.b8 111
|
| 812 |
+
.b8 109
|
| 813 |
+
.b8 112
|
| 814 |
+
.b8 105
|
| 815 |
+
.b8 108
|
| 816 |
+
.b8 101
|
| 817 |
+
.b8 100
|
| 818 |
+
.b8 95
|
| 819 |
+
.b8 107
|
| 820 |
+
.b8 101
|
| 821 |
+
.b8 114
|
| 822 |
+
.b8 110
|
| 823 |
+
.b8 101
|
| 824 |
+
.b8 108
|
| 825 |
+
.b8 115
|
| 826 |
+
.b8 47
|
| 827 |
+
.b8 118
|
| 828 |
+
.b8 120
|
| 829 |
+
.b8 0
|
| 830 |
+
.b8 2 // Abbrev [2] 0x8b:0x46 DW_TAG_subprogram
|
| 831 |
+
.b8 116 // DW_AT_name
|
| 832 |
+
.b8 114
|
| 833 |
+
.b8 105
|
| 834 |
+
.b8 116
|
| 835 |
+
.b8 111
|
| 836 |
+
.b8 110
|
| 837 |
+
.b8 95
|
| 838 |
+
.b8 114
|
| 839 |
+
.b8 101
|
| 840 |
+
.b8 100
|
| 841 |
+
.b8 95
|
| 842 |
+
.b8 102
|
| 843 |
+
.b8 117
|
| 844 |
+
.b8 115
|
| 845 |
+
.b8 101
|
| 846 |
+
.b8 100
|
| 847 |
+
.b8 95
|
| 848 |
+
.b8 95
|
| 849 |
+
.b8 115
|
| 850 |
+
.b8 111
|
| 851 |
+
.b8 102
|
| 852 |
+
.b8 116
|
| 853 |
+
.b8 109
|
| 854 |
+
.b8 97
|
| 855 |
+
.b8 120
|
| 856 |
+
.b8 95
|
| 857 |
+
.b8 95
|
| 858 |
+
.b8 116
|
| 859 |
+
.b8 111
|
| 860 |
+
.b8 95
|
| 861 |
+
.b8 99
|
| 862 |
+
.b8 111
|
| 863 |
+
.b8 112
|
| 864 |
+
.b8 121
|
| 865 |
+
.b8 95
|
| 866 |
+
.b8 101
|
| 867 |
+
.b8 120
|
| 868 |
+
.b8 112
|
| 869 |
+
.b8 95
|
| 870 |
+
.b8 112
|
| 871 |
+
.b8 114
|
| 872 |
+
.b8 101
|
| 873 |
+
.b8 112
|
| 874 |
+
.b8 97
|
| 875 |
+
.b8 114
|
| 876 |
+
.b8 101
|
| 877 |
+
.b8 95
|
| 878 |
+
.b8 115
|
| 879 |
+
.b8 111
|
| 880 |
+
.b8 102
|
| 881 |
+
.b8 116
|
| 882 |
+
.b8 109
|
| 883 |
+
.b8 97
|
| 884 |
+
.b8 120
|
| 885 |
+
.b8 95
|
| 886 |
+
.b8 111
|
| 887 |
+
.b8 110
|
| 888 |
+
.b8 108
|
| 889 |
+
.b8 105
|
| 890 |
+
.b8 110
|
| 891 |
+
.b8 101
|
| 892 |
+
.b8 95
|
| 893 |
+
.b8 115
|
| 894 |
+
.b8 117
|
| 895 |
+
.b8 98
|
| 896 |
+
.b8 95
|
| 897 |
+
.b8 48
|
| 898 |
+
.b8 0
|
| 899 |
+
.b8 1 // DW_AT_inline
|
| 900 |
+
.b8 3 // Abbrev [3] 0xd1:0x46 DW_TAG_subprogram
|
| 901 |
+
.b64 $L__func_begin0 // DW_AT_low_pc
|
| 902 |
+
.b64 $L__func_end0 // DW_AT_high_pc
|
| 903 |
+
.b32 139 // DW_AT_abstract_origin
|
| 904 |
+
.b8 4 // Abbrev [4] 0xe6:0x18 DW_TAG_inlined_subroutine
|
| 905 |
+
.b32 139 // DW_AT_abstract_origin
|
| 906 |
+
.b64 $L__tmp1 // DW_AT_low_pc
|
| 907 |
+
.b64 $L__tmp6 // DW_AT_high_pc
|
| 908 |
+
.b8 1 // DW_AT_call_file
|
| 909 |
+
.b8 42 // DW_AT_call_line
|
| 910 |
+
.b8 40 // DW_AT_call_column
|
| 911 |
+
.b8 4 // Abbrev [4] 0xfe:0x18 DW_TAG_inlined_subroutine
|
| 912 |
+
.b32 139 // DW_AT_abstract_origin
|
| 913 |
+
.b64 $L__tmp7 // DW_AT_low_pc
|
| 914 |
+
.b64 $L__tmp8 // DW_AT_high_pc
|
| 915 |
+
.b8 1 // DW_AT_call_file
|
| 916 |
+
.b8 49 // DW_AT_call_line
|
| 917 |
+
.b8 33 // DW_AT_call_column
|
| 918 |
+
.b8 0 // End Of Children Mark
|
| 919 |
+
.b8 0 // End Of Children Mark
|
| 920 |
+
}
|
| 921 |
+
.section .debug_macinfo { }
|
SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.source
ADDED
|
@@ -0,0 +1,449 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":18:0)
|
| 2 |
+
#loc48 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":186:0)
|
| 3 |
+
#loc62 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":109:0)
|
| 4 |
+
#loc68 = loc(unknown)
|
| 5 |
+
#loc72 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":86:0)
|
| 6 |
+
#loc76 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":63:0)
|
| 7 |
+
#loc81 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":169:0)
|
| 8 |
+
#loc85 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":177:0)
|
| 9 |
+
#loc96 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":122:0)
|
| 10 |
+
#loc100 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":285:0)
|
| 11 |
+
#loc104 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":260:0)
|
| 12 |
+
#loc108 = loc("in_ptr0"(#loc))
|
| 13 |
+
#loc109 = loc("out_ptr2"(#loc))
|
| 14 |
+
#loc110 = loc("xnumel"(#loc))
|
| 15 |
+
#loc111 = loc("r0_numel"(#loc))
|
| 16 |
+
#loc146 = loc("lhs_max"(#loc48))
|
| 17 |
+
#loc147 = loc("lhs_sum"(#loc48))
|
| 18 |
+
#loc148 = loc("rhs_max"(#loc48))
|
| 19 |
+
#loc160 = loc("a"(#loc62))
|
| 20 |
+
#loc161 = loc("b"(#loc62))
|
| 21 |
+
#loc165 = loc("x"(#loc72))
|
| 22 |
+
#loc166 = loc("x"(#loc76))
|
| 23 |
+
#loc167 = loc("x"(#loc81))
|
| 24 |
+
#loc168 = loc("lhs_max"(#loc85))
|
| 25 |
+
#loc169 = loc("lhs_sum"(#loc85))
|
| 26 |
+
#loc178 = loc("a"(#loc96))
|
| 27 |
+
#loc179 = loc("input"(#loc100))
|
| 28 |
+
#loc180 = loc("a"(#loc104))
|
| 29 |
+
#loc181 = loc("b"(#loc104))
|
| 30 |
+
module {
|
| 31 |
+
tt.func public @triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0(%in_ptr0: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %out_ptr2: !tt.ptr<f32> {tt.divisibility = 16 : i32} loc("out_ptr2"(#loc)), %xnumel: i32 {tt.divisibility = 16 : i32} loc("xnumel"(#loc)), %r0_numel: i32 {tt.divisibility = 16 : i32} loc("r0_numel"(#loc))) attributes {noinline = false} {
|
| 32 |
+
%xnumel_0 = arith.constant 4096 : i32 loc(#loc112)
|
| 33 |
+
%r0_numel_1 = arith.constant 32000 : i32 loc(#loc113)
|
| 34 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc114)
|
| 35 |
+
%xoffset_2 = arith.constant 1 : i32 loc(#loc115)
|
| 36 |
+
%xoffset_3 = arith.constant 1 : i32 loc(#loc115)
|
| 37 |
+
%xoffset_4 = arith.muli %xoffset, %xoffset_3 : i32 loc(#loc115)
|
| 38 |
+
%xindex = tt.make_range {end = 1 : i32, start = 0 : i32} : tensor<1xi32> loc(#loc116)
|
| 39 |
+
%xindex_5 = tt.expand_dims %xindex {axis = 1 : i32} : tensor<1xi32> -> tensor<1x1xi32> loc(#loc117)
|
| 40 |
+
%xindex_6 = tt.splat %xoffset_4 : i32 -> tensor<1x1xi32> loc(#loc118)
|
| 41 |
+
%xindex_7 = arith.addi %xindex_6, %xindex_5 : tensor<1x1xi32> loc(#loc118)
|
| 42 |
+
%xmask = arith.constant true loc(#loc119)
|
| 43 |
+
%xmask_8 = arith.constant dense<true> : tensor<1x2048xi1> loc(#loc119)
|
| 44 |
+
%r0_base = tt.make_range {end = 2048 : i32, start = 0 : i32} : tensor<2048xi32> loc(#loc120)
|
| 45 |
+
%r0_base_9 = tt.expand_dims %r0_base {axis = 0 : i32} : tensor<2048xi32> -> tensor<1x2048xi32> loc(#loc121)
|
| 46 |
+
%_tmp3_max = arith.constant 0xFF800000 : f32 loc(#loc122)
|
| 47 |
+
%_tmp3_max_10 = arith.constant dense<0xFF800000> : tensor<1x2048xf32> loc(#loc122)
|
| 48 |
+
%_tmp3_sum = tt.call @"triton.language.standard.zeros____(0, 0)cconstexpr_1__(0, 1)cconstexpr_2048__(1,)cconstexpr_fp32_"() : () -> tensor<1x2048xf32> loc(#loc123)
|
| 49 |
+
%c0_i32 = arith.constant 0 : i32 loc(#loc13)
|
| 50 |
+
%c2048_i32 = arith.constant 2048 : i32 loc(#loc13)
|
| 51 |
+
%0 = arith.bitcast %c0_i32 : i32 to i32 loc(#loc13)
|
| 52 |
+
%1 = arith.bitcast %r0_numel_1 : i32 to i32 loc(#loc13)
|
| 53 |
+
%2 = arith.bitcast %c2048_i32 : i32 to i32 loc(#loc13)
|
| 54 |
+
%3 = ub.poison : i32 loc(#loc13)
|
| 55 |
+
%_tmp3_sum_11:2 = scf.for %r0_offset = %0 to %1 step %2 iter_args(%_tmp3_max_14 = %_tmp3_max_10, %_tmp3_sum_15 = %_tmp3_sum) -> (tensor<1x2048xf32>, tensor<1x2048xf32>) : i32 {
|
| 56 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x2048xi32> loc(#loc125)
|
| 57 |
+
%r0_index_16 = arith.addi %r0_index, %r0_base_9 : tensor<1x2048xi32> loc(#loc125)
|
| 58 |
+
%r0_mask = arith.constant dense<32000> : tensor<1x2048xi32> loc(#loc126)
|
| 59 |
+
%r0_mask_17 = arith.cmpi slt, %r0_index_16, %r0_mask : tensor<1x2048xi32> loc(#loc126)
|
| 60 |
+
%tmp0 = arith.constant 32000 : i32 loc(#loc127)
|
| 61 |
+
%tmp0_18 = arith.constant 32000 : i32 loc(#loc127)
|
| 62 |
+
%tmp0_19 = arith.constant dense<32000> : tensor<1x1xi32> loc(#loc127)
|
| 63 |
+
%tmp0_20 = arith.muli %tmp0_19, %xindex_7 : tensor<1x1xi32> loc(#loc127)
|
| 64 |
+
%tmp0_21 = tt.broadcast %tmp0_20 : tensor<1x1xi32> -> tensor<1x2048xi32> loc(#loc128)
|
| 65 |
+
%tmp0_22 = arith.addi %r0_index_16, %tmp0_21 : tensor<1x2048xi32> loc(#loc128)
|
| 66 |
+
%tmp0_23 = tt.splat %in_ptr0 : !tt.ptr<bf16> -> tensor<1x2048x!tt.ptr<bf16>> loc(#loc129)
|
| 67 |
+
%tmp0_24 = tt.addptr %tmp0_23, %tmp0_22 : tensor<1x2048x!tt.ptr<bf16>>, tensor<1x2048xi32> loc(#loc129)
|
| 68 |
+
%tmp0_25 = arith.constant 0.000000e+00 : f32 loc(#loc130)
|
| 69 |
+
%tmp0_26 = arith.constant dense<0.000000e+00> : tensor<1x2048xf32> loc(#loc130)
|
| 70 |
+
%tmp0_27 = arith.truncf %tmp0_26 : tensor<1x2048xf32> to tensor<1x2048xbf16> loc(#loc130)
|
| 71 |
+
%tmp0_28 = tt.load %tmp0_24, %r0_mask_17, %tmp0_27 evictionPolicy = evict_last : tensor<1x2048x!tt.ptr<bf16>> loc(#loc130)
|
| 72 |
+
%tmp0_29 = arith.extf %tmp0_28 : tensor<1x2048xbf16> to tensor<1x2048xf32> loc(#loc131)
|
| 73 |
+
%9:2 = tt.call @"torch._inductor.runtime.triton_helpers.online_softmax_combine__fp32S1_2048S_fp32S1_2048S_fp32S1_2048S__(3,)cconstexpr_False_"(%_tmp3_max_14, %_tmp3_sum_15, %tmp0_29) : (tensor<1x2048xf32>, tensor<1x2048xf32>, tensor<1x2048xf32>) -> (tensor<1x2048xf32>, tensor<1x2048xf32>) loc(#loc21)
|
| 74 |
+
%_tmp3_max_30 = arith.select %r0_mask_17, %9#0, %_tmp3_max_14 : tensor<1x2048xi1>, tensor<1x2048xf32> loc(#loc132)
|
| 75 |
+
%_tmp3_sum_31 = arith.select %r0_mask_17, %9#1, %_tmp3_sum_15 : tensor<1x2048xi1>, tensor<1x2048xf32> loc(#loc133)
|
| 76 |
+
scf.yield %_tmp3_max_30, %_tmp3_sum_31 : tensor<1x2048xf32>, tensor<1x2048xf32> loc(#loc24)
|
| 77 |
+
} loc(#loc182)
|
| 78 |
+
%4:2 = tt.call @"torch._inductor.runtime.triton_helpers.online_softmax_reduce__fp32S1_2048S_fp32S1_2048S__(2,)cconstexpr_1__(3,)cconstexpr_False_"(%_tmp3_sum_11#0, %_tmp3_sum_11#1) : (tensor<1x2048xf32>, tensor<1x2048xf32>) -> (tensor<1xf32>, tensor<1xf32>) loc(#loc25)
|
| 79 |
+
%tmp3 = tt.expand_dims %4#0 {axis = 1 : i32} : tensor<1xf32> -> tensor<1x1xf32> loc(#loc134)
|
| 80 |
+
%tmp4 = tt.expand_dims %4#1 {axis = 1 : i32} : tensor<1xf32> -> tensor<1x1xf32> loc(#loc135)
|
| 81 |
+
%c0_i32_12 = arith.constant 0 : i32 loc(#loc28)
|
| 82 |
+
%c2048_i32_13 = arith.constant 2048 : i32 loc(#loc28)
|
| 83 |
+
%5 = arith.bitcast %c0_i32_12 : i32 to i32 loc(#loc28)
|
| 84 |
+
%6 = arith.bitcast %r0_numel_1 : i32 to i32 loc(#loc28)
|
| 85 |
+
%7 = arith.bitcast %c2048_i32_13 : i32 to i32 loc(#loc28)
|
| 86 |
+
%8 = ub.poison : i32 loc(#loc28)
|
| 87 |
+
scf.for %r0_offset = %5 to %6 step %7 : i32 {
|
| 88 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x2048xi32> loc(#loc136)
|
| 89 |
+
%r0_index_14 = arith.addi %r0_index, %r0_base_9 : tensor<1x2048xi32> loc(#loc136)
|
| 90 |
+
%r0_mask = arith.constant dense<32000> : tensor<1x2048xi32> loc(#loc137)
|
| 91 |
+
%r0_mask_15 = arith.cmpi slt, %r0_index_14, %r0_mask : tensor<1x2048xi32> loc(#loc137)
|
| 92 |
+
%tmp5 = arith.constant 32000 : i32 loc(#loc138)
|
| 93 |
+
%tmp5_16 = arith.constant 32000 : i32 loc(#loc138)
|
| 94 |
+
%tmp5_17 = arith.constant dense<32000> : tensor<1x1xi32> loc(#loc138)
|
| 95 |
+
%tmp5_18 = arith.muli %tmp5_17, %xindex_7 : tensor<1x1xi32> loc(#loc138)
|
| 96 |
+
%tmp5_19 = tt.broadcast %tmp5_18 : tensor<1x1xi32> -> tensor<1x2048xi32> loc(#loc139)
|
| 97 |
+
%tmp5_20 = arith.addi %r0_index_14, %tmp5_19 : tensor<1x2048xi32> loc(#loc139)
|
| 98 |
+
%tmp5_21 = tt.splat %in_ptr0 : !tt.ptr<bf16> -> tensor<1x2048x!tt.ptr<bf16>> loc(#loc140)
|
| 99 |
+
%tmp5_22 = tt.addptr %tmp5_21, %tmp5_20 : tensor<1x2048x!tt.ptr<bf16>>, tensor<1x2048xi32> loc(#loc140)
|
| 100 |
+
%tmp5_23 = arith.constant 0.000000e+00 : f32 loc(#loc141)
|
| 101 |
+
%tmp5_24 = arith.constant dense<0.000000e+00> : tensor<1x2048xf32> loc(#loc141)
|
| 102 |
+
%tmp5_25 = arith.truncf %tmp5_24 : tensor<1x2048xf32> to tensor<1x2048xbf16> loc(#loc141)
|
| 103 |
+
%tmp5_26 = tt.load %tmp5_22, %r0_mask_15, %tmp5_25 evictionPolicy = evict_first : tensor<1x2048x!tt.ptr<bf16>> loc(#loc141)
|
| 104 |
+
%tmp5_27 = arith.extf %tmp5_26 : tensor<1x2048xbf16> to tensor<1x2048xf32> loc(#loc142)
|
| 105 |
+
%tmp7 = tt.broadcast %tmp3 : tensor<1x1xf32> -> tensor<1x2048xf32> loc(#loc143)
|
| 106 |
+
%tmp7_28 = arith.subf %tmp5_27, %tmp7 : tensor<1x2048xf32> loc(#loc143)
|
| 107 |
+
%tmp8 = tt.extern_elementwise %tmp7_28 {libname = "", libpath = "", pure = true, symbol = "__nv_expf"} : (tensor<1x2048xf32>) -> tensor<1x2048xf32> loc(#loc144)
|
| 108 |
+
%tmp9 = tt.broadcast %tmp4 : tensor<1x1xf32> -> tensor<1x2048xf32> loc(#loc145)
|
| 109 |
+
%tmp9_29 = arith.divf %tmp8, %tmp9 : tensor<1x2048xf32> loc(#loc145)
|
| 110 |
+
%c32000_i32 = arith.constant 32000 : i32 loc(#loc39)
|
| 111 |
+
%c32000_i32_30 = arith.constant 32000 : i32 loc(#loc39)
|
| 112 |
+
%cst = arith.constant dense<32000> : tensor<1x1xi32> loc(#loc39)
|
| 113 |
+
%9 = arith.muli %cst, %xindex_7 : tensor<1x1xi32> loc(#loc39)
|
| 114 |
+
%10 = tt.broadcast %9 : tensor<1x1xi32> -> tensor<1x2048xi32> loc(#loc40)
|
| 115 |
+
%11 = arith.addi %r0_index_14, %10 : tensor<1x2048xi32> loc(#loc40)
|
| 116 |
+
%12 = tt.splat %out_ptr2 : !tt.ptr<f32> -> tensor<1x2048x!tt.ptr<f32>> loc(#loc41)
|
| 117 |
+
%13 = tt.addptr %12, %11 : tensor<1x2048x!tt.ptr<f32>>, tensor<1x2048xi32> loc(#loc41)
|
| 118 |
+
tt.store %13, %tmp9_29, %r0_mask_15 : tensor<1x2048x!tt.ptr<f32>> loc(#loc42)
|
| 119 |
+
} loc(#loc28)
|
| 120 |
+
tt.return loc(#loc43)
|
| 121 |
+
} loc(#loc)
|
| 122 |
+
tt.func private @"triton.language.standard.zeros____(0, 0)cconstexpr_1__(0, 1)cconstexpr_2048__(1,)cconstexpr_fp32_"() -> tensor<1x2048xf32> attributes {noinline = false} {
|
| 123 |
+
%cst = arith.constant 0.000000e+00 : f32 loc(#loc45)
|
| 124 |
+
%cst_0 = arith.constant dense<0.000000e+00> : tensor<1x2048xf32> loc(#loc45)
|
| 125 |
+
tt.return %cst_0 : tensor<1x2048xf32> loc(#loc46)
|
| 126 |
+
^bb1: // no predecessors
|
| 127 |
+
%0 = ub.poison : tensor<1x2048xf32> loc(#loc47)
|
| 128 |
+
tt.return %0 : tensor<1x2048xf32> loc(#loc47)
|
| 129 |
+
} loc(#loc44)
|
| 130 |
+
tt.func private @"torch._inductor.runtime.triton_helpers.online_softmax_combine__fp32S1_2048S_fp32S1_2048S_fp32S1_2048S__(3,)cconstexpr_False_"(%lhs_max: tensor<1x2048xf32> loc("lhs_max"(#loc48)), %lhs_sum: tensor<1x2048xf32> loc("lhs_sum"(#loc48)), %rhs_max: tensor<1x2048xf32> loc("rhs_max"(#loc48))) -> (tensor<1x2048xf32>, tensor<1x2048xf32>) attributes {noinline = false} {
|
| 131 |
+
%out_max = tt.call @torch._inductor.runtime.triton_helpers.maximum__fp32S1_2048S_fp32S1_2048S__(%lhs_max, %rhs_max) : (tensor<1x2048xf32>, tensor<1x2048xf32>) -> tensor<1x2048xf32> loc(#loc149)
|
| 132 |
+
%lhs_scale = arith.constant 0xFF800000 : f32 loc(#loc150)
|
| 133 |
+
%lhs_scale_0 = arith.constant dense<0xFF800000> : tensor<1x2048xf32> loc(#loc150)
|
| 134 |
+
%lhs_scale_1 = arith.cmpf oeq, %out_max, %lhs_scale_0 : tensor<1x2048xf32> loc(#loc150)
|
| 135 |
+
%lhs_scale_2 = arith.subf %lhs_max, %out_max : tensor<1x2048xf32> loc(#loc151)
|
| 136 |
+
%lhs_scale_3 = tt.call @"torch._inductor.runtime.triton_helpers.exp__fp32S1_2048S__(1,)cconstexpr_False_"(%lhs_scale_2) : (tensor<1x2048xf32>) -> tensor<1x2048xf32> loc(#loc152)
|
| 137 |
+
%lhs_scale_4 = arith.constant 1.000000e+00 : f32 loc(#loc153)
|
| 138 |
+
%lhs_scale_5 = arith.constant 1.000000e+00 : f32 loc(#loc153)
|
| 139 |
+
%lhs_scale_6 = arith.constant dense<1.000000e+00> : tensor<1x2048xf32> loc(#loc153)
|
| 140 |
+
%lhs_scale_7 = arith.select %lhs_scale_1, %lhs_scale_6, %lhs_scale_3 : tensor<1x2048xi1>, tensor<1x2048xf32> loc(#loc153)
|
| 141 |
+
%rhs_scale = arith.constant 0xFF800000 : f32 loc(#loc154)
|
| 142 |
+
%rhs_scale_8 = arith.constant dense<0xFF800000> : tensor<1x2048xf32> loc(#loc154)
|
| 143 |
+
%rhs_scale_9 = arith.cmpf oeq, %out_max, %rhs_scale_8 : tensor<1x2048xf32> loc(#loc154)
|
| 144 |
+
%rhs_scale_10 = arith.subf %rhs_max, %out_max : tensor<1x2048xf32> loc(#loc155)
|
| 145 |
+
%rhs_scale_11 = tt.call @"torch._inductor.runtime.triton_helpers.exp__fp32S1_2048S__(1,)cconstexpr_False_"(%rhs_scale_10) : (tensor<1x2048xf32>) -> tensor<1x2048xf32> loc(#loc156)
|
| 146 |
+
%rhs_scale_12 = arith.constant 1.000000e+00 : f32 loc(#loc157)
|
| 147 |
+
%rhs_scale_13 = arith.constant 1.000000e+00 : f32 loc(#loc157)
|
| 148 |
+
%rhs_scale_14 = arith.constant dense<1.000000e+00> : tensor<1x2048xf32> loc(#loc157)
|
| 149 |
+
%rhs_scale_15 = arith.select %rhs_scale_9, %rhs_scale_14, %rhs_scale_11 : tensor<1x2048xi1>, tensor<1x2048xf32> loc(#loc157)
|
| 150 |
+
%out_sum = arith.mulf %lhs_sum, %lhs_scale_7 : tensor<1x2048xf32> loc(#loc158)
|
| 151 |
+
%out_sum_16 = arith.addf %out_sum, %rhs_scale_15 : tensor<1x2048xf32> loc(#loc159)
|
| 152 |
+
tt.return %out_max, %out_sum_16 : tensor<1x2048xf32>, tensor<1x2048xf32> loc(#loc60)
|
| 153 |
+
^bb1: // no predecessors
|
| 154 |
+
%0 = ub.poison : tensor<1x2048xf32> loc(#loc61)
|
| 155 |
+
%1 = ub.poison : tensor<1x2048xf32> loc(#loc61)
|
| 156 |
+
tt.return %0, %1 : tensor<1x2048xf32>, tensor<1x2048xf32> loc(#loc61)
|
| 157 |
+
} loc(#loc48)
|
| 158 |
+
tt.func private @torch._inductor.runtime.triton_helpers.maximum__fp32S1_2048S_fp32S1_2048S__(%a: tensor<1x2048xf32> loc("a"(#loc62)), %b: tensor<1x2048xf32> loc("b"(#loc62))) -> tensor<1x2048xf32> attributes {noinline = false} {
|
| 159 |
+
%mask = arith.cmpf ogt, %a, %b : tensor<1x2048xf32> loc(#loc183)
|
| 160 |
+
%0 = tt.call @torch._inductor.runtime.triton_helpers.is_floating__fp32S1_2048S__(%a) : (tensor<1x2048xf32>) -> i1 loc(#loc64)
|
| 161 |
+
%1 = scf.if %0 -> (tensor<1x2048xi1>) {
|
| 162 |
+
%mask_0 = arith.cmpf une, %a, %a : tensor<1x2048xf32> loc(#loc163)
|
| 163 |
+
%mask_1 = arith.ori %mask, %mask_0 : tensor<1x2048xi1> loc(#loc184)
|
| 164 |
+
scf.yield %mask_1 : tensor<1x2048xi1> loc(#loc184)
|
| 165 |
+
} else {
|
| 166 |
+
scf.yield %mask : tensor<1x2048xi1> loc(#loc68)
|
| 167 |
+
} loc(#loc65)
|
| 168 |
+
%2 = arith.select %1, %a, %b : tensor<1x2048xi1>, tensor<1x2048xf32> loc(#loc69)
|
| 169 |
+
tt.return %2 : tensor<1x2048xf32> loc(#loc70)
|
| 170 |
+
^bb1: // no predecessors
|
| 171 |
+
%3 = ub.poison : tensor<1x2048xf32> loc(#loc71)
|
| 172 |
+
tt.return %3 : tensor<1x2048xf32> loc(#loc71)
|
| 173 |
+
} loc(#loc62)
|
| 174 |
+
tt.func private @torch._inductor.runtime.triton_helpers.is_floating__fp32S1_2048S__(%x: tensor<1x2048xf32> loc("x"(#loc72))) -> i1 attributes {noinline = false} {
|
| 175 |
+
%0 = tt.call @torch._inductor.runtime.triton_helpers.promote_to_tensor__fp32S1_2048S__(%x) : (tensor<1x2048xf32>) -> tensor<1x2048xf32> loc(#loc73)
|
| 176 |
+
%true = arith.constant true loc(#loc74)
|
| 177 |
+
tt.return %true : i1 loc(#loc74)
|
| 178 |
+
^bb1: // no predecessors
|
| 179 |
+
%1 = ub.poison : i1 loc(#loc75)
|
| 180 |
+
tt.return %1 : i1 loc(#loc75)
|
| 181 |
+
} loc(#loc72)
|
| 182 |
+
tt.func private @torch._inductor.runtime.triton_helpers.promote_to_tensor__fp32S1_2048S__(%x: tensor<1x2048xf32> loc("x"(#loc76))) -> tensor<1x2048xf32> attributes {noinline = false} {
|
| 183 |
+
%0 = tt.call @"triton.language.standard.zeros____(0, 0)cconstexpr_1__(1,)cconstexpr_int1_"() : () -> tensor<1xi1> loc(#loc77)
|
| 184 |
+
%1 = arith.uitofp %0 : tensor<1xi1> to tensor<1xf32> loc(#loc78)
|
| 185 |
+
%2 = tt.expand_dims %1 {axis = 0 : i32} : tensor<1xf32> -> tensor<1x1xf32> loc(#loc78)
|
| 186 |
+
%3 = tt.broadcast %2 : tensor<1x1xf32> -> tensor<1x2048xf32> loc(#loc78)
|
| 187 |
+
%4 = arith.addf %x, %3 : tensor<1x2048xf32> loc(#loc78)
|
| 188 |
+
tt.return %4 : tensor<1x2048xf32> loc(#loc79)
|
| 189 |
+
^bb1: // no predecessors
|
| 190 |
+
%5 = ub.poison : tensor<1x2048xf32> loc(#loc80)
|
| 191 |
+
tt.return %5 : tensor<1x2048xf32> loc(#loc80)
|
| 192 |
+
} loc(#loc76)
|
| 193 |
+
tt.func private @"triton.language.standard.zeros____(0, 0)cconstexpr_1__(1,)cconstexpr_int1_"() -> tensor<1xi1> attributes {noinline = false} {
|
| 194 |
+
%false = arith.constant false loc(#loc45)
|
| 195 |
+
%cst = arith.constant dense<false> : tensor<1xi1> loc(#loc45)
|
| 196 |
+
tt.return %cst : tensor<1xi1> loc(#loc46)
|
| 197 |
+
^bb1: // no predecessors
|
| 198 |
+
%0 = ub.poison : tensor<1xi1> loc(#loc47)
|
| 199 |
+
tt.return %0 : tensor<1xi1> loc(#loc47)
|
| 200 |
+
} loc(#loc44)
|
| 201 |
+
tt.func private @"torch._inductor.runtime.triton_helpers.exp__fp32S1_2048S__(1,)cconstexpr_False_"(%x: tensor<1x2048xf32> loc("x"(#loc81))) -> tensor<1x2048xf32> attributes {noinline = false} {
|
| 202 |
+
%0 = tt.extern_elementwise %x {libname = "", libpath = "", pure = true, symbol = "__nv_expf"} : (tensor<1x2048xf32>) -> tensor<1x2048xf32> loc(#loc82)
|
| 203 |
+
tt.return %0 : tensor<1x2048xf32> loc(#loc83)
|
| 204 |
+
^bb1: // no predecessors
|
| 205 |
+
%1 = ub.poison : tensor<1x2048xf32> loc(#loc84)
|
| 206 |
+
tt.return %1 : tensor<1x2048xf32> loc(#loc84)
|
| 207 |
+
} loc(#loc81)
|
| 208 |
+
tt.func private @"torch._inductor.runtime.triton_helpers.online_softmax_reduce__fp32S1_2048S_fp32S1_2048S__(2,)cconstexpr_1__(3,)cconstexpr_False_"(%lhs_max: tensor<1x2048xf32> loc("lhs_max"(#loc85)), %lhs_sum: tensor<1x2048xf32> loc("lhs_sum"(#loc85))) -> (tensor<1xf32>, tensor<1xf32>) attributes {noinline = false} {
|
| 209 |
+
%out_max = tt.call @"torch._inductor.runtime.triton_helpers.max2__fp32S1_2048S__(1,)cconstexpr_1_"(%lhs_max) : (tensor<1x2048xf32>) -> tensor<1xf32> loc(#loc170)
|
| 210 |
+
%out_max_keepdim = tt.expand_dims %out_max {axis = 1 : i32} : tensor<1xf32> -> tensor<1x1xf32> loc(#loc171)
|
| 211 |
+
%delta = arith.constant 0xFF800000 : f32 loc(#loc172)
|
| 212 |
+
%delta_0 = arith.constant dense<0xFF800000> : tensor<1x1xf32> loc(#loc172)
|
| 213 |
+
%delta_1 = arith.cmpf oeq, %out_max_keepdim, %delta_0 : tensor<1x1xf32> loc(#loc172)
|
| 214 |
+
%delta_2 = tt.broadcast %out_max_keepdim : tensor<1x1xf32> -> tensor<1x2048xf32> loc(#loc173)
|
| 215 |
+
%delta_3 = arith.subf %lhs_max, %delta_2 : tensor<1x2048xf32> loc(#loc173)
|
| 216 |
+
%delta_4 = arith.constant 0 : i32 loc(#loc174)
|
| 217 |
+
%delta_5 = arith.constant 0.000000e+00 : f32 loc(#loc174)
|
| 218 |
+
%delta_6 = arith.constant dense<0.000000e+00> : tensor<1x2048xf32> loc(#loc174)
|
| 219 |
+
%delta_7 = tt.broadcast %delta_1 : tensor<1x1xi1> -> tensor<1x2048xi1> loc(#loc174)
|
| 220 |
+
%delta_8 = arith.select %delta_7, %delta_6, %delta_3 : tensor<1x2048xi1>, tensor<1x2048xf32> loc(#loc174)
|
| 221 |
+
%out_sum = tt.call @"torch._inductor.runtime.triton_helpers.exp__fp32S1_2048S__(1,)cconstexpr_False_"(%delta_8) : (tensor<1x2048xf32>) -> tensor<1x2048xf32> loc(#loc175)
|
| 222 |
+
%out_sum_9 = arith.mulf %lhs_sum, %out_sum : tensor<1x2048xf32> loc(#loc176)
|
| 223 |
+
%out_sum_10 = tt.call @"triton.language.standard.sum__fp32S1_2048S__(1,)cconstexpr_1__(2,)cconstexpr_False__(3,)cNone"(%out_sum_9) : (tensor<1x2048xf32>) -> tensor<1xf32> loc(#loc177)
|
| 224 |
+
tt.return %out_max, %out_sum_10 : tensor<1xf32>, tensor<1xf32> loc(#loc94)
|
| 225 |
+
^bb1: // no predecessors
|
| 226 |
+
%0 = ub.poison : tensor<1xf32> loc(#loc95)
|
| 227 |
+
%1 = ub.poison : tensor<1xf32> loc(#loc95)
|
| 228 |
+
tt.return %0, %1 : tensor<1xf32>, tensor<1xf32> loc(#loc95)
|
| 229 |
+
} loc(#loc85)
|
| 230 |
+
tt.func private @"torch._inductor.runtime.triton_helpers.max2__fp32S1_2048S__(1,)cconstexpr_1_"(%a: tensor<1x2048xf32> loc("a"(#loc96))) -> tensor<1xf32> attributes {noinline = false} {
|
| 231 |
+
%0 = "tt.reduce"(%a) <{axis = 1 : i32}> ({
|
| 232 |
+
^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):
|
| 233 |
+
%2 = tt.call @torch._inductor.runtime.triton_helpers.maximum__fp32_fp32__(%arg1, %arg2) : (f32, f32) -> f32 loc(#loc97)
|
| 234 |
+
tt.reduce.return %2 : f32 loc(#loc97)
|
| 235 |
+
}) : (tensor<1x2048xf32>) -> tensor<1xf32> loc(#loc97)
|
| 236 |
+
tt.return %0 : tensor<1xf32> loc(#loc98)
|
| 237 |
+
^bb1: // no predecessors
|
| 238 |
+
%1 = ub.poison : tensor<1xf32> loc(#loc99)
|
| 239 |
+
tt.return %1 : tensor<1xf32> loc(#loc99)
|
| 240 |
+
} loc(#loc96)
|
| 241 |
+
tt.func private @torch._inductor.runtime.triton_helpers.maximum__fp32_fp32__(%a: f32 loc("a"(#loc62)), %b: f32 loc("b"(#loc62))) -> f32 attributes {noinline = false} {
|
| 242 |
+
%mask = arith.cmpf ogt, %a, %b : f32 loc(#loc183)
|
| 243 |
+
%0 = tt.call @torch._inductor.runtime.triton_helpers.is_floating__fp32__(%a) : (f32) -> i1 loc(#loc64)
|
| 244 |
+
%1 = scf.if %0 -> (i1) {
|
| 245 |
+
%mask_0 = arith.cmpf une, %a, %a : f32 loc(#loc163)
|
| 246 |
+
%mask_1 = arith.ori %mask, %mask_0 : i1 loc(#loc184)
|
| 247 |
+
scf.yield %mask_1 : i1 loc(#loc184)
|
| 248 |
+
} else {
|
| 249 |
+
scf.yield %mask : i1 loc(#loc68)
|
| 250 |
+
} loc(#loc65)
|
| 251 |
+
%2 = arith.select %1, %a, %b : f32 loc(#loc69)
|
| 252 |
+
tt.return %2 : f32 loc(#loc70)
|
| 253 |
+
^bb1: // no predecessors
|
| 254 |
+
%3 = ub.poison : f32 loc(#loc71)
|
| 255 |
+
tt.return %3 : f32 loc(#loc71)
|
| 256 |
+
} loc(#loc62)
|
| 257 |
+
tt.func private @torch._inductor.runtime.triton_helpers.is_floating__fp32__(%x: f32 loc("x"(#loc72))) -> i1 attributes {noinline = false} {
|
| 258 |
+
%0 = tt.call @torch._inductor.runtime.triton_helpers.promote_to_tensor__fp32__(%x) : (f32) -> tensor<1xf32> loc(#loc73)
|
| 259 |
+
%true = arith.constant true loc(#loc74)
|
| 260 |
+
tt.return %true : i1 loc(#loc74)
|
| 261 |
+
^bb1: // no predecessors
|
| 262 |
+
%1 = ub.poison : i1 loc(#loc75)
|
| 263 |
+
tt.return %1 : i1 loc(#loc75)
|
| 264 |
+
} loc(#loc72)
|
| 265 |
+
tt.func private @torch._inductor.runtime.triton_helpers.promote_to_tensor__fp32__(%x: f32 loc("x"(#loc76))) -> tensor<1xf32> attributes {noinline = false} {
|
| 266 |
+
%0 = tt.call @"triton.language.standard.zeros____(0, 0)cconstexpr_1__(1,)cconstexpr_int1_"() : () -> tensor<1xi1> loc(#loc77)
|
| 267 |
+
%1 = arith.uitofp %0 : tensor<1xi1> to tensor<1xf32> loc(#loc78)
|
| 268 |
+
%2 = tt.splat %x : f32 -> tensor<1xf32> loc(#loc78)
|
| 269 |
+
%3 = arith.addf %2, %1 : tensor<1xf32> loc(#loc78)
|
| 270 |
+
tt.return %3 : tensor<1xf32> loc(#loc79)
|
| 271 |
+
^bb1: // no predecessors
|
| 272 |
+
%4 = ub.poison : tensor<1xf32> loc(#loc80)
|
| 273 |
+
tt.return %4 : tensor<1xf32> loc(#loc80)
|
| 274 |
+
} loc(#loc76)
|
| 275 |
+
tt.func private @"triton.language.standard.sum__fp32S1_2048S__(1,)cconstexpr_1__(2,)cconstexpr_False__(3,)cNone"(%input: tensor<1x2048xf32> loc("input"(#loc100))) -> tensor<1xf32> attributes {noinline = false} {
|
| 276 |
+
%0 = "tt.reduce"(%input) <{axis = 1 : i32}> ({
|
| 277 |
+
^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):
|
| 278 |
+
%2 = tt.call @triton.language.standard._sum_combine__fp32_fp32__(%arg1, %arg2) : (f32, f32) -> f32 loc(#loc101)
|
| 279 |
+
tt.reduce.return %2 : f32 loc(#loc101)
|
| 280 |
+
}) : (tensor<1x2048xf32>) -> tensor<1xf32> loc(#loc101)
|
| 281 |
+
tt.return %0 : tensor<1xf32> loc(#loc102)
|
| 282 |
+
^bb1: // no predecessors
|
| 283 |
+
%1 = ub.poison : tensor<1xf32> loc(#loc103)
|
| 284 |
+
tt.return %1 : tensor<1xf32> loc(#loc103)
|
| 285 |
+
} loc(#loc100)
|
| 286 |
+
tt.func private @triton.language.standard._sum_combine__fp32_fp32__(%a: f32 loc("a"(#loc104)), %b: f32 loc("b"(#loc104))) -> f32 attributes {noinline = false} {
|
| 287 |
+
%0 = arith.addf %a, %b : f32 loc(#loc105)
|
| 288 |
+
tt.return %0 : f32 loc(#loc106)
|
| 289 |
+
^bb1: // no predecessors
|
| 290 |
+
%1 = ub.poison : f32 loc(#loc107)
|
| 291 |
+
tt.return %1 : f32 loc(#loc107)
|
| 292 |
+
} loc(#loc104)
|
| 293 |
+
} loc(#loc)
|
| 294 |
+
#loc1 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":19:13)
|
| 295 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":20:15)
|
| 296 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":23:28)
|
| 297 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":23:33)
|
| 298 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":24:36)
|
| 299 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":24:44)
|
| 300 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":24:23)
|
| 301 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":25:46)
|
| 302 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":26:27)
|
| 303 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":26:37)
|
| 304 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":29:59)
|
| 305 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":30:45)
|
| 306 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":31:40)
|
| 307 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":32:31)
|
| 308 |
+
#loc15 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":33:29)
|
| 309 |
+
#loc16 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:47)
|
| 310 |
+
#loc17 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:41)
|
| 311 |
+
#loc18 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:34)
|
| 312 |
+
#loc19 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:52)
|
| 313 |
+
#loc20 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:105)
|
| 314 |
+
#loc21 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":42:40)
|
| 315 |
+
#loc22 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":45:54)
|
| 316 |
+
#loc23 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":46:54)
|
| 317 |
+
#loc24 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":46:8)
|
| 318 |
+
#loc25 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":49:33)
|
| 319 |
+
#loc26 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":50:16)
|
| 320 |
+
#loc27 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":51:16)
|
| 321 |
+
#loc28 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":52:40)
|
| 322 |
+
#loc29 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":53:31)
|
| 323 |
+
#loc30 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":54:29)
|
| 324 |
+
#loc31 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:47)
|
| 325 |
+
#loc32 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:41)
|
| 326 |
+
#loc33 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:34)
|
| 327 |
+
#loc34 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:52)
|
| 328 |
+
#loc35 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:106)
|
| 329 |
+
#loc36 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":60:22)
|
| 330 |
+
#loc37 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":61:29)
|
| 331 |
+
#loc38 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":62:23)
|
| 332 |
+
#loc39 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":63:42)
|
| 333 |
+
#loc40 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":63:36)
|
| 334 |
+
#loc41 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":63:29)
|
| 335 |
+
#loc42 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":63:53)
|
| 336 |
+
#loc43 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":52:4)
|
| 337 |
+
#loc44 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":118:0)
|
| 338 |
+
#loc45 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":127:31)
|
| 339 |
+
#loc46 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":127:11)
|
| 340 |
+
#loc47 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":127:4)
|
| 341 |
+
#loc49 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":193:31)
|
| 342 |
+
#loc50 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":196:19)
|
| 343 |
+
#loc51 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":196:53)
|
| 344 |
+
#loc52 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":196:62)
|
| 345 |
+
#loc53 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":196:39)
|
| 346 |
+
#loc54 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":199:19)
|
| 347 |
+
#loc55 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":199:53)
|
| 348 |
+
#loc56 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":199:62)
|
| 349 |
+
#loc57 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":199:39)
|
| 350 |
+
#loc58 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":205:24)
|
| 351 |
+
#loc59 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":205:36)
|
| 352 |
+
#loc60 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":206:11)
|
| 353 |
+
#loc61 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":206:4)
|
| 354 |
+
#loc63 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":110:15)
|
| 355 |
+
#loc64 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":111:19)
|
| 356 |
+
#loc65 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":111:7)
|
| 357 |
+
#loc66 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":112:21)
|
| 358 |
+
#loc67 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":112:16)
|
| 359 |
+
#loc69 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":113:29)
|
| 360 |
+
#loc70 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":113:11)
|
| 361 |
+
#loc71 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":113:4)
|
| 362 |
+
#loc73 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":87:29)
|
| 363 |
+
#loc74 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":87:11)
|
| 364 |
+
#loc75 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":87:4)
|
| 365 |
+
#loc77 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":65:30)
|
| 366 |
+
#loc78 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":65:15)
|
| 367 |
+
#loc79 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":65:11)
|
| 368 |
+
#loc80 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":65:4)
|
| 369 |
+
#loc82 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":173:29)
|
| 370 |
+
#loc83 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":173:15)
|
| 371 |
+
#loc84 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":170:4)
|
| 372 |
+
#loc86 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":178:28)
|
| 373 |
+
#loc87 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":179:46)
|
| 374 |
+
#loc88 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":180:40)
|
| 375 |
+
#loc89 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":180:68)
|
| 376 |
+
#loc90 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":180:58)
|
| 377 |
+
#loc91 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":181:42)
|
| 378 |
+
#loc92 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":181:31)
|
| 379 |
+
#loc93 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":181:58)
|
| 380 |
+
#loc94 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":182:11)
|
| 381 |
+
#loc95 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":182:4)
|
| 382 |
+
#loc97 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":123:29)
|
| 383 |
+
#loc98 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":123:11)
|
| 384 |
+
#loc99 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":123:4)
|
| 385 |
+
#loc101 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:36)
|
| 386 |
+
#loc102 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:11)
|
| 387 |
+
#loc103 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:4)
|
| 388 |
+
#loc105 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:15)
|
| 389 |
+
#loc106 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:11)
|
| 390 |
+
#loc107 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:4)
|
| 391 |
+
#loc112 = loc("xnumel"(#loc1))
|
| 392 |
+
#loc113 = loc("r0_numel"(#loc2))
|
| 393 |
+
#loc114 = loc("xoffset"(#loc3))
|
| 394 |
+
#loc115 = loc("xoffset"(#loc4))
|
| 395 |
+
#loc116 = loc("xindex"(#loc5))
|
| 396 |
+
#loc117 = loc("xindex"(#loc6))
|
| 397 |
+
#loc118 = loc("xindex"(#loc7))
|
| 398 |
+
#loc119 = loc("xmask"(#loc8))
|
| 399 |
+
#loc120 = loc("r0_base"(#loc9))
|
| 400 |
+
#loc121 = loc("r0_base"(#loc10))
|
| 401 |
+
#loc122 = loc("_tmp3_max"(#loc11))
|
| 402 |
+
#loc123 = loc("_tmp3_sum"(#loc12))
|
| 403 |
+
#loc124 = loc("_tmp3_max"(#loc13))
|
| 404 |
+
#loc125 = loc("r0_index"(#loc14))
|
| 405 |
+
#loc126 = loc("r0_mask"(#loc15))
|
| 406 |
+
#loc127 = loc("tmp0"(#loc16))
|
| 407 |
+
#loc128 = loc("tmp0"(#loc17))
|
| 408 |
+
#loc129 = loc("tmp0"(#loc18))
|
| 409 |
+
#loc130 = loc("tmp0"(#loc19))
|
| 410 |
+
#loc131 = loc("tmp0"(#loc20))
|
| 411 |
+
#loc132 = loc("_tmp3_max"(#loc22))
|
| 412 |
+
#loc133 = loc("_tmp3_sum"(#loc23))
|
| 413 |
+
#loc134 = loc("tmp3"(#loc26))
|
| 414 |
+
#loc135 = loc("tmp4"(#loc27))
|
| 415 |
+
#loc136 = loc("r0_index"(#loc29))
|
| 416 |
+
#loc137 = loc("r0_mask"(#loc30))
|
| 417 |
+
#loc138 = loc("tmp5"(#loc31))
|
| 418 |
+
#loc139 = loc("tmp5"(#loc32))
|
| 419 |
+
#loc140 = loc("tmp5"(#loc33))
|
| 420 |
+
#loc141 = loc("tmp5"(#loc34))
|
| 421 |
+
#loc142 = loc("tmp5"(#loc35))
|
| 422 |
+
#loc143 = loc("tmp7"(#loc36))
|
| 423 |
+
#loc144 = loc("tmp8"(#loc37))
|
| 424 |
+
#loc145 = loc("tmp9"(#loc38))
|
| 425 |
+
#loc149 = loc("out_max"(#loc49))
|
| 426 |
+
#loc150 = loc("lhs_scale"(#loc50))
|
| 427 |
+
#loc151 = loc("lhs_scale"(#loc51))
|
| 428 |
+
#loc152 = loc("lhs_scale"(#loc52))
|
| 429 |
+
#loc153 = loc("lhs_scale"(#loc53))
|
| 430 |
+
#loc154 = loc("rhs_scale"(#loc54))
|
| 431 |
+
#loc155 = loc("rhs_scale"(#loc55))
|
| 432 |
+
#loc156 = loc("rhs_scale"(#loc56))
|
| 433 |
+
#loc157 = loc("rhs_scale"(#loc57))
|
| 434 |
+
#loc158 = loc("out_sum"(#loc58))
|
| 435 |
+
#loc159 = loc("out_sum"(#loc59))
|
| 436 |
+
#loc162 = loc("mask"(#loc63))
|
| 437 |
+
#loc163 = loc("mask"(#loc66))
|
| 438 |
+
#loc164 = loc("mask"(#loc67))
|
| 439 |
+
#loc170 = loc("out_max"(#loc86))
|
| 440 |
+
#loc171 = loc("out_max_keepdim"(#loc87))
|
| 441 |
+
#loc172 = loc("delta"(#loc88))
|
| 442 |
+
#loc173 = loc("delta"(#loc89))
|
| 443 |
+
#loc174 = loc("delta"(#loc90))
|
| 444 |
+
#loc175 = loc("out_sum"(#loc91))
|
| 445 |
+
#loc176 = loc("out_sum"(#loc92))
|
| 446 |
+
#loc177 = loc("out_sum"(#loc93))
|
| 447 |
+
#loc182 = loc("_tmp3_sum"(#loc124))
|
| 448 |
+
#loc183 = loc("mask"(#loc162))
|
| 449 |
+
#loc184 = loc("mask"(#loc164))
|
SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.ttgir
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#blocked = #ttg.blocked<{sizePerThread = [1, 4], threadsPerWarp = [1, 32], warpsPerCTA = [1, 16], order = [1, 0]}>
|
| 2 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":18:0)
|
| 3 |
+
#loc1 = loc(unknown)
|
| 4 |
+
#loc32 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":178:28)
|
| 5 |
+
#loc33 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":49:33)
|
| 6 |
+
#loc41 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":181:58)
|
| 7 |
+
#loc57 = loc("in_ptr0"(#loc))
|
| 8 |
+
#loc58 = loc("out_ptr2"(#loc))
|
| 9 |
+
#loc59 = loc("xnumel"(#loc))
|
| 10 |
+
#loc60 = loc("r0_numel"(#loc))
|
| 11 |
+
#loc86 = loc("out_max"(#loc32))
|
| 12 |
+
#loc93 = loc("out_sum"(#loc41))
|
| 13 |
+
#loc118 = loc(callsite(#loc86 at #loc33))
|
| 14 |
+
#loc125 = loc(callsite(#loc93 at #loc33))
|
| 15 |
+
#loc133 = loc(callsite(#loc1 at #loc118))
|
| 16 |
+
#loc136 = loc(callsite(#loc1 at #loc125))
|
| 17 |
+
module attributes {"ttg.num-ctas" = 1 : i32, "ttg.num-warps" = 16 : i32, ttg.target = "cuda:90", "ttg.threads-per-warp" = 32 : i32} {
|
| 18 |
+
tt.func public @triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0(%in_ptr0: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %out_ptr2: !tt.ptr<f32> {tt.divisibility = 16 : i32} loc("out_ptr2"(#loc)), %xnumel: i32 {tt.divisibility = 16 : i32} loc("xnumel"(#loc)), %r0_numel: i32 {tt.divisibility = 16 : i32} loc("r0_numel"(#loc))) attributes {noinline = false} {
|
| 19 |
+
%cst = arith.constant dense<32000> : tensor<1x2048xi32, #blocked> loc(#loc1)
|
| 20 |
+
%cst_0 = arith.constant dense<0.000000e+00> : tensor<1x2048xbf16, #blocked> loc(#loc1)
|
| 21 |
+
%c0_i32 = arith.constant 0 : i32 loc(#loc1)
|
| 22 |
+
%c32000_i32 = arith.constant 32000 : i32 loc(#loc1)
|
| 23 |
+
%c2048_i32 = arith.constant 2048 : i32 loc(#loc1)
|
| 24 |
+
%cst_1 = arith.constant dense<0xFF800000> : tensor<1x1xf32, #blocked> loc(#loc1)
|
| 25 |
+
%cst_2 = arith.constant dense<1.000000e+00> : tensor<1x2048xf32, #blocked> loc(#loc1)
|
| 26 |
+
%cst_3 = arith.constant dense<0.000000e+00> : tensor<1x2048xf32, #blocked> loc(#loc1)
|
| 27 |
+
%cst_4 = arith.constant dense<0xFF800000> : tensor<1x2048xf32, #blocked> loc(#loc1)
|
| 28 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc61)
|
| 29 |
+
%r0_base = tt.make_range {end = 2048 : i32, start = 0 : i32} : tensor<2048xi32, #ttg.slice<{dim = 0, parent = #blocked}>> loc(#loc62)
|
| 30 |
+
%r0_base_5 = tt.expand_dims %r0_base {axis = 0 : i32} : tensor<2048xi32, #ttg.slice<{dim = 0, parent = #blocked}>> -> tensor<1x2048xi32, #blocked> loc(#loc62)
|
| 31 |
+
%tmp0 = arith.muli %xoffset, %c32000_i32 : i32 loc(#loc63)
|
| 32 |
+
%tmp0_6 = tt.splat %tmp0 : i32 -> tensor<1x2048xi32, #blocked> loc(#loc104)
|
| 33 |
+
%tmp0_7 = tt.splat %in_ptr0 : !tt.ptr<bf16> -> tensor<1x2048x!tt.ptr<bf16>, #blocked> loc(#loc65)
|
| 34 |
+
%_tmp3_sum:2 = scf.for %_tmp3_sum_14 = %c0_i32 to %c32000_i32 step %c2048_i32 iter_args(%arg5 = %cst_4, %arg6 = %cst_3) -> (tensor<1x2048xf32, #blocked>, tensor<1x2048xf32, #blocked>) : i32 {
|
| 35 |
+
%r0_index = tt.splat %_tmp3_sum_14 : i32 -> tensor<1x2048xi32, #blocked> loc(#loc67)
|
| 36 |
+
%r0_index_15 = arith.addi %r0_index, %r0_base_5 : tensor<1x2048xi32, #blocked> loc(#loc67)
|
| 37 |
+
%r0_mask = arith.cmpi slt, %r0_index_15, %cst : tensor<1x2048xi32, #blocked> loc(#loc68)
|
| 38 |
+
%tmp0_16 = arith.addi %r0_index_15, %tmp0_6 : tensor<1x2048xi32, #blocked> loc(#loc64)
|
| 39 |
+
%tmp0_17 = tt.addptr %tmp0_7, %tmp0_16 : tensor<1x2048x!tt.ptr<bf16>, #blocked>, tensor<1x2048xi32, #blocked> loc(#loc65)
|
| 40 |
+
%tmp0_18 = tt.load %tmp0_17, %r0_mask, %cst_0 evictionPolicy = evict_last : tensor<1x2048x!tt.ptr<bf16>, #blocked> loc(#loc69)
|
| 41 |
+
%tmp0_19 = arith.extf %tmp0_18 : tensor<1x2048xbf16, #blocked> to tensor<1x2048xf32, #blocked> loc(#loc70)
|
| 42 |
+
%mask = arith.cmpf ogt, %arg5, %tmp0_19 : tensor<1x2048xf32, #blocked> loc(#loc126)
|
| 43 |
+
%mask_20 = arith.cmpf une, %arg5, %arg5 : tensor<1x2048xf32, #blocked> loc(#loc127)
|
| 44 |
+
%mask_21 = arith.ori %mask, %mask_20 : tensor<1x2048xi1, #blocked> loc(#loc128)
|
| 45 |
+
%out_max_22 = arith.select %mask_21, %arg5, %tmp0_19 : tensor<1x2048xi1, #blocked>, tensor<1x2048xf32, #blocked> loc(#loc129)
|
| 46 |
+
%lhs_scale = arith.cmpf oeq, %out_max_22, %cst_4 : tensor<1x2048xf32, #blocked> loc(#loc109)
|
| 47 |
+
%lhs_scale_23 = arith.subf %arg5, %out_max_22 : tensor<1x2048xf32, #blocked> loc(#loc110)
|
| 48 |
+
%lhs_scale_24 = tt.extern_elementwise %lhs_scale_23 {libname = "", libpath = "", pure = true, symbol = "__nv_expf"} : (tensor<1x2048xf32, #blocked>) -> tensor<1x2048xf32, #blocked> loc(#loc130)
|
| 49 |
+
%lhs_scale_25 = arith.select %lhs_scale, %cst_2, %lhs_scale_24 : tensor<1x2048xi1, #blocked>, tensor<1x2048xf32, #blocked> loc(#loc112)
|
| 50 |
+
%rhs_scale = arith.subf %tmp0_19, %out_max_22 : tensor<1x2048xf32, #blocked> loc(#loc113)
|
| 51 |
+
%rhs_scale_26 = tt.extern_elementwise %rhs_scale {libname = "", libpath = "", pure = true, symbol = "__nv_expf"} : (tensor<1x2048xf32, #blocked>) -> tensor<1x2048xf32, #blocked> loc(#loc131)
|
| 52 |
+
%rhs_scale_27 = arith.select %lhs_scale, %cst_2, %rhs_scale_26 : tensor<1x2048xi1, #blocked>, tensor<1x2048xf32, #blocked> loc(#loc115)
|
| 53 |
+
%out_sum_28 = arith.mulf %arg6, %lhs_scale_25 : tensor<1x2048xf32, #blocked> loc(#loc116)
|
| 54 |
+
%out_sum_29 = arith.addf %out_sum_28, %rhs_scale_27 : tensor<1x2048xf32, #blocked> loc(#loc117)
|
| 55 |
+
%_tmp3_max = arith.select %r0_mask, %out_max_22, %arg5 : tensor<1x2048xi1, #blocked>, tensor<1x2048xf32, #blocked> loc(#loc84)
|
| 56 |
+
%_tmp3_sum_30 = arith.select %r0_mask, %out_sum_29, %arg6 : tensor<1x2048xi1, #blocked>, tensor<1x2048xf32, #blocked> loc(#loc85)
|
| 57 |
+
scf.yield %_tmp3_max, %_tmp3_sum_30 : tensor<1x2048xf32, #blocked>, tensor<1x2048xf32, #blocked> loc(#loc30)
|
| 58 |
+
} loc(#loc105)
|
| 59 |
+
%out_max = "tt.reduce"(%_tmp3_sum#0) <{axis = 1 : i32}> ({
|
| 60 |
+
^bb0(%out_max_14: f32 loc(callsite(#loc1 at #loc118)), %out_max_15: f32 loc(callsite(#loc1 at #loc118))):
|
| 61 |
+
%mask = arith.cmpf ogt, %out_max_14, %out_max_15 : f32 loc(#loc137)
|
| 62 |
+
%mask_16 = arith.cmpf une, %out_max_14, %out_max_14 : f32 loc(#loc138)
|
| 63 |
+
%mask_17 = arith.ori %mask, %mask_16 : i1 loc(#loc139)
|
| 64 |
+
%out_max_18 = arith.select %mask_17, %out_max_14, %out_max_15 : f32 loc(#loc140)
|
| 65 |
+
tt.reduce.return %out_max_18 : f32 loc(#loc132)
|
| 66 |
+
}) : (tensor<1x2048xf32, #blocked>) -> tensor<1xf32, #ttg.slice<{dim = 1, parent = #blocked}>> loc(#loc132)
|
| 67 |
+
%out_max_keepdim = tt.expand_dims %out_max {axis = 1 : i32} : tensor<1xf32, #ttg.slice<{dim = 1, parent = #blocked}>> -> tensor<1x1xf32, #blocked> loc(#loc119)
|
| 68 |
+
%delta = arith.cmpf oeq, %out_max_keepdim, %cst_1 : tensor<1x1xf32, #blocked> loc(#loc120)
|
| 69 |
+
%delta_8 = tt.broadcast %out_max_keepdim : tensor<1x1xf32, #blocked> -> tensor<1x2048xf32, #blocked> loc(#loc121)
|
| 70 |
+
%delta_9 = arith.subf %_tmp3_sum#0, %delta_8 : tensor<1x2048xf32, #blocked> loc(#loc121)
|
| 71 |
+
%delta_10 = tt.broadcast %delta : tensor<1x1xi1, #blocked> -> tensor<1x2048xi1, #blocked> loc(#loc122)
|
| 72 |
+
%delta_11 = arith.select %delta_10, %cst_3, %delta_9 : tensor<1x2048xi1, #blocked>, tensor<1x2048xf32, #blocked> loc(#loc122)
|
| 73 |
+
%out_sum = tt.extern_elementwise %delta_11 {libname = "", libpath = "", pure = true, symbol = "__nv_expf"} : (tensor<1x2048xf32, #blocked>) -> tensor<1x2048xf32, #blocked> loc(#loc134)
|
| 74 |
+
%out_sum_12 = arith.mulf %_tmp3_sum#1, %out_sum : tensor<1x2048xf32, #blocked> loc(#loc124)
|
| 75 |
+
%out_sum_13 = "tt.reduce"(%out_sum_12) <{axis = 1 : i32}> ({
|
| 76 |
+
^bb0(%out_sum_14: f32 loc(callsite(#loc1 at #loc125)), %out_sum_15: f32 loc(callsite(#loc1 at #loc125))):
|
| 77 |
+
%out_sum_16 = arith.addf %out_sum_14, %out_sum_15 : f32 loc(#loc141)
|
| 78 |
+
tt.reduce.return %out_sum_16 : f32 loc(#loc135)
|
| 79 |
+
}) : (tensor<1x2048xf32, #blocked>) -> tensor<1xf32, #ttg.slice<{dim = 1, parent = #blocked}>> loc(#loc135)
|
| 80 |
+
%tmp4 = tt.expand_dims %out_sum_13 {axis = 1 : i32} : tensor<1xf32, #ttg.slice<{dim = 1, parent = #blocked}>> -> tensor<1x1xf32, #blocked> loc(#loc94)
|
| 81 |
+
%tmp9 = tt.broadcast %tmp4 : tensor<1x1xf32, #blocked> -> tensor<1x2048xf32, #blocked> loc(#loc95)
|
| 82 |
+
%0 = tt.splat %out_ptr2 : !tt.ptr<f32> -> tensor<1x2048x!tt.ptr<f32>, #blocked> loc(#loc45)
|
| 83 |
+
scf.for %r0_offset = %c0_i32 to %c32000_i32 step %c2048_i32 : i32 {
|
| 84 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x2048xi32, #blocked> loc(#loc96)
|
| 85 |
+
%r0_index_14 = arith.addi %r0_index, %r0_base_5 : tensor<1x2048xi32, #blocked> loc(#loc96)
|
| 86 |
+
%r0_mask = arith.cmpi slt, %r0_index_14, %cst : tensor<1x2048xi32, #blocked> loc(#loc97)
|
| 87 |
+
%tmp5 = arith.addi %r0_index_14, %tmp0_6 : tensor<1x2048xi32, #blocked> loc(#loc98)
|
| 88 |
+
%tmp5_15 = tt.addptr %tmp0_7, %tmp5 : tensor<1x2048x!tt.ptr<bf16>, #blocked>, tensor<1x2048xi32, #blocked> loc(#loc99)
|
| 89 |
+
%tmp5_16 = tt.load %tmp5_15, %r0_mask, %cst_0 evictionPolicy = evict_first : tensor<1x2048x!tt.ptr<bf16>, #blocked> loc(#loc100)
|
| 90 |
+
%tmp5_17 = arith.extf %tmp5_16 : tensor<1x2048xbf16, #blocked> to tensor<1x2048xf32, #blocked> loc(#loc101)
|
| 91 |
+
%tmp7 = arith.subf %tmp5_17, %delta_8 : tensor<1x2048xf32, #blocked> loc(#loc102)
|
| 92 |
+
%tmp8 = tt.extern_elementwise %tmp7 {libname = "", libpath = "", pure = true, symbol = "__nv_expf"} : (tensor<1x2048xf32, #blocked>) -> tensor<1x2048xf32, #blocked> loc(#loc103)
|
| 93 |
+
%tmp9_18 = arith.divf %tmp8, %tmp9 : tensor<1x2048xf32, #blocked> loc(#loc95)
|
| 94 |
+
%1 = tt.addptr %0, %tmp5 : tensor<1x2048x!tt.ptr<f32>, #blocked>, tensor<1x2048xi32, #blocked> loc(#loc45)
|
| 95 |
+
tt.store %1, %tmp9_18, %r0_mask : tensor<1x2048x!tt.ptr<f32>, #blocked> loc(#loc55)
|
| 96 |
+
} loc(#loc46)
|
| 97 |
+
tt.return loc(#loc56)
|
| 98 |
+
} loc(#loc)
|
| 99 |
+
} loc(#loc)
|
| 100 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":23:28)
|
| 101 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":26:37)
|
| 102 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:47)
|
| 103 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:41)
|
| 104 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:34)
|
| 105 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":31:40)
|
| 106 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":32:31)
|
| 107 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":33:29)
|
| 108 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:52)
|
| 109 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:105)
|
| 110 |
+
#loc12 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":110:15)
|
| 111 |
+
#loc13 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":193:31)
|
| 112 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":42:40)
|
| 113 |
+
#loc15 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":112:21)
|
| 114 |
+
#loc16 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":112:16)
|
| 115 |
+
#loc17 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":113:29)
|
| 116 |
+
#loc18 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":196:19)
|
| 117 |
+
#loc19 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":196:53)
|
| 118 |
+
#loc20 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":173:29)
|
| 119 |
+
#loc21 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":196:62)
|
| 120 |
+
#loc22 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":196:39)
|
| 121 |
+
#loc23 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":199:53)
|
| 122 |
+
#loc24 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":199:62)
|
| 123 |
+
#loc25 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":199:39)
|
| 124 |
+
#loc26 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":205:24)
|
| 125 |
+
#loc27 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":205:36)
|
| 126 |
+
#loc28 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":45:54)
|
| 127 |
+
#loc29 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":46:54)
|
| 128 |
+
#loc30 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":46:8)
|
| 129 |
+
#loc31 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":123:29)
|
| 130 |
+
#loc34 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":179:46)
|
| 131 |
+
#loc35 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":180:40)
|
| 132 |
+
#loc36 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":180:68)
|
| 133 |
+
#loc37 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":180:58)
|
| 134 |
+
#loc38 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":181:42)
|
| 135 |
+
#loc39 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":181:31)
|
| 136 |
+
#loc40 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:36)
|
| 137 |
+
#loc42 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:15)
|
| 138 |
+
#loc43 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":51:16)
|
| 139 |
+
#loc44 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":62:23)
|
| 140 |
+
#loc45 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":63:29)
|
| 141 |
+
#loc46 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":52:40)
|
| 142 |
+
#loc47 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":53:31)
|
| 143 |
+
#loc48 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":54:29)
|
| 144 |
+
#loc49 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:41)
|
| 145 |
+
#loc50 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:34)
|
| 146 |
+
#loc51 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:52)
|
| 147 |
+
#loc52 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:106)
|
| 148 |
+
#loc53 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":60:22)
|
| 149 |
+
#loc54 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":61:29)
|
| 150 |
+
#loc55 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":63:53)
|
| 151 |
+
#loc56 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":52:4)
|
| 152 |
+
#loc61 = loc("xoffset"(#loc2))
|
| 153 |
+
#loc62 = loc("r0_base"(#loc3))
|
| 154 |
+
#loc63 = loc("tmp0"(#loc4))
|
| 155 |
+
#loc64 = loc("tmp0"(#loc5))
|
| 156 |
+
#loc65 = loc("tmp0"(#loc6))
|
| 157 |
+
#loc66 = loc("_tmp3_max"(#loc7))
|
| 158 |
+
#loc67 = loc("r0_index"(#loc8))
|
| 159 |
+
#loc68 = loc("r0_mask"(#loc9))
|
| 160 |
+
#loc69 = loc("tmp0"(#loc10))
|
| 161 |
+
#loc70 = loc("tmp0"(#loc11))
|
| 162 |
+
#loc71 = loc("mask"(#loc12))
|
| 163 |
+
#loc72 = loc("out_max"(#loc13))
|
| 164 |
+
#loc73 = loc("mask"(#loc15))
|
| 165 |
+
#loc74 = loc("mask"(#loc16))
|
| 166 |
+
#loc75 = loc("lhs_scale"(#loc18))
|
| 167 |
+
#loc76 = loc("lhs_scale"(#loc19))
|
| 168 |
+
#loc77 = loc("lhs_scale"(#loc21))
|
| 169 |
+
#loc78 = loc("lhs_scale"(#loc22))
|
| 170 |
+
#loc79 = loc("rhs_scale"(#loc23))
|
| 171 |
+
#loc80 = loc("rhs_scale"(#loc24))
|
| 172 |
+
#loc81 = loc("rhs_scale"(#loc25))
|
| 173 |
+
#loc82 = loc("out_sum"(#loc26))
|
| 174 |
+
#loc83 = loc("out_sum"(#loc27))
|
| 175 |
+
#loc84 = loc("_tmp3_max"(#loc28))
|
| 176 |
+
#loc85 = loc("_tmp3_sum"(#loc29))
|
| 177 |
+
#loc87 = loc("out_max_keepdim"(#loc34))
|
| 178 |
+
#loc88 = loc("delta"(#loc35))
|
| 179 |
+
#loc89 = loc("delta"(#loc36))
|
| 180 |
+
#loc90 = loc("delta"(#loc37))
|
| 181 |
+
#loc91 = loc("out_sum"(#loc38))
|
| 182 |
+
#loc92 = loc("out_sum"(#loc39))
|
| 183 |
+
#loc94 = loc("tmp4"(#loc43))
|
| 184 |
+
#loc95 = loc("tmp9"(#loc44))
|
| 185 |
+
#loc96 = loc("r0_index"(#loc47))
|
| 186 |
+
#loc97 = loc("r0_mask"(#loc48))
|
| 187 |
+
#loc98 = loc("tmp5"(#loc49))
|
| 188 |
+
#loc99 = loc("tmp5"(#loc50))
|
| 189 |
+
#loc100 = loc("tmp5"(#loc51))
|
| 190 |
+
#loc101 = loc("tmp5"(#loc52))
|
| 191 |
+
#loc102 = loc("tmp7"(#loc53))
|
| 192 |
+
#loc103 = loc("tmp8"(#loc54))
|
| 193 |
+
#loc104 = loc(fused[#loc64, #loc63])
|
| 194 |
+
#loc105 = loc("_tmp3_sum"(#loc66))
|
| 195 |
+
#loc106 = loc("mask"(#loc71))
|
| 196 |
+
#loc107 = loc(callsite(#loc72 at #loc14))
|
| 197 |
+
#loc108 = loc("mask"(#loc74))
|
| 198 |
+
#loc109 = loc(callsite(#loc75 at #loc14))
|
| 199 |
+
#loc110 = loc(callsite(#loc76 at #loc14))
|
| 200 |
+
#loc111 = loc(callsite(#loc77 at #loc14))
|
| 201 |
+
#loc112 = loc(callsite(#loc78 at #loc14))
|
| 202 |
+
#loc113 = loc(callsite(#loc79 at #loc14))
|
| 203 |
+
#loc114 = loc(callsite(#loc80 at #loc14))
|
| 204 |
+
#loc115 = loc(callsite(#loc81 at #loc14))
|
| 205 |
+
#loc116 = loc(callsite(#loc82 at #loc14))
|
| 206 |
+
#loc117 = loc(callsite(#loc83 at #loc14))
|
| 207 |
+
#loc119 = loc(callsite(#loc87 at #loc33))
|
| 208 |
+
#loc120 = loc(callsite(#loc88 at #loc33))
|
| 209 |
+
#loc121 = loc(callsite(#loc89 at #loc33))
|
| 210 |
+
#loc122 = loc(callsite(#loc90 at #loc33))
|
| 211 |
+
#loc123 = loc(callsite(#loc91 at #loc33))
|
| 212 |
+
#loc124 = loc(callsite(#loc92 at #loc33))
|
| 213 |
+
#loc126 = loc(callsite(#loc106 at #loc107))
|
| 214 |
+
#loc127 = loc(callsite(#loc73 at #loc107))
|
| 215 |
+
#loc128 = loc(callsite(#loc108 at #loc107))
|
| 216 |
+
#loc129 = loc(callsite(#loc17 at #loc107))
|
| 217 |
+
#loc130 = loc(callsite(#loc20 at #loc111))
|
| 218 |
+
#loc131 = loc(callsite(#loc20 at #loc114))
|
| 219 |
+
#loc132 = loc(callsite(#loc31 at #loc118))
|
| 220 |
+
#loc134 = loc(callsite(#loc20 at #loc123))
|
| 221 |
+
#loc135 = loc(callsite(#loc40 at #loc125))
|
| 222 |
+
#loc137 = loc(callsite(#loc106 at #loc132))
|
| 223 |
+
#loc138 = loc(callsite(#loc73 at #loc132))
|
| 224 |
+
#loc139 = loc(callsite(#loc108 at #loc132))
|
| 225 |
+
#loc140 = loc(callsite(#loc17 at #loc132))
|
| 226 |
+
#loc141 = loc(callsite(#loc42 at #loc135))
|
SpecForge-ext/cache/compiled_kernels/triton/3/C3FCZCDEMCLSFODWXLEH5MRAQRWLOTRP4SAQURVAE7BPHZSTV2WQ/triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0.ttir
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":18:0)
|
| 2 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":49:33)
|
| 3 |
+
#loc3 = loc(unknown)
|
| 4 |
+
#loc35 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":178:28)
|
| 5 |
+
#loc42 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":181:58)
|
| 6 |
+
#loc59 = loc("in_ptr0"(#loc))
|
| 7 |
+
#loc60 = loc("out_ptr2"(#loc))
|
| 8 |
+
#loc61 = loc("xnumel"(#loc))
|
| 9 |
+
#loc62 = loc("r0_numel"(#loc))
|
| 10 |
+
#loc90 = loc("out_max"(#loc35))
|
| 11 |
+
#loc96 = loc("out_sum"(#loc42))
|
| 12 |
+
#loc123 = loc(callsite(#loc90 at #loc2))
|
| 13 |
+
#loc129 = loc(callsite(#loc96 at #loc2))
|
| 14 |
+
#loc138 = loc(callsite(#loc3 at #loc123))
|
| 15 |
+
#loc141 = loc(callsite(#loc3 at #loc129))
|
| 16 |
+
module {
|
| 17 |
+
tt.func public @triton_red_fused__softmax__to_copy_exp_prepare_softmax_online_sub_0(%in_ptr0: !tt.ptr<bf16> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %out_ptr2: !tt.ptr<f32> {tt.divisibility = 16 : i32} loc("out_ptr2"(#loc)), %xnumel: i32 {tt.divisibility = 16 : i32} loc("xnumel"(#loc)), %r0_numel: i32 {tt.divisibility = 16 : i32} loc("r0_numel"(#loc))) attributes {noinline = false} {
|
| 18 |
+
%delta = arith.constant dense<0xFF800000> : tensor<1x1xf32> loc(#loc108)
|
| 19 |
+
%cst = arith.constant dense<1.000000e+00> : tensor<1x2048xf32> loc(#loc3)
|
| 20 |
+
%cst_0 = arith.constant dense<0.000000e+00> : tensor<1x2048xf32> loc(#loc3)
|
| 21 |
+
%cst_1 = arith.constant dense<0.000000e+00> : tensor<1x2048xbf16> loc(#loc3)
|
| 22 |
+
%c2048_i32 = arith.constant 2048 : i32 loc(#loc3)
|
| 23 |
+
%c32000_i32 = arith.constant 32000 : i32 loc(#loc3)
|
| 24 |
+
%c0_i32 = arith.constant 0 : i32 loc(#loc3)
|
| 25 |
+
%cst_2 = arith.constant dense<32000> : tensor<1x2048xi32> loc(#loc3)
|
| 26 |
+
%cst_3 = arith.constant dense<0xFF800000> : tensor<1x2048xf32> loc(#loc3)
|
| 27 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc64)
|
| 28 |
+
%r0_base = tt.make_range {end = 2048 : i32, start = 0 : i32} : tensor<2048xi32> loc(#loc65)
|
| 29 |
+
%r0_base_4 = tt.expand_dims %r0_base {axis = 0 : i32} : tensor<2048xi32> -> tensor<1x2048xi32> loc(#loc66)
|
| 30 |
+
%_tmp3_sum:2 = scf.for %r0_offset = %c0_i32 to %c32000_i32 step %c2048_i32 iter_args(%_tmp3_max = %cst_3, %_tmp3_sum_12 = %cst_0) -> (tensor<1x2048xf32>, tensor<1x2048xf32>) : i32 {
|
| 31 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x2048xi32> loc(#loc68)
|
| 32 |
+
%r0_index_13 = arith.addi %r0_index, %r0_base_4 : tensor<1x2048xi32> loc(#loc68)
|
| 33 |
+
%r0_mask = arith.cmpi slt, %r0_index_13, %cst_2 : tensor<1x2048xi32> loc(#loc69)
|
| 34 |
+
%tmp0 = arith.muli %xoffset, %c32000_i32 : i32 loc(#loc70)
|
| 35 |
+
%tmp0_14 = tt.splat %tmp0 : i32 -> tensor<1x2048xi32> loc(#loc110)
|
| 36 |
+
%tmp0_15 = arith.addi %r0_index_13, %tmp0_14 : tensor<1x2048xi32> loc(#loc71)
|
| 37 |
+
%tmp0_16 = tt.splat %in_ptr0 : !tt.ptr<bf16> -> tensor<1x2048x!tt.ptr<bf16>> loc(#loc72)
|
| 38 |
+
%tmp0_17 = tt.addptr %tmp0_16, %tmp0_15 : tensor<1x2048x!tt.ptr<bf16>>, tensor<1x2048xi32> loc(#loc72)
|
| 39 |
+
%tmp0_18 = tt.load %tmp0_17, %r0_mask, %cst_1 evictionPolicy = evict_last : tensor<1x2048x!tt.ptr<bf16>> loc(#loc73)
|
| 40 |
+
%tmp0_19 = arith.extf %tmp0_18 : tensor<1x2048xbf16> to tensor<1x2048xf32> loc(#loc74)
|
| 41 |
+
%mask = arith.cmpf ogt, %_tmp3_max, %tmp0_19 : tensor<1x2048xf32> loc(#loc131)
|
| 42 |
+
%mask_20 = arith.cmpf une, %_tmp3_max, %_tmp3_max : tensor<1x2048xf32> loc(#loc132)
|
| 43 |
+
%mask_21 = arith.ori %mask, %mask_20 : tensor<1x2048xi1> loc(#loc133)
|
| 44 |
+
%out_max_22 = arith.select %mask_21, %_tmp3_max, %tmp0_19 : tensor<1x2048xi1>, tensor<1x2048xf32> loc(#loc134)
|
| 45 |
+
%lhs_scale = arith.cmpf oeq, %out_max_22, %cst_3 : tensor<1x2048xf32> loc(#loc114)
|
| 46 |
+
%lhs_scale_23 = arith.subf %_tmp3_max, %out_max_22 : tensor<1x2048xf32> loc(#loc115)
|
| 47 |
+
%lhs_scale_24 = tt.extern_elementwise %lhs_scale_23 {libname = "", libpath = "", pure = true, symbol = "__nv_expf"} : (tensor<1x2048xf32>) -> tensor<1x2048xf32> loc(#loc135)
|
| 48 |
+
%lhs_scale_25 = arith.select %lhs_scale, %cst, %lhs_scale_24 : tensor<1x2048xi1>, tensor<1x2048xf32> loc(#loc117)
|
| 49 |
+
%rhs_scale = arith.subf %tmp0_19, %out_max_22 : tensor<1x2048xf32> loc(#loc118)
|
| 50 |
+
%rhs_scale_26 = tt.extern_elementwise %rhs_scale {libname = "", libpath = "", pure = true, symbol = "__nv_expf"} : (tensor<1x2048xf32>) -> tensor<1x2048xf32> loc(#loc136)
|
| 51 |
+
%rhs_scale_27 = arith.select %lhs_scale, %cst, %rhs_scale_26 : tensor<1x2048xi1>, tensor<1x2048xf32> loc(#loc120)
|
| 52 |
+
%out_sum_28 = arith.mulf %_tmp3_sum_12, %lhs_scale_25 : tensor<1x2048xf32> loc(#loc121)
|
| 53 |
+
%out_sum_29 = arith.addf %out_sum_28, %rhs_scale_27 : tensor<1x2048xf32> loc(#loc122)
|
| 54 |
+
%_tmp3_max_30 = arith.select %r0_mask, %out_max_22, %_tmp3_max : tensor<1x2048xi1>, tensor<1x2048xf32> loc(#loc88)
|
| 55 |
+
%_tmp3_sum_31 = arith.select %r0_mask, %out_sum_29, %_tmp3_sum_12 : tensor<1x2048xi1>, tensor<1x2048xf32> loc(#loc89)
|
| 56 |
+
scf.yield %_tmp3_max_30, %_tmp3_sum_31 : tensor<1x2048xf32>, tensor<1x2048xf32> loc(#loc33)
|
| 57 |
+
} loc(#loc109)
|
| 58 |
+
%out_max = "tt.reduce"(%_tmp3_sum#0) <{axis = 1 : i32}> ({
|
| 59 |
+
^bb0(%out_max_12: f32 loc(callsite(#loc3 at #loc123)), %out_max_13: f32 loc(callsite(#loc3 at #loc123))):
|
| 60 |
+
%mask = arith.cmpf ogt, %out_max_12, %out_max_13 : f32 loc(#loc142)
|
| 61 |
+
%mask_14 = arith.cmpf une, %out_max_12, %out_max_12 : f32 loc(#loc143)
|
| 62 |
+
%mask_15 = arith.ori %mask, %mask_14 : i1 loc(#loc144)
|
| 63 |
+
%out_max_16 = arith.select %mask_15, %out_max_12, %out_max_13 : f32 loc(#loc145)
|
| 64 |
+
tt.reduce.return %out_max_16 : f32 loc(#loc137)
|
| 65 |
+
}) : (tensor<1x2048xf32>) -> tensor<1xf32> loc(#loc137)
|
| 66 |
+
%out_max_keepdim = tt.expand_dims %out_max {axis = 1 : i32} : tensor<1xf32> -> tensor<1x1xf32> loc(#loc124)
|
| 67 |
+
%delta_5 = arith.cmpf oeq, %out_max_keepdim, %delta : tensor<1x1xf32> loc(#loc108)
|
| 68 |
+
%delta_6 = tt.broadcast %out_max_keepdim : tensor<1x1xf32> -> tensor<1x2048xf32> loc(#loc125)
|
| 69 |
+
%delta_7 = arith.subf %_tmp3_sum#0, %delta_6 : tensor<1x2048xf32> loc(#loc125)
|
| 70 |
+
%delta_8 = tt.broadcast %delta_5 : tensor<1x1xi1> -> tensor<1x2048xi1> loc(#loc126)
|
| 71 |
+
%delta_9 = arith.select %delta_8, %cst_0, %delta_7 : tensor<1x2048xi1>, tensor<1x2048xf32> loc(#loc126)
|
| 72 |
+
%out_sum = tt.extern_elementwise %delta_9 {libname = "", libpath = "", pure = true, symbol = "__nv_expf"} : (tensor<1x2048xf32>) -> tensor<1x2048xf32> loc(#loc139)
|
| 73 |
+
%out_sum_10 = arith.mulf %_tmp3_sum#1, %out_sum : tensor<1x2048xf32> loc(#loc128)
|
| 74 |
+
%out_sum_11 = "tt.reduce"(%out_sum_10) <{axis = 1 : i32}> ({
|
| 75 |
+
^bb0(%out_sum_12: f32 loc(callsite(#loc3 at #loc129)), %out_sum_13: f32 loc(callsite(#loc3 at #loc129))):
|
| 76 |
+
%out_sum_14 = arith.addf %out_sum_12, %out_sum_13 : f32 loc(#loc146)
|
| 77 |
+
tt.reduce.return %out_sum_14 : f32 loc(#loc140)
|
| 78 |
+
}) : (tensor<1x2048xf32>) -> tensor<1xf32> loc(#loc140)
|
| 79 |
+
%tmp4 = tt.expand_dims %out_sum_11 {axis = 1 : i32} : tensor<1xf32> -> tensor<1x1xf32> loc(#loc97)
|
| 80 |
+
scf.for %r0_offset = %c0_i32 to %c32000_i32 step %c2048_i32 : i32 {
|
| 81 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x2048xi32> loc(#loc98)
|
| 82 |
+
%r0_index_12 = arith.addi %r0_index, %r0_base_4 : tensor<1x2048xi32> loc(#loc98)
|
| 83 |
+
%r0_mask = arith.cmpi slt, %r0_index_12, %cst_2 : tensor<1x2048xi32> loc(#loc99)
|
| 84 |
+
%tmp5 = arith.muli %xoffset, %c32000_i32 : i32 loc(#loc100)
|
| 85 |
+
%tmp5_13 = tt.splat %tmp5 : i32 -> tensor<1x2048xi32> loc(#loc130)
|
| 86 |
+
%tmp5_14 = arith.addi %r0_index_12, %tmp5_13 : tensor<1x2048xi32> loc(#loc101)
|
| 87 |
+
%tmp5_15 = tt.splat %in_ptr0 : !tt.ptr<bf16> -> tensor<1x2048x!tt.ptr<bf16>> loc(#loc102)
|
| 88 |
+
%tmp5_16 = tt.addptr %tmp5_15, %tmp5_14 : tensor<1x2048x!tt.ptr<bf16>>, tensor<1x2048xi32> loc(#loc102)
|
| 89 |
+
%tmp5_17 = tt.load %tmp5_16, %r0_mask, %cst_1 evictionPolicy = evict_first : tensor<1x2048x!tt.ptr<bf16>> loc(#loc103)
|
| 90 |
+
%tmp5_18 = arith.extf %tmp5_17 : tensor<1x2048xbf16> to tensor<1x2048xf32> loc(#loc104)
|
| 91 |
+
%tmp7 = arith.subf %tmp5_18, %delta_6 : tensor<1x2048xf32> loc(#loc105)
|
| 92 |
+
%tmp8 = tt.extern_elementwise %tmp7 {libname = "", libpath = "", pure = true, symbol = "__nv_expf"} : (tensor<1x2048xf32>) -> tensor<1x2048xf32> loc(#loc106)
|
| 93 |
+
%tmp9 = tt.broadcast %tmp4 : tensor<1x1xf32> -> tensor<1x2048xf32> loc(#loc107)
|
| 94 |
+
%tmp9_19 = arith.divf %tmp8, %tmp9 : tensor<1x2048xf32> loc(#loc107)
|
| 95 |
+
%0 = tt.splat %out_ptr2 : !tt.ptr<f32> -> tensor<1x2048x!tt.ptr<f32>> loc(#loc56)
|
| 96 |
+
%1 = tt.addptr %0, %tmp5_14 : tensor<1x2048x!tt.ptr<f32>>, tensor<1x2048xi32> loc(#loc56)
|
| 97 |
+
tt.store %1, %tmp9_19, %r0_mask : tensor<1x2048x!tt.ptr<f32>> loc(#loc57)
|
| 98 |
+
} loc(#loc45)
|
| 99 |
+
tt.return loc(#loc58)
|
| 100 |
+
} loc(#loc)
|
| 101 |
+
} loc(#loc)
|
| 102 |
+
#loc1 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":180:40)
|
| 103 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":23:28)
|
| 104 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":26:27)
|
| 105 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":26:37)
|
| 106 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":31:40)
|
| 107 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":32:31)
|
| 108 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":33:29)
|
| 109 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:47)
|
| 110 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:41)
|
| 111 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:34)
|
| 112 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:52)
|
| 113 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":37:105)
|
| 114 |
+
#loc15 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":110:15)
|
| 115 |
+
#loc16 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":193:31)
|
| 116 |
+
#loc17 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":42:40)
|
| 117 |
+
#loc18 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":112:21)
|
| 118 |
+
#loc19 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":112:16)
|
| 119 |
+
#loc20 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":113:29)
|
| 120 |
+
#loc21 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":196:19)
|
| 121 |
+
#loc22 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":196:53)
|
| 122 |
+
#loc23 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":173:29)
|
| 123 |
+
#loc24 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":196:62)
|
| 124 |
+
#loc25 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":196:39)
|
| 125 |
+
#loc26 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":199:53)
|
| 126 |
+
#loc27 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":199:62)
|
| 127 |
+
#loc28 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":199:39)
|
| 128 |
+
#loc29 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":205:24)
|
| 129 |
+
#loc30 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":205:36)
|
| 130 |
+
#loc31 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":45:54)
|
| 131 |
+
#loc32 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":46:54)
|
| 132 |
+
#loc33 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":46:8)
|
| 133 |
+
#loc34 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":123:29)
|
| 134 |
+
#loc36 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":179:46)
|
| 135 |
+
#loc37 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":180:68)
|
| 136 |
+
#loc38 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":180:58)
|
| 137 |
+
#loc39 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":181:42)
|
| 138 |
+
#loc40 = loc("/workspace/specforge/lib/python3.11/site-packages/torch/_inductor/runtime/triton_helpers.py":181:31)
|
| 139 |
+
#loc41 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:36)
|
| 140 |
+
#loc43 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:15)
|
| 141 |
+
#loc44 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":51:16)
|
| 142 |
+
#loc45 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":52:40)
|
| 143 |
+
#loc46 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":53:31)
|
| 144 |
+
#loc47 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":54:29)
|
| 145 |
+
#loc48 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:47)
|
| 146 |
+
#loc49 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:41)
|
| 147 |
+
#loc50 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:34)
|
| 148 |
+
#loc51 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:52)
|
| 149 |
+
#loc52 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":58:106)
|
| 150 |
+
#loc53 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":60:22)
|
| 151 |
+
#loc54 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":61:29)
|
| 152 |
+
#loc55 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":62:23)
|
| 153 |
+
#loc56 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":63:29)
|
| 154 |
+
#loc57 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":63:53)
|
| 155 |
+
#loc58 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/vx/cvxtbxicic4ombm2d2flczxydkol2l2ffr4qtot3rrznjz7bhngf.py":52:4)
|
| 156 |
+
#loc63 = loc("delta"(#loc1))
|
| 157 |
+
#loc64 = loc("xoffset"(#loc4))
|
| 158 |
+
#loc65 = loc("r0_base"(#loc5))
|
| 159 |
+
#loc66 = loc("r0_base"(#loc6))
|
| 160 |
+
#loc67 = loc("_tmp3_max"(#loc7))
|
| 161 |
+
#loc68 = loc("r0_index"(#loc8))
|
| 162 |
+
#loc69 = loc("r0_mask"(#loc9))
|
| 163 |
+
#loc70 = loc("tmp0"(#loc10))
|
| 164 |
+
#loc71 = loc("tmp0"(#loc11))
|
| 165 |
+
#loc72 = loc("tmp0"(#loc12))
|
| 166 |
+
#loc73 = loc("tmp0"(#loc13))
|
| 167 |
+
#loc74 = loc("tmp0"(#loc14))
|
| 168 |
+
#loc75 = loc("mask"(#loc15))
|
| 169 |
+
#loc76 = loc("out_max"(#loc16))
|
| 170 |
+
#loc77 = loc("mask"(#loc18))
|
| 171 |
+
#loc78 = loc("mask"(#loc19))
|
| 172 |
+
#loc79 = loc("lhs_scale"(#loc21))
|
| 173 |
+
#loc80 = loc("lhs_scale"(#loc22))
|
| 174 |
+
#loc81 = loc("lhs_scale"(#loc24))
|
| 175 |
+
#loc82 = loc("lhs_scale"(#loc25))
|
| 176 |
+
#loc83 = loc("rhs_scale"(#loc26))
|
| 177 |
+
#loc84 = loc("rhs_scale"(#loc27))
|
| 178 |
+
#loc85 = loc("rhs_scale"(#loc28))
|
| 179 |
+
#loc86 = loc("out_sum"(#loc29))
|
| 180 |
+
#loc87 = loc("out_sum"(#loc30))
|
| 181 |
+
#loc88 = loc("_tmp3_max"(#loc31))
|
| 182 |
+
#loc89 = loc("_tmp3_sum"(#loc32))
|
| 183 |
+
#loc91 = loc("out_max_keepdim"(#loc36))
|
| 184 |
+
#loc92 = loc("delta"(#loc37))
|
| 185 |
+
#loc93 = loc("delta"(#loc38))
|
| 186 |
+
#loc94 = loc("out_sum"(#loc39))
|
| 187 |
+
#loc95 = loc("out_sum"(#loc40))
|
| 188 |
+
#loc97 = loc("tmp4"(#loc44))
|
| 189 |
+
#loc98 = loc("r0_index"(#loc46))
|
| 190 |
+
#loc99 = loc("r0_mask"(#loc47))
|
| 191 |
+
#loc100 = loc("tmp5"(#loc48))
|
| 192 |
+
#loc101 = loc("tmp5"(#loc49))
|
| 193 |
+
#loc102 = loc("tmp5"(#loc50))
|
| 194 |
+
#loc103 = loc("tmp5"(#loc51))
|
| 195 |
+
#loc104 = loc("tmp5"(#loc52))
|
| 196 |
+
#loc105 = loc("tmp7"(#loc53))
|
| 197 |
+
#loc106 = loc("tmp8"(#loc54))
|
| 198 |
+
#loc107 = loc("tmp9"(#loc55))
|
| 199 |
+
#loc108 = loc(callsite(#loc63 at #loc2))
|
| 200 |
+
#loc109 = loc("_tmp3_sum"(#loc67))
|
| 201 |
+
#loc110 = loc(fused[#loc71, #loc70])
|
| 202 |
+
#loc111 = loc("mask"(#loc75))
|
| 203 |
+
#loc112 = loc(callsite(#loc76 at #loc17))
|
| 204 |
+
#loc113 = loc("mask"(#loc78))
|
| 205 |
+
#loc114 = loc(callsite(#loc79 at #loc17))
|
| 206 |
+
#loc115 = loc(callsite(#loc80 at #loc17))
|
| 207 |
+
#loc116 = loc(callsite(#loc81 at #loc17))
|
| 208 |
+
#loc117 = loc(callsite(#loc82 at #loc17))
|
| 209 |
+
#loc118 = loc(callsite(#loc83 at #loc17))
|
| 210 |
+
#loc119 = loc(callsite(#loc84 at #loc17))
|
| 211 |
+
#loc120 = loc(callsite(#loc85 at #loc17))
|
| 212 |
+
#loc121 = loc(callsite(#loc86 at #loc17))
|
| 213 |
+
#loc122 = loc(callsite(#loc87 at #loc17))
|
| 214 |
+
#loc124 = loc(callsite(#loc91 at #loc2))
|
| 215 |
+
#loc125 = loc(callsite(#loc92 at #loc2))
|
| 216 |
+
#loc126 = loc(callsite(#loc93 at #loc2))
|
| 217 |
+
#loc127 = loc(callsite(#loc94 at #loc2))
|
| 218 |
+
#loc128 = loc(callsite(#loc95 at #loc2))
|
| 219 |
+
#loc130 = loc(fused[#loc101, #loc100])
|
| 220 |
+
#loc131 = loc(callsite(#loc111 at #loc112))
|
| 221 |
+
#loc132 = loc(callsite(#loc77 at #loc112))
|
| 222 |
+
#loc133 = loc(callsite(#loc113 at #loc112))
|
| 223 |
+
#loc134 = loc(callsite(#loc20 at #loc112))
|
| 224 |
+
#loc135 = loc(callsite(#loc23 at #loc116))
|
| 225 |
+
#loc136 = loc(callsite(#loc23 at #loc119))
|
| 226 |
+
#loc137 = loc(callsite(#loc34 at #loc123))
|
| 227 |
+
#loc139 = loc(callsite(#loc23 at #loc127))
|
| 228 |
+
#loc140 = loc(callsite(#loc41 at #loc129))
|
| 229 |
+
#loc142 = loc(callsite(#loc111 at #loc137))
|
| 230 |
+
#loc143 = loc(callsite(#loc77 at #loc137))
|
| 231 |
+
#loc144 = loc(callsite(#loc113 at #loc137))
|
| 232 |
+
#loc145 = loc(callsite(#loc20 at #loc137))
|
| 233 |
+
#loc146 = loc(callsite(#loc43 at #loc140))
|
SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/__grp__triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"child_paths": {"triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.source": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.source", "triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.ttir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.ttir", "triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.ttgir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.ttgir", "triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.llir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.llir", "triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.ptx": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.ptx", "triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.cubin": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.cubin", "triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.json": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.json"}}
|
SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.cubin
ADDED
|
Binary file (28.9 kB). View file
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"hash": "193d794b0b97c3631a5ca3b76996d9137ceae2e83b0d9eaa3f7ef16cdd7504c7", "target": {"backend": "cuda", "arch": 90, "warp_size": 32}, "num_warps": 16, "num_ctas": 1, "num_stages": 1, "warp_size": 32, "maxnreg": null, "cluster_dims": [1, 1, 1], "ptx_version": null, "ptx_options": null, "ir_override": null, "enable_fp_fusion": true, "launch_cooperative_grid": false, "launch_pdl": false, "supported_fp8_dtypes": ["fp8e4b15", "fp8e4nv", "fp8e5"], "deprecated_fp8_dot_operand_dtypes": ["fp8e4b15"], "default_dot_input_precision": "tf32", "allowed_dot_input_precisions": ["tf32", "tf32x3", "ieee"], "max_num_imprecise_acc_default": 1073741824, "extern_libs": [["libdevice", "/workspace/specforge/lib/python3.11/site-packages/triton/backends/nvidia/lib/libdevice.10.bc"]], "debug": true, "backend_name": "cuda", "sanitize_overflow": false, "arch": "sm90", "instrumentation_mode": "", "triton_version": "3.5.1", "tensordesc_meta": [], "shared": 128, "tmem_size": 0, "global_scratch_size": 0, "global_scratch_align": 1, "profile_scratch_size": 0, "profile_scratch_align": 1, "name": "triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1"}
|
SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.llir
ADDED
|
@@ -0,0 +1,318 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
; ModuleID = 'LLVMDialectModule'
|
| 2 |
+
source_filename = "LLVMDialectModule"
|
| 3 |
+
target datalayout = "e-p3:32:32-p4:32:32-p5:32:32-p6:32:32-p7:32:32-i64:64-i128:128-v16:16-v32:32-n16:32:64"
|
| 4 |
+
|
| 5 |
+
@global_smem = external addrspace(3) global [0 x i8], align 16
|
| 6 |
+
|
| 7 |
+
; Function Attrs: nounwind
|
| 8 |
+
define ptx_kernel void @triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1(ptr addrspace(1) %0, ptr addrspace(1) %1, ptr addrspace(1) %2, i64 %3, i64 %4, i64 %5, i64 %6, i64 %7, i64 %8, i32 %9, i32 %10, ptr addrspace(1) readnone captures(none) %11, ptr addrspace(1) readnone captures(none) %12) local_unnamed_addr #0 !dbg !4 {
|
| 9 |
+
%14 = tail call i32 @llvm.nvvm.read.ptx.sreg.ctaid.x(), !dbg !7
|
| 10 |
+
%15 = icmp slt i32 %14, %9, !dbg !8
|
| 11 |
+
%16 = tail call i32 @llvm.nvvm.read.ptx.sreg.tid.x(), !dbg !9
|
| 12 |
+
%17 = and i32 %16, 384, !dbg !9
|
| 13 |
+
%18 = zext nneg i32 %14 to i64, !dbg !10
|
| 14 |
+
%.frozen = freeze i64 %3, !dbg !10
|
| 15 |
+
%19 = sdiv i64 %18, %.frozen, !dbg !10
|
| 16 |
+
%20 = srem i64 %19, %4, !dbg !11
|
| 17 |
+
%21 = mul i64 %19, %.frozen, !dbg !12
|
| 18 |
+
%.decomposed = sub i64 %18, %21, !dbg !12
|
| 19 |
+
%22 = sdiv i64 %18, %7, !dbg !13
|
| 20 |
+
%23 = shl nsw i64 %20, 7, !dbg !14
|
| 21 |
+
%24 = shl nuw nsw i64 %.decomposed, 7, !dbg !15
|
| 22 |
+
%25 = getelementptr i64, ptr addrspace(1) %0, i64 %22, !dbg !16
|
| 23 |
+
%26 = and i32 %16, 127
|
| 24 |
+
%27 = zext nneg i32 %26 to i64
|
| 25 |
+
%28 = or disjoint i64 %24, %27
|
| 26 |
+
%29 = icmp slt i64 %28, %6
|
| 27 |
+
%30 = icmp sge i64 %28, %8
|
| 28 |
+
%31 = tail call i64 @llvm.smin.i64(i64 %8, i64 0)
|
| 29 |
+
%32 = sub nsw i64 %.decomposed, %20
|
| 30 |
+
%33 = shl nsw i64 %32, 7
|
| 31 |
+
%34 = zext nneg i32 %17 to i64, !dbg !17
|
| 32 |
+
%35 = zext nneg i32 %26 to i64, !dbg !17
|
| 33 |
+
%36 = zext nneg i32 %16 to i64, !dbg !17
|
| 34 |
+
%37 = insertelement <2 x i1> poison, i1 %15, i64 0, !dbg !18
|
| 35 |
+
%38 = shufflevector <2 x i1> %37, <2 x i1> poison, <2 x i32> zeroinitializer, !dbg !18
|
| 36 |
+
%39 = insertelement <2 x i1> poison, i1 %29, i64 0, !dbg !19
|
| 37 |
+
%40 = shufflevector <2 x i1> %39, <2 x i1> poison, <2 x i32> zeroinitializer, !dbg !19
|
| 38 |
+
%41 = insertelement <2 x i64> poison, i64 %23, i64 0, !dbg !20
|
| 39 |
+
%42 = shufflevector <2 x i64> %41, <2 x i64> poison, <2 x i32> zeroinitializer, !dbg !20
|
| 40 |
+
%43 = insertelement <2 x i64> poison, i64 %5, i64 0, !dbg !21
|
| 41 |
+
%44 = shufflevector <2 x i64> %43, <2 x i64> poison, <2 x i32> zeroinitializer, !dbg !21
|
| 42 |
+
%45 = insertelement <2 x i64> poison, i64 %28, i64 0, !dbg !22
|
| 43 |
+
%46 = shufflevector <2 x i64> %45, <2 x i64> poison, <2 x i32> zeroinitializer, !dbg !22
|
| 44 |
+
%47 = insertelement <2 x i1> poison, i1 %30, i64 0, !dbg !23
|
| 45 |
+
%48 = shufflevector <2 x i1> %47, <2 x i1> poison, <2 x i32> zeroinitializer, !dbg !23
|
| 46 |
+
%49 = insertelement <2 x i64> poison, i64 %33, i64 0, !dbg !24
|
| 47 |
+
%50 = shufflevector <2 x i64> %49, <2 x i64> poison, <2 x i32> zeroinitializer, !dbg !24
|
| 48 |
+
%51 = insertelement <2 x i64> poison, i64 %8, i64 0, !dbg !25
|
| 49 |
+
%52 = shufflevector <2 x i64> %51, <2 x i64> poison, <2 x i32> zeroinitializer, !dbg !25
|
| 50 |
+
br label %53, !dbg !17
|
| 51 |
+
|
| 52 |
+
53: ; preds = %13, %53
|
| 53 |
+
%indvars.iv = phi i64 [ 0, %13 ], [ %indvars.iv.next, %53 ]
|
| 54 |
+
%54 = phi <2 x i64> [ zeroinitializer, %13 ], [ %113, %53 ]
|
| 55 |
+
%55 = or disjoint i64 %indvars.iv, %34, !dbg !26
|
| 56 |
+
%56 = or disjoint i64 %indvars.iv, %36, !dbg !26
|
| 57 |
+
%57 = lshr exact i64 %55, 7, !dbg !27
|
| 58 |
+
%58 = lshr i64 %56, 7, !dbg !27
|
| 59 |
+
%59 = trunc nuw nsw i64 %58 to i32, !dbg !27
|
| 60 |
+
%60 = or i32 %59, 4, !dbg !27
|
| 61 |
+
%61 = zext nneg i32 %60 to i64, !dbg !20
|
| 62 |
+
%62 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #5, !dbg !28
|
| 63 |
+
%63 = sub nsw i64 %35, %57, !dbg !29
|
| 64 |
+
%64 = sub nsw i32 %26, %60, !dbg !29
|
| 65 |
+
%65 = sext i32 %64 to i64, !dbg !30
|
| 66 |
+
%66 = insertelement <2 x i64> poison, i64 %57, i64 0, !dbg !20
|
| 67 |
+
%67 = insertelement <2 x i64> %66, i64 %61, i64 1, !dbg !20
|
| 68 |
+
%68 = or disjoint <2 x i64> %42, %67, !dbg !20
|
| 69 |
+
%69 = icmp slt <2 x i64> %68, %44, !dbg !21
|
| 70 |
+
%70 = and <2 x i1> %40, %69, !dbg !19
|
| 71 |
+
%71 = icmp sge <2 x i64> %68, %46, !dbg !22
|
| 72 |
+
%72 = extractelement <2 x i1> %70, i64 0, !dbg !31
|
| 73 |
+
%73 = and i1 %15, %72, !dbg !31
|
| 74 |
+
%74 = extractelement <2 x i1> %70, i64 1, !dbg !31
|
| 75 |
+
%75 = and i1 %15, %74, !dbg !31
|
| 76 |
+
%76 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b64 { $0 }, [ $1 + 0 ], $2;", "=l,l,l,b"(ptr addrspace(1) %25, i64 %62, i1 %73) #5, !dbg !28
|
| 77 |
+
%77 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09createpolicy.fractional.L2::evict_last.b64 $0, 1.0;", "=l"() #5, !dbg !28
|
| 78 |
+
%78 = tail call i64 asm sideeffect "mov.u64 $0, 0x0;\0A\09@$3 ld.global.L1::evict_last.L2::cache_hint.b64 { $0 }, [ $1 + 0 ], $2;", "=l,l,l,b"(ptr addrspace(1) %25, i64 %77, i1 %75) #5, !dbg !28
|
| 79 |
+
%79 = insertelement <2 x i64> poison, i64 %76, i64 0, !dbg !32
|
| 80 |
+
%80 = insertelement <2 x i64> %79, i64 %78, i64 1, !dbg !32
|
| 81 |
+
%81 = icmp slt <2 x i64> %46, %80, !dbg !32
|
| 82 |
+
%82 = icmp slt <2 x i64> %68, %80, !dbg !33
|
| 83 |
+
%83 = and <2 x i1> %81, %82, !dbg !34
|
| 84 |
+
%84 = and <2 x i1> %71, %83, !dbg !35
|
| 85 |
+
%85 = srem i64 %28, %8, !dbg !36
|
| 86 |
+
%.not = icmp eq i64 %85, 0, !dbg !37
|
| 87 |
+
%86 = select i1 %.not, i64 0, i64 %31, !dbg !38
|
| 88 |
+
%87 = add nsw i64 %86, %85, !dbg !38
|
| 89 |
+
%88 = insertelement <2 x i64> poison, i64 %87, i64 0, !dbg !39
|
| 90 |
+
%89 = shufflevector <2 x i64> %88, <2 x i64> poison, <2 x i32> zeroinitializer, !dbg !39
|
| 91 |
+
%90 = icmp slt <2 x i64> %89, %80, !dbg !39
|
| 92 |
+
%91 = insertelement <2 x i64> poison, i64 %63, i64 0, !dbg !24
|
| 93 |
+
%92 = insertelement <2 x i64> %91, i64 %65, i64 1, !dbg !24
|
| 94 |
+
%93 = add nsw <2 x i64> %50, %92, !dbg !24
|
| 95 |
+
%94 = srem <2 x i64> %93, %52, !dbg !25
|
| 96 |
+
%95 = icmp ne <2 x i64> %94, zeroinitializer, !dbg !40
|
| 97 |
+
%96 = extractelement <2 x i64> %94, i64 0, !dbg !41
|
| 98 |
+
%97 = xor i64 %96, %8, !dbg !41
|
| 99 |
+
%98 = extractelement <2 x i64> %94, i64 1, !dbg !41
|
| 100 |
+
%99 = xor i64 %98, %8, !dbg !41
|
| 101 |
+
%100 = insertelement <2 x i64> poison, i64 %97, i64 0, !dbg !41
|
| 102 |
+
%101 = insertelement <2 x i64> %100, i64 %99, i64 1, !dbg !41
|
| 103 |
+
%102 = icmp slt <2 x i64> %101, zeroinitializer, !dbg !41
|
| 104 |
+
%103 = and <2 x i1> %95, %102, !dbg !42
|
| 105 |
+
%104 = select <2 x i1> %103, <2 x i64> %52, <2 x i64> zeroinitializer, !dbg !43
|
| 106 |
+
%105 = sub <2 x i64> zeroinitializer, %104, !dbg !44
|
| 107 |
+
%106 = icmp eq <2 x i64> %94, %105, !dbg !44
|
| 108 |
+
%107 = and <2 x i1> %90, %106, !dbg !23
|
| 109 |
+
%108 = and <2 x i1> %48, %107, !dbg !23
|
| 110 |
+
%109 = or <2 x i1> %84, %108, !dbg !45
|
| 111 |
+
%110 = select <2 x i1> %38, <2 x i1> %70, <2 x i1> zeroinitializer, !dbg !18
|
| 112 |
+
%111 = select <2 x i1> %110, <2 x i1> %109, <2 x i1> zeroinitializer, !dbg !18
|
| 113 |
+
%112 = zext <2 x i1> %111 to <2 x i64>, !dbg !18
|
| 114 |
+
%113 = add <2 x i64> %54, %112, !dbg !18
|
| 115 |
+
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1024, !dbg !17
|
| 116 |
+
%114 = icmp samesign ult i64 %indvars.iv, 15360, !dbg !17
|
| 117 |
+
br i1 %114, label %53, label %115, !dbg !17
|
| 118 |
+
|
| 119 |
+
115: ; preds = %53
|
| 120 |
+
%116 = and i32 %16, 31, !dbg !9
|
| 121 |
+
%117 = lshr i32 %16, 5, !dbg !9
|
| 122 |
+
%shift = shufflevector <2 x i64> %113, <2 x i64> poison, <2 x i32> <i32 1, i32 poison>, !dbg !46
|
| 123 |
+
%foldExtExtBinop = add <2 x i64> %113, %shift, !dbg !46
|
| 124 |
+
%118 = extractelement <2 x i64> %foldExtExtBinop, i64 0, !dbg !46
|
| 125 |
+
%119 = bitcast <2 x i64> %foldExtExtBinop to <4 x i32>, !dbg !50
|
| 126 |
+
%120 = extractelement <4 x i32> %119, i64 1, !dbg !50
|
| 127 |
+
%121 = trunc i64 %118 to i32, !dbg !50
|
| 128 |
+
%122 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %121, i32 16, i32 31), !dbg !50
|
| 129 |
+
%123 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %120, i32 16, i32 31), !dbg !50
|
| 130 |
+
%124 = insertelement <2 x i32> poison, i32 %122, i64 0, !dbg !50
|
| 131 |
+
%125 = insertelement <2 x i32> %124, i32 %123, i64 1, !dbg !50
|
| 132 |
+
%126 = bitcast <2 x i32> %125 to i64, !dbg !50
|
| 133 |
+
%127 = add i64 %118, %126, !dbg !46
|
| 134 |
+
%extelt.offset1 = lshr i64 %127, 32, !dbg !50
|
| 135 |
+
%128 = trunc nuw i64 %extelt.offset1 to i32, !dbg !50
|
| 136 |
+
%129 = trunc i64 %127 to i32, !dbg !50
|
| 137 |
+
%130 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %129, i32 8, i32 31), !dbg !50
|
| 138 |
+
%131 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %128, i32 8, i32 31), !dbg !50
|
| 139 |
+
%132 = insertelement <2 x i32> poison, i32 %130, i64 0, !dbg !50
|
| 140 |
+
%133 = insertelement <2 x i32> %132, i32 %131, i64 1, !dbg !50
|
| 141 |
+
%134 = bitcast <2 x i32> %133 to i64, !dbg !50
|
| 142 |
+
%135 = add i64 %127, %134, !dbg !46
|
| 143 |
+
%extelt.offset2 = lshr i64 %135, 32, !dbg !50
|
| 144 |
+
%136 = trunc nuw i64 %extelt.offset2 to i32, !dbg !50
|
| 145 |
+
%137 = trunc i64 %135 to i32, !dbg !50
|
| 146 |
+
%138 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %137, i32 4, i32 31), !dbg !50
|
| 147 |
+
%139 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %136, i32 4, i32 31), !dbg !50
|
| 148 |
+
%140 = insertelement <2 x i32> poison, i32 %138, i64 0, !dbg !50
|
| 149 |
+
%141 = insertelement <2 x i32> %140, i32 %139, i64 1, !dbg !50
|
| 150 |
+
%142 = bitcast <2 x i32> %141 to i64, !dbg !50
|
| 151 |
+
%143 = add i64 %135, %142, !dbg !46
|
| 152 |
+
%extelt.offset3 = lshr i64 %143, 32, !dbg !50
|
| 153 |
+
%144 = trunc nuw i64 %extelt.offset3 to i32, !dbg !50
|
| 154 |
+
%145 = trunc i64 %143 to i32, !dbg !50
|
| 155 |
+
%146 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %145, i32 2, i32 31), !dbg !50
|
| 156 |
+
%147 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %144, i32 2, i32 31), !dbg !50
|
| 157 |
+
%148 = insertelement <2 x i32> poison, i32 %146, i64 0, !dbg !50
|
| 158 |
+
%149 = insertelement <2 x i32> %148, i32 %147, i64 1, !dbg !50
|
| 159 |
+
%150 = bitcast <2 x i32> %149 to i64, !dbg !50
|
| 160 |
+
%151 = add i64 %143, %150, !dbg !46
|
| 161 |
+
%extelt.offset4 = lshr i64 %151, 32, !dbg !50
|
| 162 |
+
%152 = trunc nuw i64 %extelt.offset4 to i32, !dbg !50
|
| 163 |
+
%153 = trunc i64 %151 to i32, !dbg !50
|
| 164 |
+
%154 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %153, i32 1, i32 31), !dbg !50
|
| 165 |
+
%155 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %152, i32 1, i32 31), !dbg !50
|
| 166 |
+
%156 = insertelement <2 x i32> poison, i32 %154, i64 0, !dbg !50
|
| 167 |
+
%157 = insertelement <2 x i32> %156, i32 %155, i64 1, !dbg !50
|
| 168 |
+
%158 = bitcast <2 x i32> %157 to i64, !dbg !50
|
| 169 |
+
%159 = add i64 %151, %158, !dbg !46
|
| 170 |
+
%160 = and i32 %117, 15, !dbg !50
|
| 171 |
+
%161 = icmp eq i32 %116, 0, !dbg !50
|
| 172 |
+
%162 = getelementptr i64, ptr addrspace(3) @global_smem, i32 %160, !dbg !50
|
| 173 |
+
%163 = insertelement <1 x i64> poison, i64 %159, i64 0, !dbg !50
|
| 174 |
+
tail call void asm sideeffect "@$2 st.shared.b64 [ $0 + 0 ], $1;", "r,l,b"(ptr addrspace(3) %162, <1 x i64> %163, i1 %161) #5, !dbg !50
|
| 175 |
+
tail call void @llvm.nvvm.barrier.cta.sync.aligned.all(i32 0), !dbg !50
|
| 176 |
+
%164 = icmp samesign ult i32 %16, 16, !dbg !50
|
| 177 |
+
%165 = getelementptr i64, ptr addrspace(3) @global_smem, i32 %16, !dbg !50
|
| 178 |
+
%166 = tail call i64 asm sideeffect "@$2 ld.shared.b64 $0, [ $1 + 0 ];", "=l,r,b"(ptr addrspace(3) %165, i1 %164) #5, !dbg !50
|
| 179 |
+
%extelt.offset5 = lshr i64 %166, 32, !dbg !50
|
| 180 |
+
%167 = trunc nuw i64 %extelt.offset5 to i32, !dbg !50
|
| 181 |
+
%168 = trunc i64 %166 to i32, !dbg !50
|
| 182 |
+
%169 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %168, i32 8, i32 31), !dbg !50
|
| 183 |
+
%170 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %167, i32 8, i32 31), !dbg !50
|
| 184 |
+
%171 = insertelement <2 x i32> poison, i32 %169, i64 0, !dbg !50
|
| 185 |
+
%172 = insertelement <2 x i32> %171, i32 %170, i64 1, !dbg !50
|
| 186 |
+
%173 = bitcast <2 x i32> %172 to i64, !dbg !50
|
| 187 |
+
%174 = add i64 %166, %173, !dbg !46
|
| 188 |
+
%extelt.offset6 = lshr i64 %174, 32, !dbg !50
|
| 189 |
+
%175 = trunc nuw i64 %extelt.offset6 to i32, !dbg !50
|
| 190 |
+
%176 = trunc i64 %174 to i32, !dbg !50
|
| 191 |
+
%177 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %176, i32 4, i32 31), !dbg !50
|
| 192 |
+
%178 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %175, i32 4, i32 31), !dbg !50
|
| 193 |
+
%179 = insertelement <2 x i32> poison, i32 %177, i64 0, !dbg !50
|
| 194 |
+
%180 = insertelement <2 x i32> %179, i32 %178, i64 1, !dbg !50
|
| 195 |
+
%181 = bitcast <2 x i32> %180 to i64, !dbg !50
|
| 196 |
+
%182 = add i64 %174, %181, !dbg !46
|
| 197 |
+
%extelt.offset7 = lshr i64 %182, 32, !dbg !50
|
| 198 |
+
%183 = trunc nuw i64 %extelt.offset7 to i32, !dbg !50
|
| 199 |
+
%184 = trunc i64 %182 to i32, !dbg !50
|
| 200 |
+
%185 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %184, i32 2, i32 31), !dbg !50
|
| 201 |
+
%186 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %183, i32 2, i32 31), !dbg !50
|
| 202 |
+
%187 = insertelement <2 x i32> poison, i32 %185, i64 0, !dbg !50
|
| 203 |
+
%188 = insertelement <2 x i32> %187, i32 %186, i64 1, !dbg !50
|
| 204 |
+
%189 = bitcast <2 x i32> %188 to i64, !dbg !50
|
| 205 |
+
%190 = add i64 %182, %189, !dbg !46
|
| 206 |
+
%extelt.offset8 = lshr i64 %190, 32, !dbg !50
|
| 207 |
+
%191 = trunc nuw i64 %extelt.offset8 to i32, !dbg !50
|
| 208 |
+
%192 = trunc i64 %190 to i32, !dbg !50
|
| 209 |
+
%193 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %192, i32 1, i32 31), !dbg !50
|
| 210 |
+
%194 = tail call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 -1, i32 %191, i32 1, i32 31), !dbg !50
|
| 211 |
+
%195 = insertelement <2 x i32> poison, i32 %193, i64 0, !dbg !50
|
| 212 |
+
%196 = insertelement <2 x i32> %195, i32 %194, i64 1, !dbg !50
|
| 213 |
+
%197 = bitcast <2 x i32> %196 to i64, !dbg !50
|
| 214 |
+
%198 = add i64 %190, %197, !dbg !46
|
| 215 |
+
%199 = icmp eq i32 %16, 0, !dbg !50
|
| 216 |
+
%200 = insertelement <1 x i64> poison, i64 %198, i64 0, !dbg !50
|
| 217 |
+
tail call void asm sideeffect "@$2 st.shared.b64 [ $0 + 0 ], $1;", "r,l,b"(ptr addrspace(3) %165, <1 x i64> %200, i1 %199) #5, !dbg !50
|
| 218 |
+
tail call void @llvm.nvvm.barrier.cta.sync.aligned.all(i32 0), !dbg !50
|
| 219 |
+
%201 = load i64, ptr addrspace(3) @global_smem, align 16, !dbg !50
|
| 220 |
+
%202 = add i64 %201, -1, !dbg !51
|
| 221 |
+
%203 = icmp ult i64 %202, 16383, !dbg !51
|
| 222 |
+
%204 = zext i1 %203 to i32, !dbg !52
|
| 223 |
+
%205 = icmp eq i64 %201, 16384, !dbg !53
|
| 224 |
+
%206 = zext i1 %205 to i32, !dbg !52
|
| 225 |
+
%207 = getelementptr i32, ptr addrspace(1) %1, i64 %18, !dbg !54
|
| 226 |
+
%208 = and i32 %16, 511, !dbg !55
|
| 227 |
+
%209 = icmp eq i32 %208, 0, !dbg !55
|
| 228 |
+
%210 = and i1 %209, %15, !dbg !55
|
| 229 |
+
tail call void asm sideeffect "@$2 st.global.b32 [ $1 + 0 ], { $0 };", "r,l,b"(i32 %204, ptr addrspace(1) %207, i1 %210) #5, !dbg !55
|
| 230 |
+
%211 = getelementptr i32, ptr addrspace(1) %2, i64 %18, !dbg !56
|
| 231 |
+
tail call void asm sideeffect "@$2 st.global.b32 [ $1 + 0 ], { $0 };", "r,l,b"(i32 %206, ptr addrspace(1) %211, i1 %210) #5, !dbg !57
|
| 232 |
+
ret void, !dbg !58
|
| 233 |
+
}
|
| 234 |
+
|
| 235 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 236 |
+
declare noundef range(i32 0, 2147483647) i32 @llvm.nvvm.read.ptx.sreg.ctaid.x() #1
|
| 237 |
+
|
| 238 |
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 239 |
+
declare noundef range(i32 0, 1024) i32 @llvm.nvvm.read.ptx.sreg.tid.x() #1
|
| 240 |
+
|
| 241 |
+
; Function Attrs: convergent nocallback nounwind memory(inaccessiblemem: readwrite)
|
| 242 |
+
declare i32 @llvm.nvvm.shfl.sync.bfly.i32(i32, i32, i32, i32) #2
|
| 243 |
+
|
| 244 |
+
; Function Attrs: convergent nocallback nounwind
|
| 245 |
+
declare void @llvm.nvvm.barrier.cta.sync.aligned.all(i32) #3
|
| 246 |
+
|
| 247 |
+
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
|
| 248 |
+
declare i64 @llvm.smin.i64(i64, i64) #4
|
| 249 |
+
|
| 250 |
+
attributes #0 = { nounwind "nvvm.reqntid"="512" }
|
| 251 |
+
attributes #1 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
|
| 252 |
+
attributes #2 = { convergent nocallback nounwind memory(inaccessiblemem: readwrite) }
|
| 253 |
+
attributes #3 = { convergent nocallback nounwind }
|
| 254 |
+
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
|
| 255 |
+
attributes #5 = { nounwind }
|
| 256 |
+
|
| 257 |
+
!llvm.dbg.cu = !{!0}
|
| 258 |
+
!llvm.module.flags = !{!2, !3}
|
| 259 |
+
|
| 260 |
+
!0 = distinct !DICompileUnit(language: DW_LANG_C, file: !1, producer: "triton", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly)
|
| 261 |
+
!1 = !DIFile(filename: "cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py", directory: "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av")
|
| 262 |
+
!2 = !{i32 2, !"Debug Info Version", i32 3}
|
| 263 |
+
!3 = !{i32 4, !"nvvm-reflect-ftz", i32 1}
|
| 264 |
+
!4 = distinct !DISubprogram(name: "triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1", linkageName: "triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1", scope: !1, file: !1, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0)
|
| 265 |
+
!5 = !DISubroutineType(cc: DW_CC_normal, types: !6)
|
| 266 |
+
!6 = !{}
|
| 267 |
+
!7 = !DILocation(line: 22, column: 28, scope: !4)
|
| 268 |
+
!8 = !DILocation(line: 24, column: 21, scope: !4)
|
| 269 |
+
!9 = !DILocation(line: 25, column: 37, scope: !4)
|
| 270 |
+
!10 = !DILocation(line: 27, column: 21, scope: !4)
|
| 271 |
+
!11 = !DILocation(line: 27, column: 28, scope: !4)
|
| 272 |
+
!12 = !DILocation(line: 28, column: 19, scope: !4)
|
| 273 |
+
!13 = !DILocation(line: 29, column: 19, scope: !4)
|
| 274 |
+
!14 = !DILocation(line: 39, column: 26, scope: !4)
|
| 275 |
+
!15 = !DILocation(line: 42, column: 26, scope: !4)
|
| 276 |
+
!16 = !DILocation(line: 49, column: 35, scope: !4)
|
| 277 |
+
!17 = !DILocation(line: 32, column: 40, scope: !4)
|
| 278 |
+
!18 = !DILocation(line: 86, column: 50, scope: !4)
|
| 279 |
+
!19 = !DILocation(line: 45, column: 22, scope: !4)
|
| 280 |
+
!20 = !DILocation(line: 39, column: 22, scope: !4)
|
| 281 |
+
!21 = !DILocation(line: 41, column: 22, scope: !4)
|
| 282 |
+
!22 = !DILocation(line: 48, column: 23, scope: !4)
|
| 283 |
+
!23 = !DILocation(line: 79, column: 24, scope: !4)
|
| 284 |
+
!24 = !DILocation(line: 69, column: 51, scope: !4)
|
| 285 |
+
!25 = !DILocation(line: 70, column: 25, scope: !4)
|
| 286 |
+
!26 = !DILocation(line: 33, column: 31, scope: !4)
|
| 287 |
+
!27 = !DILocation(line: 37, column: 27, scope: !4)
|
| 288 |
+
!28 = !DILocation(line: 49, column: 77, scope: !4)
|
| 289 |
+
!29 = !DILocation(line: 69, column: 24, scope: !4)
|
| 290 |
+
!30 = !DILocation(line: 69, column: 38, scope: !4)
|
| 291 |
+
!31 = !DILocation(line: 49, column: 94, scope: !4)
|
| 292 |
+
!32 = !DILocation(line: 50, column: 23, scope: !4)
|
| 293 |
+
!33 = !DILocation(line: 51, column: 23, scope: !4)
|
| 294 |
+
!34 = !DILocation(line: 52, column: 24, scope: !4)
|
| 295 |
+
!35 = !DILocation(line: 53, column: 23, scope: !4)
|
| 296 |
+
!36 = !DILocation(line: 58, column: 24, scope: !4)
|
| 297 |
+
!37 = !DILocation(line: 60, column: 25, scope: !4)
|
| 298 |
+
!38 = !DILocation(line: 66, column: 39, scope: !4)
|
| 299 |
+
!39 = !DILocation(line: 67, column: 24, scope: !4)
|
| 300 |
+
!40 = !DILocation(line: 71, column: 25, scope: !4)
|
| 301 |
+
!41 = !DILocation(line: 73, column: 25, scope: !4)
|
| 302 |
+
!42 = !DILocation(line: 74, column: 24, scope: !4)
|
| 303 |
+
!43 = !DILocation(line: 76, column: 39, scope: !4)
|
| 304 |
+
!44 = !DILocation(line: 78, column: 25, scope: !4)
|
| 305 |
+
!45 = !DILocation(line: 80, column: 24, scope: !4)
|
| 306 |
+
!46 = !DILocation(line: 261, column: 15, scope: !47, inlinedAt: !49)
|
| 307 |
+
!47 = distinct !DILexicalBlockFile(scope: !4, file: !48, discriminator: 0)
|
| 308 |
+
!48 = !DIFile(filename: "standard.py", directory: "/workspace/specforge/lib/python3.11/site-packages/triton/language")
|
| 309 |
+
!49 = !DILocation(line: 87, column: 27, scope: !4)
|
| 310 |
+
!50 = !DILocation(line: 291, column: 36, scope: !47, inlinedAt: !49)
|
| 311 |
+
!51 = !DILocation(line: 92, column: 20, scope: !4)
|
| 312 |
+
!52 = !DILocation(line: 0, scope: !4)
|
| 313 |
+
!53 = !DILocation(line: 95, column: 21, scope: !4)
|
| 314 |
+
!54 = !DILocation(line: 98, column: 25, scope: !4)
|
| 315 |
+
!55 = !DILocation(line: 98, column: 37, scope: !4)
|
| 316 |
+
!56 = !DILocation(line: 99, column: 25, scope: !4)
|
| 317 |
+
!57 = !DILocation(line: 99, column: 37, scope: !4)
|
| 318 |
+
!58 = !DILocation(line: 99, column: 4, scope: !4)
|
SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.ptx
ADDED
|
@@ -0,0 +1,736 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
//
|
| 2 |
+
// Generated by LLVM NVPTX Back-End
|
| 3 |
+
//
|
| 4 |
+
|
| 5 |
+
.version 8.7
|
| 6 |
+
.target sm_90a
|
| 7 |
+
.address_size 64
|
| 8 |
+
|
| 9 |
+
// .globl triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1 // -- Begin function triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1
|
| 10 |
+
.extern .shared .align 16 .b8 global_smem[];
|
| 11 |
+
// @triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1
|
| 12 |
+
.visible .entry triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1(
|
| 13 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_0,
|
| 14 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_1,
|
| 15 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_2,
|
| 16 |
+
.param .u64 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_3,
|
| 17 |
+
.param .u64 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_4,
|
| 18 |
+
.param .u64 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_5,
|
| 19 |
+
.param .u64 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_6,
|
| 20 |
+
.param .u64 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_7,
|
| 21 |
+
.param .u64 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_8,
|
| 22 |
+
.param .u32 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_9,
|
| 23 |
+
.param .u32 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_10,
|
| 24 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_11,
|
| 25 |
+
.param .u64 .ptr .global .align 1 triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_12
|
| 26 |
+
)
|
| 27 |
+
.reqntid 512
|
| 28 |
+
{
|
| 29 |
+
.reg .pred %p<53>;
|
| 30 |
+
.reg .b32 %r<76>;
|
| 31 |
+
.reg .b64 %rd<162>;
|
| 32 |
+
.loc 1 18 0 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:18:0
|
| 33 |
+
$L__func_begin0:
|
| 34 |
+
.loc 1 18 0 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:18:0
|
| 35 |
+
|
| 36 |
+
// %bb.0:
|
| 37 |
+
ld.param.b64 %rd47, [triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_4];
|
| 38 |
+
$L__tmp0:
|
| 39 |
+
.loc 1 22 28 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:22:28
|
| 40 |
+
mov.u32 %r7, %ctaid.x;
|
| 41 |
+
.loc 1 27 21 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:27:21
|
| 42 |
+
cvt.u64.u32 %rd1, %r7;
|
| 43 |
+
ld.param.b64 %rd52, [triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_3];
|
| 44 |
+
and.b64 %rd53, %rd52, -4294967296;
|
| 45 |
+
setp.ne.b64 %p11, %rd53, 0;
|
| 46 |
+
cvt.u32.u64 %r74, %rd1;
|
| 47 |
+
@%p11 bra $L__BB0_2;
|
| 48 |
+
bra.uni $L__BB0_1;
|
| 49 |
+
$L__BB0_2:
|
| 50 |
+
div.s64 %rd153, %rd1, %rd52;
|
| 51 |
+
bra.uni $L__BB0_3;
|
| 52 |
+
$L__BB0_1:
|
| 53 |
+
cvt.u32.u64 %r8, %rd52;
|
| 54 |
+
div.u32 %r10, %r74, %r8;
|
| 55 |
+
cvt.u64.u32 %rd153, %r10;
|
| 56 |
+
$L__BB0_3:
|
| 57 |
+
.loc 1 0 21 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:0:21
|
| 58 |
+
ld.param.b64 %rd50, [triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_7];
|
| 59 |
+
.loc 1 27 28 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:27:28
|
| 60 |
+
or.b64 %rd54, %rd153, %rd47;
|
| 61 |
+
and.b64 %rd55, %rd54, -4294967296;
|
| 62 |
+
setp.ne.b64 %p12, %rd55, 0;
|
| 63 |
+
@%p12 bra $L__BB0_5;
|
| 64 |
+
bra.uni $L__BB0_4;
|
| 65 |
+
$L__BB0_5:
|
| 66 |
+
rem.s64 %rd154, %rd153, %rd47;
|
| 67 |
+
bra.uni $L__BB0_6;
|
| 68 |
+
$L__BB0_4:
|
| 69 |
+
cvt.u32.u64 %r11, %rd47;
|
| 70 |
+
cvt.u32.u64 %r12, %rd153;
|
| 71 |
+
rem.u32 %r13, %r12, %r11;
|
| 72 |
+
cvt.u64.u32 %rd154, %r13;
|
| 73 |
+
$L__BB0_6:
|
| 74 |
+
.loc 1 0 28 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:0:28
|
| 75 |
+
ld.param.b32 %r6, [triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_9];
|
| 76 |
+
ld.param.b64 %rd51, [triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_8];
|
| 77 |
+
ld.param.b64 %rd49, [triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_6];
|
| 78 |
+
ld.param.b64 %rd44, [triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_0];
|
| 79 |
+
mov.u32 %r1, %tid.x;
|
| 80 |
+
.loc 1 28 19 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:28:19
|
| 81 |
+
mul.lo.s64 %rd56, %rd153, %rd52;
|
| 82 |
+
sub.s64 %rd9, %rd1, %rd56;
|
| 83 |
+
.loc 1 29 19 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:29:19
|
| 84 |
+
and.b64 %rd57, %rd50, -4294967296;
|
| 85 |
+
setp.ne.b64 %p13, %rd57, 0;
|
| 86 |
+
@%p13 bra $L__BB0_8;
|
| 87 |
+
bra.uni $L__BB0_7;
|
| 88 |
+
$L__BB0_8:
|
| 89 |
+
div.s64 %rd155, %rd1, %rd50;
|
| 90 |
+
bra.uni $L__BB0_9;
|
| 91 |
+
$L__BB0_7:
|
| 92 |
+
cvt.u32.u64 %r14, %rd50;
|
| 93 |
+
div.u32 %r16, %r74, %r14;
|
| 94 |
+
cvt.u64.u32 %rd155, %r16;
|
| 95 |
+
$L__BB0_9:
|
| 96 |
+
.loc 1 0 19 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:0:19
|
| 97 |
+
ld.param.b64 %rd48, [triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_5];
|
| 98 |
+
ld.param.b64 %rd46, [triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_2];
|
| 99 |
+
ld.param.b64 %rd45, [triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1_param_1];
|
| 100 |
+
.loc 1 24 21 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:24:21
|
| 101 |
+
setp.lt.s32 %p1, %r74, %r6;
|
| 102 |
+
.loc 1 39 26 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:39:26
|
| 103 |
+
shl.b64 %rd16, %rd154, 7;
|
| 104 |
+
.loc 1 42 26 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:42:26
|
| 105 |
+
shl.b64 %rd61, %rd9, 7;
|
| 106 |
+
.loc 1 49 35 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:49:35
|
| 107 |
+
shl.b64 %rd62, %rd155, 3;
|
| 108 |
+
add.s64 %rd70, %rd44, %rd62;
|
| 109 |
+
and.b32 %r2, %r1, 127;
|
| 110 |
+
cvt.u64.u32 %rd63, %r2;
|
| 111 |
+
or.b64 %rd20, %rd61, %rd63;
|
| 112 |
+
setp.lt.s64 %p3, %rd20, %rd49;
|
| 113 |
+
setp.ge.s64 %p5, %rd20, %rd51;
|
| 114 |
+
min.s64 %rd15, %rd51, 0;
|
| 115 |
+
sub.s64 %rd64, %rd9, %rd154;
|
| 116 |
+
shl.b64 %rd22, %rd64, 7;
|
| 117 |
+
.loc 1 32 40 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:32:40
|
| 118 |
+
cvt.u64.u32 %rd65, %r1;
|
| 119 |
+
shr.u64 %rd66, %rd65, 7;
|
| 120 |
+
cvt.u32.u64 %r75, %rd66;
|
| 121 |
+
shr.u32 %r18, %r1, 7;
|
| 122 |
+
cvt.u64.u32 %rd67, %r18;
|
| 123 |
+
and.b64 %rd157, %rd67, 3;
|
| 124 |
+
sub.s64 %rd156, %rd63, %rd157;
|
| 125 |
+
mov.b64 %rd159, 0;
|
| 126 |
+
mov.b64 %rd158, -1024;
|
| 127 |
+
mov.b64 %rd160, %rd159;
|
| 128 |
+
bra.uni $L__BB0_10;
|
| 129 |
+
$L__BB0_12: // in Loop: Header=BB0_10 Depth=1
|
| 130 |
+
.loc 1 58 24 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:58:24
|
| 131 |
+
rem.s64 %rd161, %rd20, %rd51;
|
| 132 |
+
$L__BB0_13: // in Loop: Header=BB0_10 Depth=1
|
| 133 |
+
.loc 1 0 0 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:0
|
| 134 |
+
sub.s32 %r21, %r2, %r20;
|
| 135 |
+
cvt.s64.s32 %rd33, %r21;
|
| 136 |
+
.loc 1 60 25 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:60:25
|
| 137 |
+
setp.eq.b64 %p24, %rd161, 0;
|
| 138 |
+
.loc 1 66 39 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:66:39
|
| 139 |
+
selp.b64 %rd83, 0, %rd15, %p24;
|
| 140 |
+
add.s64 %rd84, %rd83, %rd161;
|
| 141 |
+
.loc 1 67 24 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:67:24
|
| 142 |
+
setp.lt.s64 %p25, %rd84, %rd69;
|
| 143 |
+
setp.lt.s64 %p26, %rd84, %rd73;
|
| 144 |
+
.loc 1 69 51 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:69:51
|
| 145 |
+
add.s64 %rd85, %rd22, %rd33;
|
| 146 |
+
add.s64 %rd86, %rd22, %rd156;
|
| 147 |
+
.loc 1 70 25 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:70:25
|
| 148 |
+
rem.s64 %rd87, %rd86, %rd51;
|
| 149 |
+
rem.s64 %rd88, %rd85, %rd51;
|
| 150 |
+
.loc 1 71 25 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:71:25
|
| 151 |
+
setp.ne.b64 %p27, %rd88, 0;
|
| 152 |
+
setp.ne.b64 %p28, %rd87, 0;
|
| 153 |
+
.loc 1 73 25 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:73:25
|
| 154 |
+
xor.b64 %rd89, %rd87, %rd51;
|
| 155 |
+
xor.b64 %rd90, %rd88, %rd51;
|
| 156 |
+
.loc 1 76 39 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:76:39
|
| 157 |
+
shr.s64 %rd91, %rd89, 63;
|
| 158 |
+
and.b64 %rd92, %rd91, %rd51;
|
| 159 |
+
selp.b64 %rd93, %rd92, 0, %p28;
|
| 160 |
+
shr.s64 %rd94, %rd90, 63;
|
| 161 |
+
and.b64 %rd95, %rd94, %rd51;
|
| 162 |
+
selp.b64 %rd96, %rd95, 0, %p27;
|
| 163 |
+
.loc 1 78 25 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:78:25
|
| 164 |
+
neg.s64 %rd97, %rd96;
|
| 165 |
+
neg.s64 %rd98, %rd93;
|
| 166 |
+
setp.eq.b64 %p29, %rd87, %rd98;
|
| 167 |
+
setp.eq.b64 %p30, %rd88, %rd97;
|
| 168 |
+
.loc 1 79 24 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:79:24
|
| 169 |
+
and.pred %p31, %p26, %p30;
|
| 170 |
+
and.pred %p33, %p25, %p29;
|
| 171 |
+
and.pred %p35, %p5, %p33;
|
| 172 |
+
and.pred %p36, %p5, %p31;
|
| 173 |
+
.loc 1 80 24 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:80:24
|
| 174 |
+
or.pred %p37, %p10, %p36;
|
| 175 |
+
or.pred %p38, %p9, %p35;
|
| 176 |
+
.loc 1 86 50 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:86:50
|
| 177 |
+
and.pred %p41, %p14, %p38;
|
| 178 |
+
and.pred %p42, %p15, %p37;
|
| 179 |
+
selp.b64 %rd99, 1, 0, %p42;
|
| 180 |
+
selp.b64 %rd100, 1, 0, %p41;
|
| 181 |
+
add.s64 %rd159, %rd159, %rd100;
|
| 182 |
+
add.s64 %rd160, %rd160, %rd99;
|
| 183 |
+
.loc 1 32 40 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:32:40
|
| 184 |
+
add.s64 %rd158, %rd158, 1024;
|
| 185 |
+
add.s32 %r75, %r75, 8;
|
| 186 |
+
add.s64 %rd157, %rd157, 8;
|
| 187 |
+
add.s64 %rd156, %rd156, -8;
|
| 188 |
+
setp.lt.u64 %p43, %rd158, 15360;
|
| 189 |
+
@%p43 bra $L__BB0_10;
|
| 190 |
+
bra.uni $L__BB0_14;
|
| 191 |
+
$L__BB0_10: // =>This Inner Loop Header: Depth=1
|
| 192 |
+
.loc 1 37 27 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:37:27
|
| 193 |
+
or.b32 %r20, %r75, 4;
|
| 194 |
+
.loc 1 39 22 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:39:22
|
| 195 |
+
cvt.u64.u32 %rd76, %r20;
|
| 196 |
+
.loc 1 49 77 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:49:77
|
| 197 |
+
// begin inline asm
|
| 198 |
+
mov.u64 %rd68, 0x0;
|
| 199 |
+
createpolicy.fractional.L2::evict_last.b64 %rd68, 1.0;
|
| 200 |
+
// end inline asm
|
| 201 |
+
.loc 1 39 22 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:39:22
|
| 202 |
+
or.b64 %rd77, %rd16, %rd76;
|
| 203 |
+
or.b64 %rd78, %rd16, %rd157;
|
| 204 |
+
.loc 1 41 22 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:41:22
|
| 205 |
+
setp.lt.s64 %p17, %rd78, %rd48;
|
| 206 |
+
setp.lt.s64 %p18, %rd77, %rd48;
|
| 207 |
+
.loc 1 45 22 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:45:22
|
| 208 |
+
and.pred %p8, %p3, %p18;
|
| 209 |
+
and.pred %p7, %p3, %p17;
|
| 210 |
+
.loc 1 48 23 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:48:23
|
| 211 |
+
setp.ge.s64 %p19, %rd77, %rd20;
|
| 212 |
+
setp.ge.s64 %p20, %rd78, %rd20;
|
| 213 |
+
.loc 1 49 94 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:49:94
|
| 214 |
+
and.pred %p14, %p1, %p7;
|
| 215 |
+
and.pred %p15, %p1, %p8;
|
| 216 |
+
.loc 1 49 77 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:49:77
|
| 217 |
+
// begin inline asm
|
| 218 |
+
mov.u64 %rd69, 0x0;
|
| 219 |
+
@%p14 ld.global.L1::evict_last.L2::cache_hint.b64 { %rd69 }, [ %rd70 + 0 ], %rd68;
|
| 220 |
+
// end inline asm
|
| 221 |
+
// begin inline asm
|
| 222 |
+
mov.u64 %rd72, 0x0;
|
| 223 |
+
createpolicy.fractional.L2::evict_last.b64 %rd72, 1.0;
|
| 224 |
+
// end inline asm
|
| 225 |
+
// begin inline asm
|
| 226 |
+
mov.u64 %rd73, 0x0;
|
| 227 |
+
@%p15 ld.global.L1::evict_last.L2::cache_hint.b64 { %rd73 }, [ %rd70 + 0 ], %rd72;
|
| 228 |
+
// end inline asm
|
| 229 |
+
.loc 1 52 24 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:52:24
|
| 230 |
+
max.s64 %rd79, %rd20, %rd77;
|
| 231 |
+
setp.lt.s64 %p21, %rd79, %rd73;
|
| 232 |
+
max.s64 %rd80, %rd20, %rd78;
|
| 233 |
+
setp.lt.s64 %p22, %rd80, %rd69;
|
| 234 |
+
.loc 1 53 23 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:53:23
|
| 235 |
+
and.pred %p9, %p20, %p22;
|
| 236 |
+
and.pred %p10, %p19, %p21;
|
| 237 |
+
.loc 1 58 24 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:58:24
|
| 238 |
+
or.b64 %rd81, %rd20, %rd51;
|
| 239 |
+
and.b64 %rd82, %rd81, -4294967296;
|
| 240 |
+
setp.ne.b64 %p23, %rd82, 0;
|
| 241 |
+
@%p23 bra $L__BB0_12;
|
| 242 |
+
// %bb.11: // in Loop: Header=BB0_10 Depth=1
|
| 243 |
+
cvt.u32.u64 %r22, %rd51;
|
| 244 |
+
cvt.u32.u64 %r23, %rd20;
|
| 245 |
+
rem.u32 %r24, %r23, %r22;
|
| 246 |
+
cvt.u64.u32 %rd161, %r24;
|
| 247 |
+
bra.uni $L__BB0_13;
|
| 248 |
+
$L__BB0_14:
|
| 249 |
+
.loc 1 25 37 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:25:37
|
| 250 |
+
and.b32 %r31, %r1, 31;
|
| 251 |
+
$L__tmp1:
|
| 252 |
+
.loc 2 261 15 // standard.py:261:15 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 253 |
+
add.s64 %rd106, %rd159, %rd160;
|
| 254 |
+
mov.b64 {_, %r32}, %rd106;
|
| 255 |
+
.loc 2 291 36 // standard.py:291:36 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 256 |
+
cvt.u32.u64 %r33, %rd106;
|
| 257 |
+
shfl.sync.bfly.b32 %r34, %r33, 16, 31, -1;
|
| 258 |
+
shfl.sync.bfly.b32 %r35, %r32, 16, 31, -1;
|
| 259 |
+
cvt.u64.u32 %rd107, %r34;
|
| 260 |
+
cvt.u64.u32 %rd108, %r35;
|
| 261 |
+
shl.b64 %rd109, %rd108, 32;
|
| 262 |
+
or.b64 %rd110, %rd107, %rd109;
|
| 263 |
+
.loc 2 261 15 // standard.py:261:15 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 264 |
+
add.s64 %rd111, %rd106, %rd110;
|
| 265 |
+
.loc 2 291 36 // standard.py:291:36 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 266 |
+
mov.b64 {_, %r36}, %rd111;
|
| 267 |
+
cvt.u32.u64 %r37, %rd111;
|
| 268 |
+
shfl.sync.bfly.b32 %r38, %r37, 8, 31, -1;
|
| 269 |
+
shfl.sync.bfly.b32 %r39, %r36, 8, 31, -1;
|
| 270 |
+
cvt.u64.u32 %rd112, %r38;
|
| 271 |
+
cvt.u64.u32 %rd113, %r39;
|
| 272 |
+
shl.b64 %rd114, %rd113, 32;
|
| 273 |
+
or.b64 %rd115, %rd112, %rd114;
|
| 274 |
+
.loc 2 261 15 // standard.py:261:15 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 275 |
+
add.s64 %rd116, %rd111, %rd115;
|
| 276 |
+
.loc 2 291 36 // standard.py:291:36 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 277 |
+
mov.b64 {_, %r40}, %rd116;
|
| 278 |
+
cvt.u32.u64 %r41, %rd116;
|
| 279 |
+
shfl.sync.bfly.b32 %r42, %r41, 4, 31, -1;
|
| 280 |
+
shfl.sync.bfly.b32 %r43, %r40, 4, 31, -1;
|
| 281 |
+
cvt.u64.u32 %rd117, %r42;
|
| 282 |
+
cvt.u64.u32 %rd118, %r43;
|
| 283 |
+
shl.b64 %rd119, %rd118, 32;
|
| 284 |
+
or.b64 %rd120, %rd117, %rd119;
|
| 285 |
+
.loc 2 261 15 // standard.py:261:15 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 286 |
+
add.s64 %rd121, %rd116, %rd120;
|
| 287 |
+
.loc 2 291 36 // standard.py:291:36 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 288 |
+
mov.b64 {_, %r44}, %rd121;
|
| 289 |
+
cvt.u32.u64 %r45, %rd121;
|
| 290 |
+
shfl.sync.bfly.b32 %r46, %r45, 2, 31, -1;
|
| 291 |
+
shfl.sync.bfly.b32 %r47, %r44, 2, 31, -1;
|
| 292 |
+
cvt.u64.u32 %rd122, %r46;
|
| 293 |
+
cvt.u64.u32 %rd123, %r47;
|
| 294 |
+
shl.b64 %rd124, %rd123, 32;
|
| 295 |
+
or.b64 %rd125, %rd122, %rd124;
|
| 296 |
+
.loc 2 261 15 // standard.py:261:15 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 297 |
+
add.s64 %rd126, %rd121, %rd125;
|
| 298 |
+
.loc 2 291 36 // standard.py:291:36 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 299 |
+
mov.b64 {_, %r48}, %rd126;
|
| 300 |
+
cvt.u32.u64 %r49, %rd126;
|
| 301 |
+
shfl.sync.bfly.b32 %r50, %r49, 1, 31, -1;
|
| 302 |
+
shfl.sync.bfly.b32 %r51, %r48, 1, 31, -1;
|
| 303 |
+
cvt.u64.u32 %rd127, %r50;
|
| 304 |
+
cvt.u64.u32 %rd128, %r51;
|
| 305 |
+
shl.b64 %rd129, %rd128, 32;
|
| 306 |
+
or.b64 %rd130, %rd127, %rd129;
|
| 307 |
+
.loc 2 261 15 // standard.py:261:15 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 308 |
+
add.s64 %rd101, %rd126, %rd130;
|
| 309 |
+
.loc 2 291 36 // standard.py:291:36 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 310 |
+
setp.eq.b32 %p44, %r31, 0;
|
| 311 |
+
shr.u32 %r52, %r1, 2;
|
| 312 |
+
and.b32 %r53, %r52, 120;
|
| 313 |
+
mov.b32 %r54, global_smem;
|
| 314 |
+
add.s32 %r25, %r54, %r53;
|
| 315 |
+
// begin inline asm
|
| 316 |
+
@%p44 st.shared.b64 [ %r25 + 0 ], %rd101;
|
| 317 |
+
// end inline asm
|
| 318 |
+
bar.sync 0;
|
| 319 |
+
setp.lt.u32 %p45, %r1, 16;
|
| 320 |
+
shl.b32 %r55, %r1, 3;
|
| 321 |
+
add.s32 %r26, %r54, %r55;
|
| 322 |
+
// begin inline asm
|
| 323 |
+
@%p45 ld.shared.b64 %rd102, [ %r26 + 0 ];
|
| 324 |
+
// end inline asm
|
| 325 |
+
mov.b64 {_, %r56}, %rd102;
|
| 326 |
+
cvt.u32.u64 %r57, %rd102;
|
| 327 |
+
shfl.sync.bfly.b32 %r58, %r57, 8, 31, -1;
|
| 328 |
+
shfl.sync.bfly.b32 %r59, %r56, 8, 31, -1;
|
| 329 |
+
cvt.u64.u32 %rd131, %r58;
|
| 330 |
+
cvt.u64.u32 %rd132, %r59;
|
| 331 |
+
shl.b64 %rd133, %rd132, 32;
|
| 332 |
+
or.b64 %rd134, %rd131, %rd133;
|
| 333 |
+
.loc 2 261 15 // standard.py:261:15 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 334 |
+
add.s64 %rd135, %rd102, %rd134;
|
| 335 |
+
.loc 2 291 36 // standard.py:291:36 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 336 |
+
mov.b64 {_, %r60}, %rd135;
|
| 337 |
+
cvt.u32.u64 %r61, %rd135;
|
| 338 |
+
shfl.sync.bfly.b32 %r62, %r61, 4, 31, -1;
|
| 339 |
+
shfl.sync.bfly.b32 %r63, %r60, 4, 31, -1;
|
| 340 |
+
cvt.u64.u32 %rd136, %r62;
|
| 341 |
+
cvt.u64.u32 %rd137, %r63;
|
| 342 |
+
shl.b64 %rd138, %rd137, 32;
|
| 343 |
+
or.b64 %rd139, %rd136, %rd138;
|
| 344 |
+
.loc 2 261 15 // standard.py:261:15 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 345 |
+
add.s64 %rd140, %rd135, %rd139;
|
| 346 |
+
.loc 2 291 36 // standard.py:291:36 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 347 |
+
mov.b64 {_, %r64}, %rd140;
|
| 348 |
+
cvt.u32.u64 %r65, %rd140;
|
| 349 |
+
shfl.sync.bfly.b32 %r66, %r65, 2, 31, -1;
|
| 350 |
+
shfl.sync.bfly.b32 %r67, %r64, 2, 31, -1;
|
| 351 |
+
cvt.u64.u32 %rd141, %r66;
|
| 352 |
+
cvt.u64.u32 %rd142, %r67;
|
| 353 |
+
shl.b64 %rd143, %rd142, 32;
|
| 354 |
+
or.b64 %rd144, %rd141, %rd143;
|
| 355 |
+
.loc 2 261 15 // standard.py:261:15 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 356 |
+
add.s64 %rd145, %rd140, %rd144;
|
| 357 |
+
.loc 2 291 36 // standard.py:291:36 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 358 |
+
mov.b64 {_, %r68}, %rd145;
|
| 359 |
+
cvt.u32.u64 %r69, %rd145;
|
| 360 |
+
shfl.sync.bfly.b32 %r70, %r69, 1, 31, -1;
|
| 361 |
+
shfl.sync.bfly.b32 %r71, %r68, 1, 31, -1;
|
| 362 |
+
cvt.u64.u32 %rd146, %r70;
|
| 363 |
+
cvt.u64.u32 %rd147, %r71;
|
| 364 |
+
shl.b64 %rd148, %rd147, 32;
|
| 365 |
+
or.b64 %rd149, %rd146, %rd148;
|
| 366 |
+
.loc 2 261 15 // standard.py:261:15 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 367 |
+
add.s64 %rd103, %rd145, %rd149;
|
| 368 |
+
.loc 2 291 36 // standard.py:291:36 @[ cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:87:27 ]
|
| 369 |
+
setp.eq.b32 %p46, %r1, 0;
|
| 370 |
+
// begin inline asm
|
| 371 |
+
@%p46 st.shared.b64 [ %r26 + 0 ], %rd103;
|
| 372 |
+
// end inline asm
|
| 373 |
+
bar.sync 0;
|
| 374 |
+
ld.shared.b64 %rd150, [global_smem];
|
| 375 |
+
$L__tmp2:
|
| 376 |
+
.loc 1 92 20 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:92:20
|
| 377 |
+
add.s64 %rd151, %rd150, -1;
|
| 378 |
+
setp.lt.u64 %p50, %rd151, 16383;
|
| 379 |
+
.loc 1 0 0 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:0
|
| 380 |
+
selp.b32 %r28, 1, 0, %p50;
|
| 381 |
+
.loc 1 95 21 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:95:21
|
| 382 |
+
setp.eq.b64 %p51, %rd150, 16384;
|
| 383 |
+
.loc 1 0 0 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:0
|
| 384 |
+
selp.b32 %r29, 1, 0, %p51;
|
| 385 |
+
.loc 1 98 25 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:98:25
|
| 386 |
+
shl.b64 %rd152, %rd1, 2;
|
| 387 |
+
add.s64 %rd104, %rd45, %rd152;
|
| 388 |
+
.loc 1 98 37 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:98:37
|
| 389 |
+
and.b32 %r72, %r1, 511;
|
| 390 |
+
setp.eq.b32 %p52, %r72, 0;
|
| 391 |
+
and.pred %p47, %p52, %p1;
|
| 392 |
+
// begin inline asm
|
| 393 |
+
@%p47 st.global.b32 [ %rd104 + 0 ], { %r28 };
|
| 394 |
+
// end inline asm
|
| 395 |
+
.loc 1 99 25 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:99:25
|
| 396 |
+
add.s64 %rd105, %rd46, %rd152;
|
| 397 |
+
.loc 1 99 37 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:99:37
|
| 398 |
+
// begin inline asm
|
| 399 |
+
@%p47 st.global.b32 [ %rd105 + 0 ], { %r29 };
|
| 400 |
+
// end inline asm
|
| 401 |
+
.loc 1 99 4 // cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py:99:4
|
| 402 |
+
ret;
|
| 403 |
+
$L__tmp3:
|
| 404 |
+
$L__func_end0:
|
| 405 |
+
// -- End function
|
| 406 |
+
}
|
| 407 |
+
.file 1 "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py"
|
| 408 |
+
.file 2 "/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py"
|
| 409 |
+
.section .debug_abbrev
|
| 410 |
+
{
|
| 411 |
+
.b8 1 // Abbreviation Code
|
| 412 |
+
.b8 17 // DW_TAG_compile_unit
|
| 413 |
+
.b8 1 // DW_CHILDREN_yes
|
| 414 |
+
.b8 37 // DW_AT_producer
|
| 415 |
+
.b8 8 // DW_FORM_string
|
| 416 |
+
.b8 19 // DW_AT_language
|
| 417 |
+
.b8 5 // DW_FORM_data2
|
| 418 |
+
.b8 3 // DW_AT_name
|
| 419 |
+
.b8 8 // DW_FORM_string
|
| 420 |
+
.b8 16 // DW_AT_stmt_list
|
| 421 |
+
.b8 6 // DW_FORM_data4
|
| 422 |
+
.b8 27 // DW_AT_comp_dir
|
| 423 |
+
.b8 8 // DW_FORM_string
|
| 424 |
+
.b8 0 // EOM(1)
|
| 425 |
+
.b8 0 // EOM(2)
|
| 426 |
+
.b8 2 // Abbreviation Code
|
| 427 |
+
.b8 46 // DW_TAG_subprogram
|
| 428 |
+
.b8 0 // DW_CHILDREN_no
|
| 429 |
+
.b8 3 // DW_AT_name
|
| 430 |
+
.b8 8 // DW_FORM_string
|
| 431 |
+
.b8 32 // DW_AT_inline
|
| 432 |
+
.b8 11 // DW_FORM_data1
|
| 433 |
+
.b8 0 // EOM(1)
|
| 434 |
+
.b8 0 // EOM(2)
|
| 435 |
+
.b8 3 // Abbreviation Code
|
| 436 |
+
.b8 46 // DW_TAG_subprogram
|
| 437 |
+
.b8 1 // DW_CHILDREN_yes
|
| 438 |
+
.b8 17 // DW_AT_low_pc
|
| 439 |
+
.b8 1 // DW_FORM_addr
|
| 440 |
+
.b8 18 // DW_AT_high_pc
|
| 441 |
+
.b8 1 // DW_FORM_addr
|
| 442 |
+
.b8 49 // DW_AT_abstract_origin
|
| 443 |
+
.b8 19 // DW_FORM_ref4
|
| 444 |
+
.b8 0 // EOM(1)
|
| 445 |
+
.b8 0 // EOM(2)
|
| 446 |
+
.b8 4 // Abbreviation Code
|
| 447 |
+
.b8 29 // DW_TAG_inlined_subroutine
|
| 448 |
+
.b8 0 // DW_CHILDREN_no
|
| 449 |
+
.b8 49 // DW_AT_abstract_origin
|
| 450 |
+
.b8 19 // DW_FORM_ref4
|
| 451 |
+
.b8 17 // DW_AT_low_pc
|
| 452 |
+
.b8 1 // DW_FORM_addr
|
| 453 |
+
.b8 18 // DW_AT_high_pc
|
| 454 |
+
.b8 1 // DW_FORM_addr
|
| 455 |
+
.b8 88 // DW_AT_call_file
|
| 456 |
+
.b8 11 // DW_FORM_data1
|
| 457 |
+
.b8 89 // DW_AT_call_line
|
| 458 |
+
.b8 11 // DW_FORM_data1
|
| 459 |
+
.b8 87 // DW_AT_call_column
|
| 460 |
+
.b8 11 // DW_FORM_data1
|
| 461 |
+
.b8 0 // EOM(1)
|
| 462 |
+
.b8 0 // EOM(2)
|
| 463 |
+
.b8 0 // EOM(3)
|
| 464 |
+
}
|
| 465 |
+
.section .debug_info
|
| 466 |
+
{
|
| 467 |
+
.b32 307 // Length of Unit
|
| 468 |
+
.b8 2 // DWARF version number
|
| 469 |
+
.b8 0
|
| 470 |
+
.b32 .debug_abbrev // Offset Into Abbrev. Section
|
| 471 |
+
.b8 8 // Address Size (in bytes)
|
| 472 |
+
.b8 1 // Abbrev [1] 0xb:0x12c DW_TAG_compile_unit
|
| 473 |
+
.b8 116 // DW_AT_producer
|
| 474 |
+
.b8 114
|
| 475 |
+
.b8 105
|
| 476 |
+
.b8 116
|
| 477 |
+
.b8 111
|
| 478 |
+
.b8 110
|
| 479 |
+
.b8 0
|
| 480 |
+
.b8 2 // DW_AT_language
|
| 481 |
+
.b8 0
|
| 482 |
+
.b8 99 // DW_AT_name
|
| 483 |
+
.b8 97
|
| 484 |
+
.b8 118
|
| 485 |
+
.b8 112
|
| 486 |
+
.b8 55
|
| 487 |
+
.b8 120
|
| 488 |
+
.b8 97
|
| 489 |
+
.b8 110
|
| 490 |
+
.b8 55
|
| 491 |
+
.b8 55
|
| 492 |
+
.b8 116
|
| 493 |
+
.b8 102
|
| 494 |
+
.b8 114
|
| 495 |
+
.b8 55
|
| 496 |
+
.b8 113
|
| 497 |
+
.b8 121
|
| 498 |
+
.b8 116
|
| 499 |
+
.b8 102
|
| 500 |
+
.b8 107
|
| 501 |
+
.b8 112
|
| 502 |
+
.b8 54
|
| 503 |
+
.b8 115
|
| 504 |
+
.b8 106
|
| 505 |
+
.b8 114
|
| 506 |
+
.b8 103
|
| 507 |
+
.b8 107
|
| 508 |
+
.b8 100
|
| 509 |
+
.b8 54
|
| 510 |
+
.b8 104
|
| 511 |
+
.b8 118
|
| 512 |
+
.b8 114
|
| 513 |
+
.b8 117
|
| 514 |
+
.b8 105
|
| 515 |
+
.b8 97
|
| 516 |
+
.b8 113
|
| 517 |
+
.b8 102
|
| 518 |
+
.b8 122
|
| 519 |
+
.b8 107
|
| 520 |
+
.b8 101
|
| 521 |
+
.b8 105
|
| 522 |
+
.b8 98
|
| 523 |
+
.b8 116
|
| 524 |
+
.b8 108
|
| 525 |
+
.b8 53
|
| 526 |
+
.b8 114
|
| 527 |
+
.b8 116
|
| 528 |
+
.b8 97
|
| 529 |
+
.b8 103
|
| 530 |
+
.b8 115
|
| 531 |
+
.b8 99
|
| 532 |
+
.b8 110
|
| 533 |
+
.b8 103
|
| 534 |
+
.b8 46
|
| 535 |
+
.b8 112
|
| 536 |
+
.b8 121
|
| 537 |
+
.b8 0
|
| 538 |
+
.b32 .debug_line // DW_AT_stmt_list
|
| 539 |
+
.b8 47 // DW_AT_comp_dir
|
| 540 |
+
.b8 119
|
| 541 |
+
.b8 111
|
| 542 |
+
.b8 114
|
| 543 |
+
.b8 107
|
| 544 |
+
.b8 115
|
| 545 |
+
.b8 112
|
| 546 |
+
.b8 97
|
| 547 |
+
.b8 99
|
| 548 |
+
.b8 101
|
| 549 |
+
.b8 47
|
| 550 |
+
.b8 104
|
| 551 |
+
.b8 97
|
| 552 |
+
.b8 110
|
| 553 |
+
.b8 114
|
| 554 |
+
.b8 117
|
| 555 |
+
.b8 105
|
| 556 |
+
.b8 47
|
| 557 |
+
.b8 83
|
| 558 |
+
.b8 112
|
| 559 |
+
.b8 101
|
| 560 |
+
.b8 99
|
| 561 |
+
.b8 70
|
| 562 |
+
.b8 111
|
| 563 |
+
.b8 114
|
| 564 |
+
.b8 103
|
| 565 |
+
.b8 101
|
| 566 |
+
.b8 45
|
| 567 |
+
.b8 101
|
| 568 |
+
.b8 120
|
| 569 |
+
.b8 116
|
| 570 |
+
.b8 47
|
| 571 |
+
.b8 99
|
| 572 |
+
.b8 97
|
| 573 |
+
.b8 99
|
| 574 |
+
.b8 104
|
| 575 |
+
.b8 101
|
| 576 |
+
.b8 47
|
| 577 |
+
.b8 99
|
| 578 |
+
.b8 111
|
| 579 |
+
.b8 109
|
| 580 |
+
.b8 112
|
| 581 |
+
.b8 105
|
| 582 |
+
.b8 108
|
| 583 |
+
.b8 101
|
| 584 |
+
.b8 100
|
| 585 |
+
.b8 95
|
| 586 |
+
.b8 107
|
| 587 |
+
.b8 101
|
| 588 |
+
.b8 114
|
| 589 |
+
.b8 110
|
| 590 |
+
.b8 101
|
| 591 |
+
.b8 108
|
| 592 |
+
.b8 115
|
| 593 |
+
.b8 47
|
| 594 |
+
.b8 97
|
| 595 |
+
.b8 118
|
| 596 |
+
.b8 0
|
| 597 |
+
.b8 2 // Abbrev [2] 0x8b:0x7d DW_TAG_subprogram
|
| 598 |
+
.b8 116 // DW_AT_name
|
| 599 |
+
.b8 114
|
| 600 |
+
.b8 105
|
| 601 |
+
.b8 116
|
| 602 |
+
.b8 111
|
| 603 |
+
.b8 110
|
| 604 |
+
.b8 95
|
| 605 |
+
.b8 114
|
| 606 |
+
.b8 101
|
| 607 |
+
.b8 100
|
| 608 |
+
.b8 95
|
| 609 |
+
.b8 102
|
| 610 |
+
.b8 117
|
| 611 |
+
.b8 115
|
| 612 |
+
.b8 101
|
| 613 |
+
.b8 100
|
| 614 |
+
.b8 95
|
| 615 |
+
.b8 95
|
| 616 |
+
.b8 116
|
| 617 |
+
.b8 111
|
| 618 |
+
.b8 95
|
| 619 |
+
.b8 99
|
| 620 |
+
.b8 111
|
| 621 |
+
.b8 112
|
| 622 |
+
.b8 121
|
| 623 |
+
.b8 95
|
| 624 |
+
.b8 97
|
| 625 |
+
.b8 114
|
| 626 |
+
.b8 97
|
| 627 |
+
.b8 110
|
| 628 |
+
.b8 103
|
| 629 |
+
.b8 101
|
| 630 |
+
.b8 95
|
| 631 |
+
.b8 98
|
| 632 |
+
.b8 105
|
| 633 |
+
.b8 116
|
| 634 |
+
.b8 119
|
| 635 |
+
.b8 105
|
| 636 |
+
.b8 115
|
| 637 |
+
.b8 101
|
| 638 |
+
.b8 95
|
| 639 |
+
.b8 97
|
| 640 |
+
.b8 110
|
| 641 |
+
.b8 100
|
| 642 |
+
.b8 95
|
| 643 |
+
.b8 98
|
| 644 |
+
.b8 105
|
| 645 |
+
.b8 116
|
| 646 |
+
.b8 119
|
| 647 |
+
.b8 105
|
| 648 |
+
.b8 115
|
| 649 |
+
.b8 101
|
| 650 |
+
.b8 95
|
| 651 |
+
.b8 111
|
| 652 |
+
.b8 114
|
| 653 |
+
.b8 95
|
| 654 |
+
.b8 99
|
| 655 |
+
.b8 111
|
| 656 |
+
.b8 110
|
| 657 |
+
.b8 115
|
| 658 |
+
.b8 116
|
| 659 |
+
.b8 97
|
| 660 |
+
.b8 110
|
| 661 |
+
.b8 116
|
| 662 |
+
.b8 95
|
| 663 |
+
.b8 112
|
| 664 |
+
.b8 97
|
| 665 |
+
.b8 100
|
| 666 |
+
.b8 95
|
| 667 |
+
.b8 110
|
| 668 |
+
.b8 100
|
| 669 |
+
.b8 95
|
| 670 |
+
.b8 101
|
| 671 |
+
.b8 113
|
| 672 |
+
.b8 95
|
| 673 |
+
.b8 103
|
| 674 |
+
.b8 101
|
| 675 |
+
.b8 95
|
| 676 |
+
.b8 103
|
| 677 |
+
.b8 116
|
| 678 |
+
.b8 95
|
| 679 |
+
.b8 105
|
| 680 |
+
.b8 110
|
| 681 |
+
.b8 100
|
| 682 |
+
.b8 101
|
| 683 |
+
.b8 120
|
| 684 |
+
.b8 95
|
| 685 |
+
.b8 108
|
| 686 |
+
.b8 116
|
| 687 |
+
.b8 95
|
| 688 |
+
.b8 112
|
| 689 |
+
.b8 101
|
| 690 |
+
.b8 114
|
| 691 |
+
.b8 109
|
| 692 |
+
.b8 117
|
| 693 |
+
.b8 116
|
| 694 |
+
.b8 101
|
| 695 |
+
.b8 95
|
| 696 |
+
.b8 114
|
| 697 |
+
.b8 101
|
| 698 |
+
.b8 109
|
| 699 |
+
.b8 97
|
| 700 |
+
.b8 105
|
| 701 |
+
.b8 110
|
| 702 |
+
.b8 100
|
| 703 |
+
.b8 101
|
| 704 |
+
.b8 114
|
| 705 |
+
.b8 95
|
| 706 |
+
.b8 115
|
| 707 |
+
.b8 117
|
| 708 |
+
.b8 98
|
| 709 |
+
.b8 95
|
| 710 |
+
.b8 115
|
| 711 |
+
.b8 117
|
| 712 |
+
.b8 109
|
| 713 |
+
.b8 95
|
| 714 |
+
.b8 118
|
| 715 |
+
.b8 105
|
| 716 |
+
.b8 101
|
| 717 |
+
.b8 119
|
| 718 |
+
.b8 95
|
| 719 |
+
.b8 49
|
| 720 |
+
.b8 0
|
| 721 |
+
.b8 1 // DW_AT_inline
|
| 722 |
+
.b8 3 // Abbrev [3] 0x108:0x2e DW_TAG_subprogram
|
| 723 |
+
.b64 $L__func_begin0 // DW_AT_low_pc
|
| 724 |
+
.b64 $L__func_end0 // DW_AT_high_pc
|
| 725 |
+
.b32 139 // DW_AT_abstract_origin
|
| 726 |
+
.b8 4 // Abbrev [4] 0x11d:0x18 DW_TAG_inlined_subroutine
|
| 727 |
+
.b32 139 // DW_AT_abstract_origin
|
| 728 |
+
.b64 $L__tmp1 // DW_AT_low_pc
|
| 729 |
+
.b64 $L__tmp2 // DW_AT_high_pc
|
| 730 |
+
.b8 1 // DW_AT_call_file
|
| 731 |
+
.b8 87 // DW_AT_call_line
|
| 732 |
+
.b8 27 // DW_AT_call_column
|
| 733 |
+
.b8 0 // End Of Children Mark
|
| 734 |
+
.b8 0 // End Of Children Mark
|
| 735 |
+
}
|
| 736 |
+
.section .debug_macinfo { }
|
SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.source
ADDED
|
@@ -0,0 +1,418 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":18:0)
|
| 2 |
+
#loc97 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":285:0)
|
| 3 |
+
#loc99 = loc(unknown)
|
| 4 |
+
#loc102 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":260:0)
|
| 5 |
+
#loc106 = loc("in_ptr0"(#loc))
|
| 6 |
+
#loc107 = loc("out_ptr1"(#loc))
|
| 7 |
+
#loc108 = loc("out_ptr2"(#loc))
|
| 8 |
+
#loc109 = loc("ks0"(#loc))
|
| 9 |
+
#loc110 = loc("ks1"(#loc))
|
| 10 |
+
#loc111 = loc("ks2"(#loc))
|
| 11 |
+
#loc112 = loc("ks3"(#loc))
|
| 12 |
+
#loc113 = loc("ks4"(#loc))
|
| 13 |
+
#loc114 = loc("ks5"(#loc))
|
| 14 |
+
#loc115 = loc("xnumel"(#loc))
|
| 15 |
+
#loc116 = loc("r0_numel"(#loc))
|
| 16 |
+
#loc207 = loc("input"(#loc97))
|
| 17 |
+
#loc208 = loc("a"(#loc102))
|
| 18 |
+
#loc209 = loc("b"(#loc102))
|
| 19 |
+
module {
|
| 20 |
+
tt.func public @triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1(%in_ptr0: !tt.ptr<i64> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %out_ptr1: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr1"(#loc)), %out_ptr2: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr2"(#loc)), %ks0: i64 loc("ks0"(#loc)), %ks1: i64 loc("ks1"(#loc)), %ks2: i64 loc("ks2"(#loc)), %ks3: i64 loc("ks3"(#loc)), %ks4: i64 loc("ks4"(#loc)), %ks5: i64 loc("ks5"(#loc)), %xnumel: i32 loc("xnumel"(#loc)), %r0_numel: i32 {tt.divisibility = 16 : i32} loc("r0_numel"(#loc))) attributes {noinline = false} {
|
| 21 |
+
%r0_numel_0 = arith.constant 16384 : i32 loc(#loc117)
|
| 22 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc118)
|
| 23 |
+
%xoffset_1 = arith.constant 1 : i32 loc(#loc119)
|
| 24 |
+
%xoffset_2 = arith.constant 1 : i32 loc(#loc119)
|
| 25 |
+
%xoffset_3 = arith.muli %xoffset, %xoffset_2 : i32 loc(#loc119)
|
| 26 |
+
%xindex = tt.make_range {end = 1 : i32, start = 0 : i32} : tensor<1xi32> loc(#loc120)
|
| 27 |
+
%xindex_4 = tt.expand_dims %xindex {axis = 1 : i32} : tensor<1xi32> -> tensor<1x1xi32> loc(#loc121)
|
| 28 |
+
%xindex_5 = tt.splat %xoffset_3 : i32 -> tensor<1x1xi32> loc(#loc122)
|
| 29 |
+
%xindex_6 = arith.addi %xindex_5, %xindex_4 : tensor<1x1xi32> loc(#loc122)
|
| 30 |
+
%xmask = tt.splat %xnumel : i32 -> tensor<1x1xi32> loc(#loc123)
|
| 31 |
+
%xmask_7 = arith.cmpi slt, %xindex_6, %xmask : tensor<1x1xi32> loc(#loc123)
|
| 32 |
+
%r0_base = tt.make_range {end = 1024 : i32, start = 0 : i32} : tensor<1024xi32> loc(#loc124)
|
| 33 |
+
%r0_base_8 = tt.expand_dims %r0_base {axis = 0 : i32} : tensor<1024xi32> -> tensor<1x1024xi32> loc(#loc125)
|
| 34 |
+
%x1 = arith.extsi %xindex_6 : tensor<1x1xi32> to tensor<1x1xi64> loc(#loc126)
|
| 35 |
+
%x1_9 = tt.splat %ks0 : i64 -> tensor<1x1xi64> loc(#loc126)
|
| 36 |
+
%x1_10 = arith.divsi %x1, %x1_9 : tensor<1x1xi64> loc(#loc126)
|
| 37 |
+
%x1_11 = tt.splat %ks1 : i64 -> tensor<1x1xi64> loc(#loc127)
|
| 38 |
+
%x1_12 = arith.remsi %x1_10, %x1_11 : tensor<1x1xi64> loc(#loc127)
|
| 39 |
+
%x0 = arith.extsi %xindex_6 : tensor<1x1xi32> to tensor<1x1xi64> loc(#loc128)
|
| 40 |
+
%x0_13 = tt.splat %ks0 : i64 -> tensor<1x1xi64> loc(#loc128)
|
| 41 |
+
%x0_14 = arith.remsi %x0, %x0_13 : tensor<1x1xi64> loc(#loc128)
|
| 42 |
+
%x2 = arith.extsi %xindex_6 : tensor<1x1xi32> to tensor<1x1xi64> loc(#loc129)
|
| 43 |
+
%x2_15 = tt.splat %ks4 : i64 -> tensor<1x1xi64> loc(#loc129)
|
| 44 |
+
%x2_16 = arith.divsi %x2, %x2_15 : tensor<1x1xi64> loc(#loc129)
|
| 45 |
+
%_tmp46 = arith.constant 0 : i64 loc(#loc130)
|
| 46 |
+
%_tmp46_17 = arith.constant dense<0> : tensor<1x1024xi64> loc(#loc130)
|
| 47 |
+
%c0_i32 = arith.constant 0 : i32 loc(#loc15)
|
| 48 |
+
%c1024_i32 = arith.constant 1024 : i32 loc(#loc15)
|
| 49 |
+
%0 = arith.bitcast %c0_i32 : i32 to i32 loc(#loc15)
|
| 50 |
+
%1 = arith.bitcast %r0_numel_0 : i32 to i32 loc(#loc15)
|
| 51 |
+
%2 = arith.bitcast %c1024_i32 : i32 to i32 loc(#loc15)
|
| 52 |
+
%3 = ub.poison : i32 loc(#loc15)
|
| 53 |
+
%_tmp46_18 = scf.for %r0_offset = %0 to %1 step %2 iter_args(%_tmp46_22 = %_tmp46_17) -> (tensor<1x1024xi64>) : i32 {
|
| 54 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x1024xi32> loc(#loc132)
|
| 55 |
+
%r0_index_23 = arith.addi %r0_index, %r0_base_8 : tensor<1x1024xi32> loc(#loc132)
|
| 56 |
+
%r0_mask = arith.constant dense<16384> : tensor<1x1024xi32> loc(#loc133)
|
| 57 |
+
%r0_mask_24 = arith.cmpi slt, %r0_index_23, %r0_mask : tensor<1x1024xi32> loc(#loc133)
|
| 58 |
+
%r0_4 = arith.constant 128 : i32 loc(#loc134)
|
| 59 |
+
%r0_4_25 = arith.constant 128 : i32 loc(#loc134)
|
| 60 |
+
%r0_4_26 = arith.constant dense<128> : tensor<1x1024xi32> loc(#loc134)
|
| 61 |
+
%r0_4_27 = arith.divsi %r0_index_23, %r0_4_26 : tensor<1x1024xi32> loc(#loc134)
|
| 62 |
+
%r0_3 = arith.constant 128 : i32 loc(#loc135)
|
| 63 |
+
%r0_3_28 = arith.constant 128 : i32 loc(#loc135)
|
| 64 |
+
%r0_3_29 = arith.constant dense<128> : tensor<1x1024xi32> loc(#loc135)
|
| 65 |
+
%r0_3_30 = arith.remsi %r0_index_23, %r0_3_29 : tensor<1x1024xi32> loc(#loc135)
|
| 66 |
+
%tmp0 = arith.constant 128 : i32 loc(#loc136)
|
| 67 |
+
%tmp0_31 = arith.constant 128 : i64 loc(#loc136)
|
| 68 |
+
%tmp0_32 = arith.constant dense<128> : tensor<1x1xi64> loc(#loc136)
|
| 69 |
+
%tmp0_33 = arith.muli %tmp0_32, %x1_12 : tensor<1x1xi64> loc(#loc136)
|
| 70 |
+
%tmp0_34 = arith.extsi %r0_4_27 : tensor<1x1024xi32> to tensor<1x1024xi64> loc(#loc137)
|
| 71 |
+
%tmp0_35 = tt.broadcast %tmp0_33 : tensor<1x1xi64> -> tensor<1x1024xi64> loc(#loc137)
|
| 72 |
+
%tmp0_36 = arith.addi %tmp0_34, %tmp0_35 : tensor<1x1024xi64> loc(#loc137)
|
| 73 |
+
%tmp2 = tt.splat %ks2 : i64 -> tensor<1x1024xi64> loc(#loc138)
|
| 74 |
+
%tmp2_37 = arith.cmpi slt, %tmp0_36, %tmp2 : tensor<1x1024xi64> loc(#loc138)
|
| 75 |
+
%tmp3 = arith.constant 128 : i32 loc(#loc139)
|
| 76 |
+
%tmp3_38 = arith.constant 128 : i64 loc(#loc139)
|
| 77 |
+
%tmp3_39 = arith.constant dense<128> : tensor<1x1xi64> loc(#loc139)
|
| 78 |
+
%tmp3_40 = arith.muli %tmp3_39, %x0_14 : tensor<1x1xi64> loc(#loc139)
|
| 79 |
+
%tmp3_41 = arith.extsi %r0_3_30 : tensor<1x1024xi32> to tensor<1x1024xi64> loc(#loc140)
|
| 80 |
+
%tmp3_42 = tt.broadcast %tmp3_40 : tensor<1x1xi64> -> tensor<1x1024xi64> loc(#loc140)
|
| 81 |
+
%tmp3_43 = arith.addi %tmp3_41, %tmp3_42 : tensor<1x1024xi64> loc(#loc140)
|
| 82 |
+
%tmp5 = tt.splat %ks3 : i64 -> tensor<1x1024xi64> loc(#loc141)
|
| 83 |
+
%tmp5_44 = arith.cmpi slt, %tmp3_43, %tmp5 : tensor<1x1024xi64> loc(#loc141)
|
| 84 |
+
%tmp6 = arith.andi %tmp2_37, %tmp5_44 : tensor<1x1024xi1> loc(#loc142)
|
| 85 |
+
%tmp7 = arith.constant 128 : i32 loc(#loc143)
|
| 86 |
+
%tmp7_45 = arith.constant 128 : i64 loc(#loc143)
|
| 87 |
+
%tmp7_46 = arith.constant dense<128> : tensor<1x1xi64> loc(#loc143)
|
| 88 |
+
%tmp7_47 = arith.muli %tmp7_46, %x1_12 : tensor<1x1xi64> loc(#loc143)
|
| 89 |
+
%tmp7_48 = arith.extsi %r0_4_27 : tensor<1x1024xi32> to tensor<1x1024xi64> loc(#loc144)
|
| 90 |
+
%tmp7_49 = tt.broadcast %tmp7_47 : tensor<1x1xi64> -> tensor<1x1024xi64> loc(#loc144)
|
| 91 |
+
%tmp7_50 = arith.addi %tmp7_48, %tmp7_49 : tensor<1x1024xi64> loc(#loc144)
|
| 92 |
+
%tmp8 = arith.constant 128 : i32 loc(#loc145)
|
| 93 |
+
%tmp8_51 = arith.constant 128 : i64 loc(#loc145)
|
| 94 |
+
%tmp8_52 = arith.constant dense<128> : tensor<1x1xi64> loc(#loc145)
|
| 95 |
+
%tmp8_53 = arith.muli %tmp8_52, %x0_14 : tensor<1x1xi64> loc(#loc145)
|
| 96 |
+
%tmp8_54 = arith.extsi %r0_3_30 : tensor<1x1024xi32> to tensor<1x1024xi64> loc(#loc146)
|
| 97 |
+
%tmp8_55 = tt.broadcast %tmp8_53 : tensor<1x1xi64> -> tensor<1x1024xi64> loc(#loc146)
|
| 98 |
+
%tmp8_56 = arith.addi %tmp8_54, %tmp8_55 : tensor<1x1024xi64> loc(#loc146)
|
| 99 |
+
%tmp9 = arith.cmpi sge, %tmp7_50, %tmp8_56 : tensor<1x1024xi64> loc(#loc147)
|
| 100 |
+
%tmp10 = tt.broadcast %x2_16 : tensor<1x1xi64> -> tensor<1x1024xi64> loc(#loc148)
|
| 101 |
+
%tmp10_57 = tt.splat %in_ptr0 : !tt.ptr<i64> -> tensor<1x1024x!tt.ptr<i64>> loc(#loc149)
|
| 102 |
+
%tmp10_58 = tt.addptr %tmp10_57, %tmp10 : tensor<1x1024x!tt.ptr<i64>>, tensor<1x1024xi64> loc(#loc149)
|
| 103 |
+
%tmp10_59 = arith.andi %r0_mask_24, %tmp6 : tensor<1x1024xi1> loc(#loc150)
|
| 104 |
+
%tmp10_60 = tt.broadcast %xmask_7 : tensor<1x1xi1> -> tensor<1x1024xi1> loc(#loc151)
|
| 105 |
+
%tmp10_61 = arith.andi %tmp10_59, %tmp10_60 : tensor<1x1024xi1> loc(#loc151)
|
| 106 |
+
%tmp10_62 = arith.constant 0.000000e+00 : f32 loc(#loc152)
|
| 107 |
+
%tmp10_63 = arith.constant dense<0.000000e+00> : tensor<1x1024xf32> loc(#loc152)
|
| 108 |
+
%tmp10_64 = arith.fptosi %tmp10_63 : tensor<1x1024xf32> to tensor<1x1024xi64> loc(#loc152)
|
| 109 |
+
%tmp10_65 = tt.load %tmp10_58, %tmp10_61, %tmp10_64 evictionPolicy = evict_last : tensor<1x1024x!tt.ptr<i64>> loc(#loc152)
|
| 110 |
+
%tmp11 = arith.cmpi slt, %tmp8_56, %tmp10_65 : tensor<1x1024xi64> loc(#loc153)
|
| 111 |
+
%tmp12 = arith.cmpi slt, %tmp7_50, %tmp10_65 : tensor<1x1024xi64> loc(#loc154)
|
| 112 |
+
%tmp13 = arith.andi %tmp11, %tmp12 : tensor<1x1024xi1> loc(#loc155)
|
| 113 |
+
%tmp14 = arith.andi %tmp9, %tmp13 : tensor<1x1024xi1> loc(#loc156)
|
| 114 |
+
%tmp15 = arith.constant false loc(#loc157)
|
| 115 |
+
%tmp15_66 = arith.constant dense<false> : tensor<1x1xi1> loc(#loc157)
|
| 116 |
+
%tmp16 = arith.constant dense<false> : tensor<1x1024xi1> loc(#loc158)
|
| 117 |
+
%tmp16_67 = arith.ori %tmp16, %tmp14 : tensor<1x1024xi1> loc(#loc158)
|
| 118 |
+
%tmp17 = tt.splat %ks5 : i64 -> tensor<1x1024xi64> loc(#loc159)
|
| 119 |
+
%tmp18 = arith.cmpi sge, %tmp8_56, %tmp17 : tensor<1x1024xi64> loc(#loc160)
|
| 120 |
+
%tmp19 = arith.remsi %tmp8_56, %tmp17 : tensor<1x1024xi64> loc(#loc161)
|
| 121 |
+
%tmp20 = arith.constant 0 : i32 loc(#loc162)
|
| 122 |
+
%tmp20_68 = arith.constant dense<0> : tensor<1x1xi32> loc(#loc162)
|
| 123 |
+
%tmp21 = arith.extsi %tmp20_68 : tensor<1x1xi32> to tensor<1x1xi64> loc(#loc163)
|
| 124 |
+
%tmp21_69 = tt.broadcast %tmp21 : tensor<1x1xi64> -> tensor<1x1024xi64> loc(#loc163)
|
| 125 |
+
%tmp21_70 = arith.cmpi ne, %tmp19, %tmp21_69 : tensor<1x1024xi64> loc(#loc163)
|
| 126 |
+
%tmp22 = arith.constant 0 : i32 loc(#loc164)
|
| 127 |
+
%tmp22_71 = arith.extsi %tmp22 : i32 to i64 loc(#loc164)
|
| 128 |
+
%tmp22_72 = tt.splat %tmp22_71 : i64 -> tensor<1x1024xi64> loc(#loc164)
|
| 129 |
+
%tmp22_73 = arith.cmpi slt, %tmp19, %tmp22_72 : tensor<1x1024xi64> loc(#loc164)
|
| 130 |
+
%tmp23 = arith.constant 0 : i32 loc(#loc165)
|
| 131 |
+
%tmp23_74 = arith.extsi %tmp23 : i32 to i64 loc(#loc165)
|
| 132 |
+
%tmp23_75 = tt.splat %tmp23_74 : i64 -> tensor<1x1024xi64> loc(#loc165)
|
| 133 |
+
%tmp23_76 = arith.cmpi slt, %tmp17, %tmp23_75 : tensor<1x1024xi64> loc(#loc165)
|
| 134 |
+
%tmp24 = arith.cmpi ne, %tmp22_73, %tmp23_76 : tensor<1x1024xi1> loc(#loc166)
|
| 135 |
+
%tmp25 = arith.andi %tmp21_70, %tmp24 : tensor<1x1024xi1> loc(#loc167)
|
| 136 |
+
%tmp26 = arith.addi %tmp19, %tmp17 : tensor<1x1024xi64> loc(#loc168)
|
| 137 |
+
%tmp27 = arith.select %tmp25, %tmp26, %tmp19 : tensor<1x1024xi1>, tensor<1x1024xi64> loc(#loc169)
|
| 138 |
+
%tmp28 = arith.cmpi slt, %tmp27, %tmp10_65 : tensor<1x1024xi64> loc(#loc170)
|
| 139 |
+
%tmp29 = arith.andi %tmp18, %tmp28 : tensor<1x1024xi1> loc(#loc171)
|
| 140 |
+
%tmp30 = arith.constant -1 : i32 loc(#loc172)
|
| 141 |
+
%tmp30_77 = arith.constant -1 : i32 loc(#loc172)
|
| 142 |
+
%tmp30_78 = arith.constant dense<-1> : tensor<1x1024xi32> loc(#loc172)
|
| 143 |
+
%tmp30_79 = arith.muli %tmp30_78, %r0_4_27 : tensor<1x1024xi32> loc(#loc172)
|
| 144 |
+
%tmp30_80 = arith.addi %r0_3_30, %tmp30_79 : tensor<1x1024xi32> loc(#loc173)
|
| 145 |
+
%tmp30_81 = arith.constant -128 : i32 loc(#loc174)
|
| 146 |
+
%tmp30_82 = arith.constant -128 : i64 loc(#loc174)
|
| 147 |
+
%tmp30_83 = arith.constant dense<-128> : tensor<1x1xi64> loc(#loc174)
|
| 148 |
+
%tmp30_84 = arith.muli %tmp30_83, %x1_12 : tensor<1x1xi64> loc(#loc174)
|
| 149 |
+
%tmp30_85 = arith.extsi %tmp30_80 : tensor<1x1024xi32> to tensor<1x1024xi64> loc(#loc175)
|
| 150 |
+
%tmp30_86 = tt.broadcast %tmp30_84 : tensor<1x1xi64> -> tensor<1x1024xi64> loc(#loc175)
|
| 151 |
+
%tmp30_87 = arith.addi %tmp30_85, %tmp30_86 : tensor<1x1024xi64> loc(#loc175)
|
| 152 |
+
%tmp30_88 = arith.constant 128 : i32 loc(#loc176)
|
| 153 |
+
%tmp30_89 = arith.constant 128 : i64 loc(#loc176)
|
| 154 |
+
%tmp30_90 = arith.constant dense<128> : tensor<1x1xi64> loc(#loc176)
|
| 155 |
+
%tmp30_91 = arith.muli %tmp30_90, %x0_14 : tensor<1x1xi64> loc(#loc176)
|
| 156 |
+
%tmp30_92 = tt.broadcast %tmp30_91 : tensor<1x1xi64> -> tensor<1x1024xi64> loc(#loc177)
|
| 157 |
+
%tmp30_93 = arith.addi %tmp30_87, %tmp30_92 : tensor<1x1024xi64> loc(#loc177)
|
| 158 |
+
%tmp31 = arith.remsi %tmp30_93, %tmp17 : tensor<1x1024xi64> loc(#loc178)
|
| 159 |
+
%tmp32 = arith.extsi %tmp20_68 : tensor<1x1xi32> to tensor<1x1xi64> loc(#loc179)
|
| 160 |
+
%tmp32_94 = tt.broadcast %tmp32 : tensor<1x1xi64> -> tensor<1x1024xi64> loc(#loc179)
|
| 161 |
+
%tmp32_95 = arith.cmpi ne, %tmp31, %tmp32_94 : tensor<1x1024xi64> loc(#loc179)
|
| 162 |
+
%tmp33 = arith.constant 0 : i32 loc(#loc180)
|
| 163 |
+
%tmp33_96 = arith.extsi %tmp33 : i32 to i64 loc(#loc180)
|
| 164 |
+
%tmp33_97 = tt.splat %tmp33_96 : i64 -> tensor<1x1024xi64> loc(#loc180)
|
| 165 |
+
%tmp33_98 = arith.cmpi slt, %tmp31, %tmp33_97 : tensor<1x1024xi64> loc(#loc180)
|
| 166 |
+
%tmp34 = arith.cmpi ne, %tmp33_98, %tmp23_76 : tensor<1x1024xi1> loc(#loc181)
|
| 167 |
+
%tmp35 = arith.andi %tmp32_95, %tmp34 : tensor<1x1024xi1> loc(#loc182)
|
| 168 |
+
%tmp36 = arith.addi %tmp31, %tmp17 : tensor<1x1024xi64> loc(#loc183)
|
| 169 |
+
%tmp37 = arith.select %tmp35, %tmp36, %tmp31 : tensor<1x1024xi1>, tensor<1x1024xi64> loc(#loc184)
|
| 170 |
+
%tmp38 = arith.constant 0 : i64 loc(#loc185)
|
| 171 |
+
%tmp38_99 = arith.constant dense<0> : tensor<1x1xi64> loc(#loc185)
|
| 172 |
+
%tmp39 = arith.constant dense<0> : tensor<1x1024xi64> loc(#loc186)
|
| 173 |
+
%tmp39_100 = arith.cmpi eq, %tmp37, %tmp39 : tensor<1x1024xi64> loc(#loc186)
|
| 174 |
+
%tmp40 = arith.andi %tmp29, %tmp39_100 : tensor<1x1024xi1> loc(#loc187)
|
| 175 |
+
%tmp41 = arith.ori %tmp16_67, %tmp40 : tensor<1x1024xi1> loc(#loc188)
|
| 176 |
+
%tmp42 = arith.constant false loc(#loc189)
|
| 177 |
+
%tmp42_101 = arith.constant dense<false> : tensor<1x1024xi1> loc(#loc189)
|
| 178 |
+
%tmp43 = arith.select %tmp6, %tmp41, %tmp42_101 : tensor<1x1024xi1>, tensor<1x1024xi1> loc(#loc190)
|
| 179 |
+
%tmp44 = arith.extui %tmp43 : tensor<1x1024xi1> to tensor<1x1024xi64> loc(#loc191)
|
| 180 |
+
%tmp47 = arith.addi %_tmp46_22, %tmp44 : tensor<1x1024xi64> loc(#loc192)
|
| 181 |
+
%_tmp46_102 = tt.broadcast %xmask_7 : tensor<1x1xi1> -> tensor<1x1024xi1> loc(#loc193)
|
| 182 |
+
%_tmp46_103 = arith.andi %r0_mask_24, %_tmp46_102 : tensor<1x1024xi1> loc(#loc193)
|
| 183 |
+
%_tmp46_104 = arith.select %_tmp46_103, %tmp47, %_tmp46_22 : tensor<1x1024xi1>, tensor<1x1024xi64> loc(#loc194)
|
| 184 |
+
scf.yield %_tmp46_104 : tensor<1x1024xi64> loc(#loc79)
|
| 185 |
+
} loc(#loc131)
|
| 186 |
+
%tmp46 = tt.call @"triton.language.standard.sum__i64S1_1024S__(1,)cconstexpr_1__(2,)cconstexpr_False__(3,)cNone"(%_tmp46_18) : (tensor<1x1024xi64>) -> tensor<1xi64> loc(#loc195)
|
| 187 |
+
%tmp46_19 = tt.expand_dims %tmp46 {axis = 1 : i32} : tensor<1xi64> -> tensor<1x1xi64> loc(#loc196)
|
| 188 |
+
%tmp48 = arith.constant 0 : i64 loc(#loc197)
|
| 189 |
+
%tmp48_20 = arith.constant dense<0> : tensor<1x1xi64> loc(#loc197)
|
| 190 |
+
%tmp49 = arith.cmpi sgt, %tmp46_19, %tmp48_20 : tensor<1x1xi64> loc(#loc198)
|
| 191 |
+
%tmp50 = arith.constant 16384 : i64 loc(#loc199)
|
| 192 |
+
%tmp50_21 = arith.constant dense<16384> : tensor<1x1xi64> loc(#loc199)
|
| 193 |
+
%tmp51 = arith.cmpi slt, %tmp46_19, %tmp50_21 : tensor<1x1xi64> loc(#loc200)
|
| 194 |
+
%tmp52 = arith.andi %tmp49, %tmp51 : tensor<1x1xi1> loc(#loc201)
|
| 195 |
+
%tmp53 = arith.extui %tmp52 : tensor<1x1xi1> to tensor<1x1xi8> loc(#loc202)
|
| 196 |
+
%tmp54 = arith.extsi %tmp53 : tensor<1x1xi8> to tensor<1x1xi32> loc(#loc203)
|
| 197 |
+
%tmp55 = arith.cmpi eq, %tmp46_19, %tmp50_21 : tensor<1x1xi64> loc(#loc204)
|
| 198 |
+
%tmp56 = arith.extui %tmp55 : tensor<1x1xi1> to tensor<1x1xi8> loc(#loc205)
|
| 199 |
+
%tmp57 = arith.extsi %tmp56 : tensor<1x1xi8> to tensor<1x1xi32> loc(#loc206)
|
| 200 |
+
%4 = tt.splat %out_ptr1 : !tt.ptr<i32> -> tensor<1x1x!tt.ptr<i32>> loc(#loc92)
|
| 201 |
+
%5 = tt.addptr %4, %xindex_6 : tensor<1x1x!tt.ptr<i32>>, tensor<1x1xi32> loc(#loc92)
|
| 202 |
+
tt.store %5, %tmp54, %xmask_7 : tensor<1x1x!tt.ptr<i32>> loc(#loc93)
|
| 203 |
+
%6 = tt.splat %out_ptr2 : !tt.ptr<i32> -> tensor<1x1x!tt.ptr<i32>> loc(#loc94)
|
| 204 |
+
%7 = tt.addptr %6, %xindex_6 : tensor<1x1x!tt.ptr<i32>>, tensor<1x1xi32> loc(#loc94)
|
| 205 |
+
tt.store %7, %tmp57, %xmask_7 : tensor<1x1x!tt.ptr<i32>> loc(#loc95)
|
| 206 |
+
tt.return loc(#loc96)
|
| 207 |
+
} loc(#loc)
|
| 208 |
+
tt.func private @"triton.language.standard.sum__i64S1_1024S__(1,)cconstexpr_1__(2,)cconstexpr_False__(3,)cNone"(%input: tensor<1x1024xi64> loc("input"(#loc97))) -> tensor<1xi64> attributes {noinline = false} {
|
| 209 |
+
%0 = "tt.reduce"(%input) <{axis = 1 : i32}> ({
|
| 210 |
+
^bb0(%arg1: i64 loc(unknown), %arg2: i64 loc(unknown)):
|
| 211 |
+
%2 = tt.call @triton.language.standard._sum_combine__i64_i64__(%arg1, %arg2) : (i64, i64) -> i64 loc(#loc98)
|
| 212 |
+
tt.reduce.return %2 : i64 loc(#loc98)
|
| 213 |
+
}) : (tensor<1x1024xi64>) -> tensor<1xi64> loc(#loc98)
|
| 214 |
+
tt.return %0 : tensor<1xi64> loc(#loc100)
|
| 215 |
+
^bb1: // no predecessors
|
| 216 |
+
%1 = ub.poison : tensor<1xi64> loc(#loc101)
|
| 217 |
+
tt.return %1 : tensor<1xi64> loc(#loc101)
|
| 218 |
+
} loc(#loc97)
|
| 219 |
+
tt.func private @triton.language.standard._sum_combine__i64_i64__(%a: i64 loc("a"(#loc102)), %b: i64 loc("b"(#loc102))) -> i64 attributes {noinline = false} {
|
| 220 |
+
%0 = arith.addi %a, %b : i64 loc(#loc103)
|
| 221 |
+
tt.return %0 : i64 loc(#loc104)
|
| 222 |
+
^bb1: // no predecessors
|
| 223 |
+
%1 = ub.poison : i64 loc(#loc105)
|
| 224 |
+
tt.return %1 : i64 loc(#loc105)
|
| 225 |
+
} loc(#loc102)
|
| 226 |
+
} loc(#loc)
|
| 227 |
+
#loc1 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":19:15)
|
| 228 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":22:28)
|
| 229 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":22:33)
|
| 230 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":23:36)
|
| 231 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":23:44)
|
| 232 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":23:23)
|
| 233 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":24:21)
|
| 234 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":25:27)
|
| 235 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":25:37)
|
| 236 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":27:21)
|
| 237 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":27:28)
|
| 238 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":28:19)
|
| 239 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":29:19)
|
| 240 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":30:44)
|
| 241 |
+
#loc15 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":32:40)
|
| 242 |
+
#loc16 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":33:31)
|
| 243 |
+
#loc17 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":34:29)
|
| 244 |
+
#loc18 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":37:27)
|
| 245 |
+
#loc19 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":38:27)
|
| 246 |
+
#loc20 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":39:26)
|
| 247 |
+
#loc21 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":39:22)
|
| 248 |
+
#loc22 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":41:22)
|
| 249 |
+
#loc23 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":42:26)
|
| 250 |
+
#loc24 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":42:22)
|
| 251 |
+
#loc25 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":44:22)
|
| 252 |
+
#loc26 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":45:22)
|
| 253 |
+
#loc27 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":46:26)
|
| 254 |
+
#loc28 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":46:22)
|
| 255 |
+
#loc29 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":47:26)
|
| 256 |
+
#loc30 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":47:22)
|
| 257 |
+
#loc31 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":48:23)
|
| 258 |
+
#loc32 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:55)
|
| 259 |
+
#loc33 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:35)
|
| 260 |
+
#loc34 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:87)
|
| 261 |
+
#loc35 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:94)
|
| 262 |
+
#loc36 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:77)
|
| 263 |
+
#loc37 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":50:23)
|
| 264 |
+
#loc38 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":51:23)
|
| 265 |
+
#loc39 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":52:24)
|
| 266 |
+
#loc40 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":53:23)
|
| 267 |
+
#loc41 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":54:39)
|
| 268 |
+
#loc42 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":55:24)
|
| 269 |
+
#loc43 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":56:37)
|
| 270 |
+
#loc44 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":57:24)
|
| 271 |
+
#loc45 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":58:24)
|
| 272 |
+
#loc46 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":59:35)
|
| 273 |
+
#loc47 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":60:25)
|
| 274 |
+
#loc48 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":61:92)
|
| 275 |
+
#loc49 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":62:92)
|
| 276 |
+
#loc50 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":63:25)
|
| 277 |
+
#loc51 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":64:24)
|
| 278 |
+
#loc52 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":65:24)
|
| 279 |
+
#loc53 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":66:39)
|
| 280 |
+
#loc54 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":67:24)
|
| 281 |
+
#loc55 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":68:24)
|
| 282 |
+
#loc56 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:29)
|
| 283 |
+
#loc57 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:24)
|
| 284 |
+
#loc58 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:45)
|
| 285 |
+
#loc59 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:38)
|
| 286 |
+
#loc60 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:55)
|
| 287 |
+
#loc61 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:51)
|
| 288 |
+
#loc62 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":70:25)
|
| 289 |
+
#loc63 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":71:25)
|
| 290 |
+
#loc64 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":72:92)
|
| 291 |
+
#loc65 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":73:25)
|
| 292 |
+
#loc66 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":74:24)
|
| 293 |
+
#loc67 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":75:24)
|
| 294 |
+
#loc68 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":76:39)
|
| 295 |
+
#loc69 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":77:35)
|
| 296 |
+
#loc70 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":78:25)
|
| 297 |
+
#loc71 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":79:24)
|
| 298 |
+
#loc72 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":80:24)
|
| 299 |
+
#loc73 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":81:44)
|
| 300 |
+
#loc74 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":82:38)
|
| 301 |
+
#loc75 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":83:25)
|
| 302 |
+
#loc76 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":85:25)
|
| 303 |
+
#loc77 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":86:36)
|
| 304 |
+
#loc78 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":86:50)
|
| 305 |
+
#loc79 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":86:8)
|
| 306 |
+
#loc80 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":87:27)
|
| 307 |
+
#loc81 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":87:30)
|
| 308 |
+
#loc82 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":88:31)
|
| 309 |
+
#loc83 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":89:20)
|
| 310 |
+
#loc84 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":90:35)
|
| 311 |
+
#loc85 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":91:20)
|
| 312 |
+
#loc86 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":92:20)
|
| 313 |
+
#loc87 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":93:21)
|
| 314 |
+
#loc88 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":94:21)
|
| 315 |
+
#loc89 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":95:21)
|
| 316 |
+
#loc90 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":96:21)
|
| 317 |
+
#loc91 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":97:21)
|
| 318 |
+
#loc92 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":98:25)
|
| 319 |
+
#loc93 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":98:37)
|
| 320 |
+
#loc94 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":99:25)
|
| 321 |
+
#loc95 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":99:37)
|
| 322 |
+
#loc96 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":99:4)
|
| 323 |
+
#loc98 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:36)
|
| 324 |
+
#loc100 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:11)
|
| 325 |
+
#loc101 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:4)
|
| 326 |
+
#loc103 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:15)
|
| 327 |
+
#loc104 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:11)
|
| 328 |
+
#loc105 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:4)
|
| 329 |
+
#loc117 = loc("r0_numel"(#loc1))
|
| 330 |
+
#loc118 = loc("xoffset"(#loc2))
|
| 331 |
+
#loc119 = loc("xoffset"(#loc3))
|
| 332 |
+
#loc120 = loc("xindex"(#loc4))
|
| 333 |
+
#loc121 = loc("xindex"(#loc5))
|
| 334 |
+
#loc122 = loc("xindex"(#loc6))
|
| 335 |
+
#loc123 = loc("xmask"(#loc7))
|
| 336 |
+
#loc124 = loc("r0_base"(#loc8))
|
| 337 |
+
#loc125 = loc("r0_base"(#loc9))
|
| 338 |
+
#loc126 = loc("x1"(#loc10))
|
| 339 |
+
#loc127 = loc("x1"(#loc11))
|
| 340 |
+
#loc128 = loc("x0"(#loc12))
|
| 341 |
+
#loc129 = loc("x2"(#loc13))
|
| 342 |
+
#loc130 = loc("_tmp46"(#loc14))
|
| 343 |
+
#loc131 = loc("_tmp46"(#loc15))
|
| 344 |
+
#loc132 = loc("r0_index"(#loc16))
|
| 345 |
+
#loc133 = loc("r0_mask"(#loc17))
|
| 346 |
+
#loc134 = loc("r0_4"(#loc18))
|
| 347 |
+
#loc135 = loc("r0_3"(#loc19))
|
| 348 |
+
#loc136 = loc("tmp0"(#loc20))
|
| 349 |
+
#loc137 = loc("tmp0"(#loc21))
|
| 350 |
+
#loc138 = loc("tmp2"(#loc22))
|
| 351 |
+
#loc139 = loc("tmp3"(#loc23))
|
| 352 |
+
#loc140 = loc("tmp3"(#loc24))
|
| 353 |
+
#loc141 = loc("tmp5"(#loc25))
|
| 354 |
+
#loc142 = loc("tmp6"(#loc26))
|
| 355 |
+
#loc143 = loc("tmp7"(#loc27))
|
| 356 |
+
#loc144 = loc("tmp7"(#loc28))
|
| 357 |
+
#loc145 = loc("tmp8"(#loc29))
|
| 358 |
+
#loc146 = loc("tmp8"(#loc30))
|
| 359 |
+
#loc147 = loc("tmp9"(#loc31))
|
| 360 |
+
#loc148 = loc("tmp10"(#loc32))
|
| 361 |
+
#loc149 = loc("tmp10"(#loc33))
|
| 362 |
+
#loc150 = loc("tmp10"(#loc34))
|
| 363 |
+
#loc151 = loc("tmp10"(#loc35))
|
| 364 |
+
#loc152 = loc("tmp10"(#loc36))
|
| 365 |
+
#loc153 = loc("tmp11"(#loc37))
|
| 366 |
+
#loc154 = loc("tmp12"(#loc38))
|
| 367 |
+
#loc155 = loc("tmp13"(#loc39))
|
| 368 |
+
#loc156 = loc("tmp14"(#loc40))
|
| 369 |
+
#loc157 = loc("tmp15"(#loc41))
|
| 370 |
+
#loc158 = loc("tmp16"(#loc42))
|
| 371 |
+
#loc159 = loc("tmp17"(#loc43))
|
| 372 |
+
#loc160 = loc("tmp18"(#loc44))
|
| 373 |
+
#loc161 = loc("tmp19"(#loc45))
|
| 374 |
+
#loc162 = loc("tmp20"(#loc46))
|
| 375 |
+
#loc163 = loc("tmp21"(#loc47))
|
| 376 |
+
#loc164 = loc("tmp22"(#loc48))
|
| 377 |
+
#loc165 = loc("tmp23"(#loc49))
|
| 378 |
+
#loc166 = loc("tmp24"(#loc50))
|
| 379 |
+
#loc167 = loc("tmp25"(#loc51))
|
| 380 |
+
#loc168 = loc("tmp26"(#loc52))
|
| 381 |
+
#loc169 = loc("tmp27"(#loc53))
|
| 382 |
+
#loc170 = loc("tmp28"(#loc54))
|
| 383 |
+
#loc171 = loc("tmp29"(#loc55))
|
| 384 |
+
#loc172 = loc("tmp30"(#loc56))
|
| 385 |
+
#loc173 = loc("tmp30"(#loc57))
|
| 386 |
+
#loc174 = loc("tmp30"(#loc58))
|
| 387 |
+
#loc175 = loc("tmp30"(#loc59))
|
| 388 |
+
#loc176 = loc("tmp30"(#loc60))
|
| 389 |
+
#loc177 = loc("tmp30"(#loc61))
|
| 390 |
+
#loc178 = loc("tmp31"(#loc62))
|
| 391 |
+
#loc179 = loc("tmp32"(#loc63))
|
| 392 |
+
#loc180 = loc("tmp33"(#loc64))
|
| 393 |
+
#loc181 = loc("tmp34"(#loc65))
|
| 394 |
+
#loc182 = loc("tmp35"(#loc66))
|
| 395 |
+
#loc183 = loc("tmp36"(#loc67))
|
| 396 |
+
#loc184 = loc("tmp37"(#loc68))
|
| 397 |
+
#loc185 = loc("tmp38"(#loc69))
|
| 398 |
+
#loc186 = loc("tmp39"(#loc70))
|
| 399 |
+
#loc187 = loc("tmp40"(#loc71))
|
| 400 |
+
#loc188 = loc("tmp41"(#loc72))
|
| 401 |
+
#loc189 = loc("tmp42"(#loc73))
|
| 402 |
+
#loc190 = loc("tmp43"(#loc74))
|
| 403 |
+
#loc191 = loc("tmp44"(#loc75))
|
| 404 |
+
#loc192 = loc("tmp47"(#loc76))
|
| 405 |
+
#loc193 = loc("_tmp46"(#loc77))
|
| 406 |
+
#loc194 = loc("_tmp46"(#loc78))
|
| 407 |
+
#loc195 = loc("tmp46"(#loc80))
|
| 408 |
+
#loc196 = loc("tmp46"(#loc81))
|
| 409 |
+
#loc197 = loc("tmp48"(#loc82))
|
| 410 |
+
#loc198 = loc("tmp49"(#loc83))
|
| 411 |
+
#loc199 = loc("tmp50"(#loc84))
|
| 412 |
+
#loc200 = loc("tmp51"(#loc85))
|
| 413 |
+
#loc201 = loc("tmp52"(#loc86))
|
| 414 |
+
#loc202 = loc("tmp53"(#loc87))
|
| 415 |
+
#loc203 = loc("tmp54"(#loc88))
|
| 416 |
+
#loc204 = loc("tmp55"(#loc89))
|
| 417 |
+
#loc205 = loc("tmp56"(#loc90))
|
| 418 |
+
#loc206 = loc("tmp57"(#loc91))
|
SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.ttgir
ADDED
|
@@ -0,0 +1,280 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#blocked = #ttg.blocked<{sizePerThread = [1, 1], threadsPerWarp = [1, 32], warpsPerCTA = [1, 16], order = [0, 1]}>
|
| 2 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":18:0)
|
| 3 |
+
#loc1 = loc(unknown)
|
| 4 |
+
#loc63 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":87:27)
|
| 5 |
+
#loc79 = loc("in_ptr0"(#loc))
|
| 6 |
+
#loc80 = loc("out_ptr1"(#loc))
|
| 7 |
+
#loc81 = loc("out_ptr2"(#loc))
|
| 8 |
+
#loc82 = loc("ks0"(#loc))
|
| 9 |
+
#loc83 = loc("ks1"(#loc))
|
| 10 |
+
#loc84 = loc("ks2"(#loc))
|
| 11 |
+
#loc85 = loc("ks3"(#loc))
|
| 12 |
+
#loc86 = loc("ks4"(#loc))
|
| 13 |
+
#loc87 = loc("ks5"(#loc))
|
| 14 |
+
#loc88 = loc("xnumel"(#loc))
|
| 15 |
+
#loc89 = loc("r0_numel"(#loc))
|
| 16 |
+
#loc149 = loc("tmp46"(#loc63))
|
| 17 |
+
#loc164 = loc(callsite(#loc1 at #loc149))
|
| 18 |
+
module attributes {"ttg.num-ctas" = 1 : i32, "ttg.num-warps" = 16 : i32, ttg.target = "cuda:90", "ttg.threads-per-warp" = 32 : i32} {
|
| 19 |
+
tt.func public @triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1(%in_ptr0: !tt.ptr<i64> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %out_ptr1: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr1"(#loc)), %out_ptr2: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr2"(#loc)), %ks0: i64 loc("ks0"(#loc)), %ks1: i64 loc("ks1"(#loc)), %ks2: i64 loc("ks2"(#loc)), %ks3: i64 loc("ks3"(#loc)), %ks4: i64 loc("ks4"(#loc)), %ks5: i64 loc("ks5"(#loc)), %xnumel: i32 loc("xnumel"(#loc)), %r0_numel: i32 {tt.divisibility = 16 : i32} loc("r0_numel"(#loc))) attributes {noinline = false} {
|
| 20 |
+
%cst = arith.constant dense<128> : tensor<1x1024xi32, #blocked> loc(#loc1)
|
| 21 |
+
%cst_0 = arith.constant dense<16384> : tensor<1x1024xi32, #blocked> loc(#loc1)
|
| 22 |
+
%c-128_i64 = arith.constant -128 : i64 loc(#loc1)
|
| 23 |
+
%c0_i64 = arith.constant 0 : i64 loc(#loc1)
|
| 24 |
+
%c128_i64 = arith.constant 128 : i64 loc(#loc1)
|
| 25 |
+
%c1024_i32 = arith.constant 1024 : i32 loc(#loc1)
|
| 26 |
+
%c16384_i32 = arith.constant 16384 : i32 loc(#loc1)
|
| 27 |
+
%c0_i32 = arith.constant 0 : i32 loc(#loc1)
|
| 28 |
+
%cst_1 = arith.constant dense<16384> : tensor<1x1xi64, #blocked> loc(#loc1)
|
| 29 |
+
%cst_2 = arith.constant dense<0> : tensor<1x1xi64, #blocked> loc(#loc1)
|
| 30 |
+
%cst_3 = arith.constant dense<false> : tensor<1x1024xi1, #blocked> loc(#loc1)
|
| 31 |
+
%cst_4 = arith.constant dense<0> : tensor<1x1024xi64, #blocked> loc(#loc1)
|
| 32 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc90)
|
| 33 |
+
%xmask = arith.cmpi slt, %xoffset, %xnumel : i32 loc(#loc91)
|
| 34 |
+
%r0_base = tt.make_range {end = 1024 : i32, start = 0 : i32} : tensor<1024xi32, #ttg.slice<{dim = 0, parent = #blocked}>> loc(#loc92)
|
| 35 |
+
%r0_base_5 = tt.expand_dims %r0_base {axis = 0 : i32} : tensor<1024xi32, #ttg.slice<{dim = 0, parent = #blocked}>> -> tensor<1x1024xi32, #blocked> loc(#loc92)
|
| 36 |
+
%x1 = arith.extsi %xoffset : i32 to i64 loc(#loc93)
|
| 37 |
+
%x1_6 = arith.divsi %x1, %ks0 : i64 loc(#loc93)
|
| 38 |
+
%x1_7 = arith.remsi %x1_6, %ks1 : i64 loc(#loc94)
|
| 39 |
+
%x0 = arith.remsi %x1, %ks0 : i64 loc(#loc95)
|
| 40 |
+
%x2 = arith.divsi %x1, %ks4 : i64 loc(#loc96)
|
| 41 |
+
%tmp0 = arith.muli %x1_7, %c128_i64 : i64 loc(#loc97)
|
| 42 |
+
%tmp0_8 = tt.splat %tmp0 : i64 -> tensor<1x1024xi64, #blocked> loc(#loc159)
|
| 43 |
+
%tmp2 = tt.splat %ks2 : i64 -> tensor<1x1024xi64, #blocked> loc(#loc99)
|
| 44 |
+
%tmp3 = arith.muli %x0, %c128_i64 : i64 loc(#loc100)
|
| 45 |
+
%tmp3_9 = tt.splat %tmp3 : i64 -> tensor<1x1024xi64, #blocked> loc(#loc160)
|
| 46 |
+
%tmp5 = tt.splat %ks3 : i64 -> tensor<1x1024xi64, #blocked> loc(#loc102)
|
| 47 |
+
%tmp10 = tt.addptr %in_ptr0, %x2 : !tt.ptr<i64>, i64 loc(#loc103)
|
| 48 |
+
%tmp10_10 = tt.splat %xmask : i1 -> tensor<1x1024xi1, #blocked> loc(#loc161)
|
| 49 |
+
%tmp10_11 = tt.splat %tmp10 : !tt.ptr<i64> -> tensor<1x1024x!tt.ptr<i64>, #blocked> loc(#loc105)
|
| 50 |
+
%tmp17 = tt.splat %ks5 : i64 -> tensor<1x1024xi64, #blocked> loc(#loc106)
|
| 51 |
+
%tmp23 = arith.cmpi slt, %ks5, %c0_i64 : i64 loc(#loc107)
|
| 52 |
+
%tmp23_12 = tt.splat %tmp23 : i1 -> tensor<1x1024xi1, #blocked> loc(#loc107)
|
| 53 |
+
%tmp30 = arith.muli %x1_7, %c-128_i64 : i64 loc(#loc108)
|
| 54 |
+
%tmp30_13 = tt.splat %tmp30 : i64 -> tensor<1x1024xi64, #blocked> loc(#loc162)
|
| 55 |
+
%_tmp46 = scf.for %_tmp46_15 = %c0_i32 to %c16384_i32 step %c1024_i32 iter_args(%arg12 = %cst_4) -> (tensor<1x1024xi64, #blocked>) : i32 {
|
| 56 |
+
%r0_index = tt.splat %_tmp46_15 : i32 -> tensor<1x1024xi32, #blocked> loc(#loc111)
|
| 57 |
+
%r0_index_16 = arith.addi %r0_index, %r0_base_5 : tensor<1x1024xi32, #blocked> loc(#loc111)
|
| 58 |
+
%r0_mask = arith.cmpi slt, %r0_index_16, %cst_0 : tensor<1x1024xi32, #blocked> loc(#loc112)
|
| 59 |
+
%r0_4 = arith.divsi %r0_index_16, %cst : tensor<1x1024xi32, #blocked> loc(#loc113)
|
| 60 |
+
%r0_3 = arith.remsi %r0_index_16, %cst : tensor<1x1024xi32, #blocked> loc(#loc114)
|
| 61 |
+
%tmp0_17 = arith.extsi %r0_4 : tensor<1x1024xi32, #blocked> to tensor<1x1024xi64, #blocked> loc(#loc98)
|
| 62 |
+
%tmp0_18 = arith.addi %tmp0_17, %tmp0_8 : tensor<1x1024xi64, #blocked> loc(#loc98)
|
| 63 |
+
%tmp2_19 = arith.cmpi slt, %tmp0_18, %tmp2 : tensor<1x1024xi64, #blocked> loc(#loc99)
|
| 64 |
+
%tmp3_20 = arith.extsi %r0_3 : tensor<1x1024xi32, #blocked> to tensor<1x1024xi64, #blocked> loc(#loc101)
|
| 65 |
+
%tmp3_21 = arith.addi %tmp3_20, %tmp3_9 : tensor<1x1024xi64, #blocked> loc(#loc101)
|
| 66 |
+
%tmp5_22 = arith.cmpi slt, %tmp3_21, %tmp5 : tensor<1x1024xi64, #blocked> loc(#loc102)
|
| 67 |
+
%tmp6 = arith.andi %tmp2_19, %tmp5_22 : tensor<1x1024xi1, #blocked> loc(#loc115)
|
| 68 |
+
%tmp9 = arith.cmpi sge, %tmp0_18, %tmp3_21 : tensor<1x1024xi64, #blocked> loc(#loc116)
|
| 69 |
+
%tmp10_23 = arith.andi %r0_mask, %tmp6 : tensor<1x1024xi1, #blocked> loc(#loc117)
|
| 70 |
+
%tmp10_24 = arith.andi %tmp10_23, %tmp10_10 : tensor<1x1024xi1, #blocked> loc(#loc104)
|
| 71 |
+
%tmp10_25 = tt.load %tmp10_11, %tmp10_24, %cst_4 evictionPolicy = evict_last : tensor<1x1024x!tt.ptr<i64>, #blocked> loc(#loc105)
|
| 72 |
+
%tmp11 = arith.cmpi slt, %tmp3_21, %tmp10_25 : tensor<1x1024xi64, #blocked> loc(#loc118)
|
| 73 |
+
%tmp12 = arith.cmpi slt, %tmp0_18, %tmp10_25 : tensor<1x1024xi64, #blocked> loc(#loc119)
|
| 74 |
+
%tmp13 = arith.andi %tmp11, %tmp12 : tensor<1x1024xi1, #blocked> loc(#loc120)
|
| 75 |
+
%tmp14 = arith.andi %tmp9, %tmp13 : tensor<1x1024xi1, #blocked> loc(#loc121)
|
| 76 |
+
%tmp18 = arith.cmpi sge, %tmp3_21, %tmp17 : tensor<1x1024xi64, #blocked> loc(#loc122)
|
| 77 |
+
%tmp19 = arith.remsi %tmp3_21, %tmp17 : tensor<1x1024xi64, #blocked> loc(#loc123)
|
| 78 |
+
%tmp21 = arith.cmpi ne, %tmp19, %cst_4 : tensor<1x1024xi64, #blocked> loc(#loc124)
|
| 79 |
+
%tmp22 = arith.cmpi slt, %tmp19, %cst_4 : tensor<1x1024xi64, #blocked> loc(#loc125)
|
| 80 |
+
%tmp24 = arith.cmpi ne, %tmp22, %tmp23_12 : tensor<1x1024xi1, #blocked> loc(#loc126)
|
| 81 |
+
%tmp25 = arith.andi %tmp21, %tmp24 : tensor<1x1024xi1, #blocked> loc(#loc127)
|
| 82 |
+
%tmp26 = arith.addi %tmp19, %tmp17 : tensor<1x1024xi64, #blocked> loc(#loc128)
|
| 83 |
+
%tmp27 = arith.select %tmp25, %tmp26, %tmp19 : tensor<1x1024xi1, #blocked>, tensor<1x1024xi64, #blocked> loc(#loc129)
|
| 84 |
+
%tmp28 = arith.cmpi slt, %tmp27, %tmp10_25 : tensor<1x1024xi64, #blocked> loc(#loc130)
|
| 85 |
+
%tmp29 = arith.andi %tmp18, %tmp28 : tensor<1x1024xi1, #blocked> loc(#loc131)
|
| 86 |
+
%tmp30_26 = arith.subi %r0_3, %r0_4 : tensor<1x1024xi32, #blocked> loc(#loc132)
|
| 87 |
+
%tmp30_27 = arith.extsi %tmp30_26 : tensor<1x1024xi32, #blocked> to tensor<1x1024xi64, #blocked> loc(#loc109)
|
| 88 |
+
%tmp30_28 = arith.addi %tmp30_27, %tmp30_13 : tensor<1x1024xi64, #blocked> loc(#loc109)
|
| 89 |
+
%tmp30_29 = arith.addi %tmp30_28, %tmp3_9 : tensor<1x1024xi64, #blocked> loc(#loc133)
|
| 90 |
+
%tmp31 = arith.remsi %tmp30_29, %tmp17 : tensor<1x1024xi64, #blocked> loc(#loc134)
|
| 91 |
+
%tmp32 = arith.cmpi ne, %tmp31, %cst_4 : tensor<1x1024xi64, #blocked> loc(#loc135)
|
| 92 |
+
%tmp33 = arith.cmpi slt, %tmp31, %cst_4 : tensor<1x1024xi64, #blocked> loc(#loc136)
|
| 93 |
+
%tmp34 = arith.cmpi ne, %tmp33, %tmp23_12 : tensor<1x1024xi1, #blocked> loc(#loc137)
|
| 94 |
+
%tmp35 = arith.andi %tmp32, %tmp34 : tensor<1x1024xi1, #blocked> loc(#loc138)
|
| 95 |
+
%tmp36 = arith.addi %tmp31, %tmp17 : tensor<1x1024xi64, #blocked> loc(#loc139)
|
| 96 |
+
%tmp37 = arith.select %tmp35, %tmp36, %tmp31 : tensor<1x1024xi1, #blocked>, tensor<1x1024xi64, #blocked> loc(#loc140)
|
| 97 |
+
%tmp39 = arith.cmpi eq, %tmp37, %cst_4 : tensor<1x1024xi64, #blocked> loc(#loc141)
|
| 98 |
+
%tmp40 = arith.andi %tmp29, %tmp39 : tensor<1x1024xi1, #blocked> loc(#loc142)
|
| 99 |
+
%tmp41 = arith.ori %tmp14, %tmp40 : tensor<1x1024xi1, #blocked> loc(#loc143)
|
| 100 |
+
%tmp43 = arith.select %tmp6, %tmp41, %cst_3 : tensor<1x1024xi1, #blocked>, tensor<1x1024xi1, #blocked> loc(#loc144)
|
| 101 |
+
%tmp44 = arith.extui %tmp43 : tensor<1x1024xi1, #blocked> to tensor<1x1024xi64, #blocked> loc(#loc145)
|
| 102 |
+
%tmp47 = arith.addi %arg12, %tmp44 : tensor<1x1024xi64, #blocked> loc(#loc146)
|
| 103 |
+
%_tmp46_30 = arith.andi %r0_mask, %tmp10_10 : tensor<1x1024xi1, #blocked> loc(#loc147)
|
| 104 |
+
%_tmp46_31 = arith.select %_tmp46_30, %tmp47, %arg12 : tensor<1x1024xi1, #blocked>, tensor<1x1024xi64, #blocked> loc(#loc148)
|
| 105 |
+
scf.yield %_tmp46_31 : tensor<1x1024xi64, #blocked> loc(#loc61)
|
| 106 |
+
} loc(#loc110)
|
| 107 |
+
%tmp46 = "tt.reduce"(%_tmp46) <{axis = 1 : i32}> ({
|
| 108 |
+
^bb0(%tmp46_15: i64 loc(callsite(#loc1 at #loc149)), %tmp46_16: i64 loc(callsite(#loc1 at #loc149))):
|
| 109 |
+
%tmp46_17 = arith.addi %tmp46_15, %tmp46_16 : i64 loc(#loc167)
|
| 110 |
+
tt.reduce.return %tmp46_17 : i64 loc(#loc163)
|
| 111 |
+
}) : (tensor<1x1024xi64, #blocked>) -> tensor<1xi64, #ttg.slice<{dim = 1, parent = #blocked}>> loc(#loc163)
|
| 112 |
+
%tmp46_14 = tt.expand_dims %tmp46 {axis = 1 : i32} : tensor<1xi64, #ttg.slice<{dim = 1, parent = #blocked}>> -> tensor<1x1xi64, #blocked> loc(#loc150)
|
| 113 |
+
%tmp49 = arith.cmpi sgt, %tmp46_14, %cst_2 : tensor<1x1xi64, #blocked> loc(#loc151)
|
| 114 |
+
%tmp51 = arith.cmpi slt, %tmp46_14, %cst_1 : tensor<1x1xi64, #blocked> loc(#loc152)
|
| 115 |
+
%tmp52 = arith.andi %tmp49, %tmp51 : tensor<1x1xi1, #blocked> loc(#loc153)
|
| 116 |
+
%tmp54 = arith.extui %tmp52 : tensor<1x1xi1, #blocked> to tensor<1x1xi32, #blocked> loc(#loc165)
|
| 117 |
+
%tmp55 = arith.cmpi eq, %tmp46_14, %cst_1 : tensor<1x1xi64, #blocked> loc(#loc156)
|
| 118 |
+
%tmp57 = arith.extui %tmp55 : tensor<1x1xi1, #blocked> to tensor<1x1xi32, #blocked> loc(#loc166)
|
| 119 |
+
%0 = tt.addptr %out_ptr1, %xoffset : !tt.ptr<i32>, i32 loc(#loc74)
|
| 120 |
+
%1 = tt.splat %0 : !tt.ptr<i32> -> tensor<1x1x!tt.ptr<i32>, #blocked> loc(#loc75)
|
| 121 |
+
%2 = tt.splat %xmask : i1 -> tensor<1x1xi1, #blocked> loc(#loc75)
|
| 122 |
+
tt.store %1, %tmp54, %2 : tensor<1x1x!tt.ptr<i32>, #blocked> loc(#loc75)
|
| 123 |
+
%3 = tt.addptr %out_ptr2, %xoffset : !tt.ptr<i32>, i32 loc(#loc76)
|
| 124 |
+
%4 = tt.splat %3 : !tt.ptr<i32> -> tensor<1x1x!tt.ptr<i32>, #blocked> loc(#loc77)
|
| 125 |
+
tt.store %4, %tmp57, %2 : tensor<1x1x!tt.ptr<i32>, #blocked> loc(#loc77)
|
| 126 |
+
tt.return loc(#loc78)
|
| 127 |
+
} loc(#loc)
|
| 128 |
+
} loc(#loc)
|
| 129 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":22:28)
|
| 130 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":24:21)
|
| 131 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":25:37)
|
| 132 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":27:21)
|
| 133 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":27:28)
|
| 134 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":28:19)
|
| 135 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":29:19)
|
| 136 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":39:26)
|
| 137 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":39:22)
|
| 138 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":41:22)
|
| 139 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":42:26)
|
| 140 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":42:22)
|
| 141 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":44:22)
|
| 142 |
+
#loc15 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:35)
|
| 143 |
+
#loc16 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:94)
|
| 144 |
+
#loc17 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:77)
|
| 145 |
+
#loc18 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":56:37)
|
| 146 |
+
#loc19 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":62:92)
|
| 147 |
+
#loc20 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:45)
|
| 148 |
+
#loc21 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:38)
|
| 149 |
+
#loc22 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":32:40)
|
| 150 |
+
#loc23 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":33:31)
|
| 151 |
+
#loc24 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":34:29)
|
| 152 |
+
#loc25 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":37:27)
|
| 153 |
+
#loc26 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":38:27)
|
| 154 |
+
#loc27 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":45:22)
|
| 155 |
+
#loc28 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":48:23)
|
| 156 |
+
#loc29 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:87)
|
| 157 |
+
#loc30 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":50:23)
|
| 158 |
+
#loc31 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":51:23)
|
| 159 |
+
#loc32 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":52:24)
|
| 160 |
+
#loc33 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":53:23)
|
| 161 |
+
#loc34 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":57:24)
|
| 162 |
+
#loc35 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":58:24)
|
| 163 |
+
#loc36 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":60:25)
|
| 164 |
+
#loc37 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":61:92)
|
| 165 |
+
#loc38 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":63:25)
|
| 166 |
+
#loc39 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":64:24)
|
| 167 |
+
#loc40 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":65:24)
|
| 168 |
+
#loc41 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":66:39)
|
| 169 |
+
#loc42 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":67:24)
|
| 170 |
+
#loc43 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":68:24)
|
| 171 |
+
#loc44 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:24)
|
| 172 |
+
#loc45 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:51)
|
| 173 |
+
#loc46 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":70:25)
|
| 174 |
+
#loc47 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":71:25)
|
| 175 |
+
#loc48 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":72:92)
|
| 176 |
+
#loc49 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":73:25)
|
| 177 |
+
#loc50 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":74:24)
|
| 178 |
+
#loc51 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":75:24)
|
| 179 |
+
#loc52 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":76:39)
|
| 180 |
+
#loc53 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":78:25)
|
| 181 |
+
#loc54 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":79:24)
|
| 182 |
+
#loc55 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":80:24)
|
| 183 |
+
#loc56 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":82:38)
|
| 184 |
+
#loc57 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":83:25)
|
| 185 |
+
#loc58 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":85:25)
|
| 186 |
+
#loc59 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":86:36)
|
| 187 |
+
#loc60 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":86:50)
|
| 188 |
+
#loc61 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":86:8)
|
| 189 |
+
#loc62 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:36)
|
| 190 |
+
#loc64 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:15)
|
| 191 |
+
#loc65 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":87:30)
|
| 192 |
+
#loc66 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":89:20)
|
| 193 |
+
#loc67 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":91:20)
|
| 194 |
+
#loc68 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":92:20)
|
| 195 |
+
#loc69 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":94:21)
|
| 196 |
+
#loc70 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":93:21)
|
| 197 |
+
#loc71 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":95:21)
|
| 198 |
+
#loc72 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":97:21)
|
| 199 |
+
#loc73 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":96:21)
|
| 200 |
+
#loc74 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":98:25)
|
| 201 |
+
#loc75 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":98:37)
|
| 202 |
+
#loc76 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":99:25)
|
| 203 |
+
#loc77 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":99:37)
|
| 204 |
+
#loc78 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":99:4)
|
| 205 |
+
#loc90 = loc("xoffset"(#loc2))
|
| 206 |
+
#loc91 = loc("xmask"(#loc3))
|
| 207 |
+
#loc92 = loc("r0_base"(#loc4))
|
| 208 |
+
#loc93 = loc("x1"(#loc5))
|
| 209 |
+
#loc94 = loc("x1"(#loc6))
|
| 210 |
+
#loc95 = loc("x0"(#loc7))
|
| 211 |
+
#loc96 = loc("x2"(#loc8))
|
| 212 |
+
#loc97 = loc("tmp0"(#loc9))
|
| 213 |
+
#loc98 = loc("tmp0"(#loc10))
|
| 214 |
+
#loc99 = loc("tmp2"(#loc11))
|
| 215 |
+
#loc100 = loc("tmp3"(#loc12))
|
| 216 |
+
#loc101 = loc("tmp3"(#loc13))
|
| 217 |
+
#loc102 = loc("tmp5"(#loc14))
|
| 218 |
+
#loc103 = loc("tmp10"(#loc15))
|
| 219 |
+
#loc104 = loc("tmp10"(#loc16))
|
| 220 |
+
#loc105 = loc("tmp10"(#loc17))
|
| 221 |
+
#loc106 = loc("tmp17"(#loc18))
|
| 222 |
+
#loc107 = loc("tmp23"(#loc19))
|
| 223 |
+
#loc108 = loc("tmp30"(#loc20))
|
| 224 |
+
#loc109 = loc("tmp30"(#loc21))
|
| 225 |
+
#loc110 = loc("_tmp46"(#loc22))
|
| 226 |
+
#loc111 = loc("r0_index"(#loc23))
|
| 227 |
+
#loc112 = loc("r0_mask"(#loc24))
|
| 228 |
+
#loc113 = loc("r0_4"(#loc25))
|
| 229 |
+
#loc114 = loc("r0_3"(#loc26))
|
| 230 |
+
#loc115 = loc("tmp6"(#loc27))
|
| 231 |
+
#loc116 = loc("tmp9"(#loc28))
|
| 232 |
+
#loc117 = loc("tmp10"(#loc29))
|
| 233 |
+
#loc118 = loc("tmp11"(#loc30))
|
| 234 |
+
#loc119 = loc("tmp12"(#loc31))
|
| 235 |
+
#loc120 = loc("tmp13"(#loc32))
|
| 236 |
+
#loc121 = loc("tmp14"(#loc33))
|
| 237 |
+
#loc122 = loc("tmp18"(#loc34))
|
| 238 |
+
#loc123 = loc("tmp19"(#loc35))
|
| 239 |
+
#loc124 = loc("tmp21"(#loc36))
|
| 240 |
+
#loc125 = loc("tmp22"(#loc37))
|
| 241 |
+
#loc126 = loc("tmp24"(#loc38))
|
| 242 |
+
#loc127 = loc("tmp25"(#loc39))
|
| 243 |
+
#loc128 = loc("tmp26"(#loc40))
|
| 244 |
+
#loc129 = loc("tmp27"(#loc41))
|
| 245 |
+
#loc130 = loc("tmp28"(#loc42))
|
| 246 |
+
#loc131 = loc("tmp29"(#loc43))
|
| 247 |
+
#loc132 = loc("tmp30"(#loc44))
|
| 248 |
+
#loc133 = loc("tmp30"(#loc45))
|
| 249 |
+
#loc134 = loc("tmp31"(#loc46))
|
| 250 |
+
#loc135 = loc("tmp32"(#loc47))
|
| 251 |
+
#loc136 = loc("tmp33"(#loc48))
|
| 252 |
+
#loc137 = loc("tmp34"(#loc49))
|
| 253 |
+
#loc138 = loc("tmp35"(#loc50))
|
| 254 |
+
#loc139 = loc("tmp36"(#loc51))
|
| 255 |
+
#loc140 = loc("tmp37"(#loc52))
|
| 256 |
+
#loc141 = loc("tmp39"(#loc53))
|
| 257 |
+
#loc142 = loc("tmp40"(#loc54))
|
| 258 |
+
#loc143 = loc("tmp41"(#loc55))
|
| 259 |
+
#loc144 = loc("tmp43"(#loc56))
|
| 260 |
+
#loc145 = loc("tmp44"(#loc57))
|
| 261 |
+
#loc146 = loc("tmp47"(#loc58))
|
| 262 |
+
#loc147 = loc("_tmp46"(#loc59))
|
| 263 |
+
#loc148 = loc("_tmp46"(#loc60))
|
| 264 |
+
#loc150 = loc("tmp46"(#loc65))
|
| 265 |
+
#loc151 = loc("tmp49"(#loc66))
|
| 266 |
+
#loc152 = loc("tmp51"(#loc67))
|
| 267 |
+
#loc153 = loc("tmp52"(#loc68))
|
| 268 |
+
#loc154 = loc("tmp54"(#loc69))
|
| 269 |
+
#loc155 = loc("tmp53"(#loc70))
|
| 270 |
+
#loc156 = loc("tmp55"(#loc71))
|
| 271 |
+
#loc157 = loc("tmp57"(#loc72))
|
| 272 |
+
#loc158 = loc("tmp56"(#loc73))
|
| 273 |
+
#loc159 = loc(fused[#loc98, #loc97])
|
| 274 |
+
#loc160 = loc(fused[#loc101, #loc100])
|
| 275 |
+
#loc161 = loc(fused[#loc104, #loc91])
|
| 276 |
+
#loc162 = loc(fused[#loc109, #loc108])
|
| 277 |
+
#loc163 = loc(callsite(#loc62 at #loc149))
|
| 278 |
+
#loc165 = loc(fused[#loc154, #loc155])
|
| 279 |
+
#loc166 = loc(fused[#loc157, #loc158])
|
| 280 |
+
#loc167 = loc(callsite(#loc64 at #loc163))
|
SpecForge-ext/cache/compiled_kernels/triton/3/DE6XSSYLS7BWGGS4UO3WTFWZCN6OVYXIHMGZ5KR7P3YWZXLVATDQ/triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1.ttir
ADDED
|
@@ -0,0 +1,283 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#loc = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":18:0)
|
| 2 |
+
#loc1 = loc(unknown)
|
| 3 |
+
#loc65 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":87:27)
|
| 4 |
+
#loc81 = loc("in_ptr0"(#loc))
|
| 5 |
+
#loc82 = loc("out_ptr1"(#loc))
|
| 6 |
+
#loc83 = loc("out_ptr2"(#loc))
|
| 7 |
+
#loc84 = loc("ks0"(#loc))
|
| 8 |
+
#loc85 = loc("ks1"(#loc))
|
| 9 |
+
#loc86 = loc("ks2"(#loc))
|
| 10 |
+
#loc87 = loc("ks3"(#loc))
|
| 11 |
+
#loc88 = loc("ks4"(#loc))
|
| 12 |
+
#loc89 = loc("ks5"(#loc))
|
| 13 |
+
#loc90 = loc("xnumel"(#loc))
|
| 14 |
+
#loc91 = loc("r0_numel"(#loc))
|
| 15 |
+
#loc153 = loc("tmp46"(#loc65))
|
| 16 |
+
#loc168 = loc(callsite(#loc1 at #loc153))
|
| 17 |
+
module {
|
| 18 |
+
tt.func public @triton_red_fused__to_copy_arange_bitwise_and_bitwise_or_constant_pad_nd_eq_ge_gt_index_lt_permute_remainder_sub_sum_view_1(%in_ptr0: !tt.ptr<i64> {tt.divisibility = 16 : i32} loc("in_ptr0"(#loc)), %out_ptr1: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr1"(#loc)), %out_ptr2: !tt.ptr<i32> {tt.divisibility = 16 : i32} loc("out_ptr2"(#loc)), %ks0: i64 loc("ks0"(#loc)), %ks1: i64 loc("ks1"(#loc)), %ks2: i64 loc("ks2"(#loc)), %ks3: i64 loc("ks3"(#loc)), %ks4: i64 loc("ks4"(#loc)), %ks5: i64 loc("ks5"(#loc)), %xnumel: i32 loc("xnumel"(#loc)), %r0_numel: i32 {tt.divisibility = 16 : i32} loc("r0_numel"(#loc))) attributes {noinline = false} {
|
| 19 |
+
%c-128_i64 = arith.constant -128 : i64 loc(#loc1)
|
| 20 |
+
%c0_i64 = arith.constant 0 : i64 loc(#loc1)
|
| 21 |
+
%c128_i64 = arith.constant 128 : i64 loc(#loc1)
|
| 22 |
+
%c1024_i32 = arith.constant 1024 : i32 loc(#loc2)
|
| 23 |
+
%c16384_i32 = arith.constant 16384 : i32 loc(#loc2)
|
| 24 |
+
%c0_i32 = arith.constant 0 : i32 loc(#loc2)
|
| 25 |
+
%tmp50 = arith.constant dense<16384> : tensor<1x1xi64> loc(#loc92)
|
| 26 |
+
%cst = arith.constant dense<0> : tensor<1x1xi64> loc(#loc1)
|
| 27 |
+
%cst_0 = arith.constant dense<false> : tensor<1x1024xi1> loc(#loc1)
|
| 28 |
+
%cst_1 = arith.constant dense<128> : tensor<1x1024xi32> loc(#loc1)
|
| 29 |
+
%cst_2 = arith.constant dense<16384> : tensor<1x1024xi32> loc(#loc1)
|
| 30 |
+
%cst_3 = arith.constant dense<0> : tensor<1x1024xi64> loc(#loc1)
|
| 31 |
+
%xoffset = tt.get_program_id x : i32 loc(#loc93)
|
| 32 |
+
%xmask = arith.cmpi slt, %xoffset, %xnumel : i32 loc(#loc94)
|
| 33 |
+
%xmask_4 = tt.splat %xmask : i1 -> tensor<1x1xi1> loc(#loc94)
|
| 34 |
+
%r0_base = tt.make_range {end = 1024 : i32, start = 0 : i32} : tensor<1024xi32> loc(#loc95)
|
| 35 |
+
%r0_base_5 = tt.expand_dims %r0_base {axis = 0 : i32} : tensor<1024xi32> -> tensor<1x1024xi32> loc(#loc96)
|
| 36 |
+
%x1 = arith.extsi %xoffset : i32 to i64 loc(#loc97)
|
| 37 |
+
%x1_6 = arith.divsi %x1, %ks0 : i64 loc(#loc97)
|
| 38 |
+
%x1_7 = arith.remsi %x1_6, %ks1 : i64 loc(#loc98)
|
| 39 |
+
%x0 = arith.remsi %x1, %ks0 : i64 loc(#loc99)
|
| 40 |
+
%x2 = arith.divsi %x1, %ks4 : i64 loc(#loc100)
|
| 41 |
+
%_tmp46 = scf.for %r0_offset = %c0_i32 to %c16384_i32 step %c1024_i32 iter_args(%_tmp46_9 = %cst_3) -> (tensor<1x1024xi64>) : i32 {
|
| 42 |
+
%r0_index = tt.splat %r0_offset : i32 -> tensor<1x1024xi32> loc(#loc102)
|
| 43 |
+
%r0_index_10 = arith.addi %r0_index, %r0_base_5 : tensor<1x1024xi32> loc(#loc102)
|
| 44 |
+
%r0_mask = arith.cmpi slt, %r0_index_10, %cst_2 : tensor<1x1024xi32> loc(#loc103)
|
| 45 |
+
%r0_4 = arith.divsi %r0_index_10, %cst_1 : tensor<1x1024xi32> loc(#loc104)
|
| 46 |
+
%r0_3 = arith.remsi %r0_index_10, %cst_1 : tensor<1x1024xi32> loc(#loc105)
|
| 47 |
+
%tmp0 = arith.muli %x1_7, %c128_i64 : i64 loc(#loc106)
|
| 48 |
+
%tmp0_11 = arith.extsi %r0_4 : tensor<1x1024xi32> to tensor<1x1024xi64> loc(#loc107)
|
| 49 |
+
%tmp0_12 = tt.splat %tmp0 : i64 -> tensor<1x1024xi64> loc(#loc163)
|
| 50 |
+
%tmp0_13 = arith.addi %tmp0_11, %tmp0_12 : tensor<1x1024xi64> loc(#loc107)
|
| 51 |
+
%tmp2 = tt.splat %ks2 : i64 -> tensor<1x1024xi64> loc(#loc108)
|
| 52 |
+
%tmp2_14 = arith.cmpi slt, %tmp0_13, %tmp2 : tensor<1x1024xi64> loc(#loc108)
|
| 53 |
+
%tmp3 = arith.muli %x0, %c128_i64 : i64 loc(#loc109)
|
| 54 |
+
%tmp3_15 = arith.extsi %r0_3 : tensor<1x1024xi32> to tensor<1x1024xi64> loc(#loc110)
|
| 55 |
+
%tmp3_16 = tt.splat %tmp3 : i64 -> tensor<1x1024xi64> loc(#loc164)
|
| 56 |
+
%tmp3_17 = arith.addi %tmp3_15, %tmp3_16 : tensor<1x1024xi64> loc(#loc110)
|
| 57 |
+
%tmp5 = tt.splat %ks3 : i64 -> tensor<1x1024xi64> loc(#loc111)
|
| 58 |
+
%tmp5_18 = arith.cmpi slt, %tmp3_17, %tmp5 : tensor<1x1024xi64> loc(#loc111)
|
| 59 |
+
%tmp6 = arith.andi %tmp2_14, %tmp5_18 : tensor<1x1024xi1> loc(#loc112)
|
| 60 |
+
%tmp9 = arith.cmpi sge, %tmp0_13, %tmp3_17 : tensor<1x1024xi64> loc(#loc113)
|
| 61 |
+
%tmp10 = tt.addptr %in_ptr0, %x2 : !tt.ptr<i64>, i64 loc(#loc114)
|
| 62 |
+
%tmp10_19 = tt.splat %tmp10 : !tt.ptr<i64> -> tensor<1x1024x!tt.ptr<i64>> loc(#loc114)
|
| 63 |
+
%tmp10_20 = arith.andi %r0_mask, %tmp6 : tensor<1x1024xi1> loc(#loc115)
|
| 64 |
+
%tmp10_21 = tt.splat %xmask : i1 -> tensor<1x1024xi1> loc(#loc165)
|
| 65 |
+
%tmp10_22 = arith.andi %tmp10_20, %tmp10_21 : tensor<1x1024xi1> loc(#loc116)
|
| 66 |
+
%tmp10_23 = tt.load %tmp10_19, %tmp10_22, %cst_3 evictionPolicy = evict_last : tensor<1x1024x!tt.ptr<i64>> loc(#loc117)
|
| 67 |
+
%tmp11 = arith.cmpi slt, %tmp3_17, %tmp10_23 : tensor<1x1024xi64> loc(#loc118)
|
| 68 |
+
%tmp12 = arith.cmpi slt, %tmp0_13, %tmp10_23 : tensor<1x1024xi64> loc(#loc119)
|
| 69 |
+
%tmp13 = arith.andi %tmp11, %tmp12 : tensor<1x1024xi1> loc(#loc120)
|
| 70 |
+
%tmp14 = arith.andi %tmp9, %tmp13 : tensor<1x1024xi1> loc(#loc121)
|
| 71 |
+
%tmp17 = tt.splat %ks5 : i64 -> tensor<1x1024xi64> loc(#loc122)
|
| 72 |
+
%tmp18 = arith.cmpi sge, %tmp3_17, %tmp17 : tensor<1x1024xi64> loc(#loc123)
|
| 73 |
+
%tmp19 = arith.remsi %tmp3_17, %tmp17 : tensor<1x1024xi64> loc(#loc124)
|
| 74 |
+
%tmp21 = arith.cmpi ne, %tmp19, %cst_3 : tensor<1x1024xi64> loc(#loc125)
|
| 75 |
+
%tmp22 = arith.cmpi slt, %tmp19, %cst_3 : tensor<1x1024xi64> loc(#loc126)
|
| 76 |
+
%tmp23 = arith.cmpi slt, %ks5, %c0_i64 : i64 loc(#loc127)
|
| 77 |
+
%tmp23_24 = tt.splat %tmp23 : i1 -> tensor<1x1024xi1> loc(#loc127)
|
| 78 |
+
%tmp24 = arith.cmpi ne, %tmp22, %tmp23_24 : tensor<1x1024xi1> loc(#loc128)
|
| 79 |
+
%tmp25 = arith.andi %tmp21, %tmp24 : tensor<1x1024xi1> loc(#loc129)
|
| 80 |
+
%tmp26 = arith.addi %tmp19, %tmp17 : tensor<1x1024xi64> loc(#loc130)
|
| 81 |
+
%tmp27 = arith.select %tmp25, %tmp26, %tmp19 : tensor<1x1024xi1>, tensor<1x1024xi64> loc(#loc131)
|
| 82 |
+
%tmp28 = arith.cmpi slt, %tmp27, %tmp10_23 : tensor<1x1024xi64> loc(#loc132)
|
| 83 |
+
%tmp29 = arith.andi %tmp18, %tmp28 : tensor<1x1024xi1> loc(#loc133)
|
| 84 |
+
%tmp30 = arith.subi %r0_3, %r0_4 : tensor<1x1024xi32> loc(#loc134)
|
| 85 |
+
%tmp30_25 = arith.muli %x1_7, %c-128_i64 : i64 loc(#loc135)
|
| 86 |
+
%tmp30_26 = arith.extsi %tmp30 : tensor<1x1024xi32> to tensor<1x1024xi64> loc(#loc136)
|
| 87 |
+
%tmp30_27 = tt.splat %tmp30_25 : i64 -> tensor<1x1024xi64> loc(#loc166)
|
| 88 |
+
%tmp30_28 = arith.addi %tmp30_26, %tmp30_27 : tensor<1x1024xi64> loc(#loc136)
|
| 89 |
+
%tmp30_29 = arith.addi %tmp30_28, %tmp3_16 : tensor<1x1024xi64> loc(#loc137)
|
| 90 |
+
%tmp31 = arith.remsi %tmp30_29, %tmp17 : tensor<1x1024xi64> loc(#loc138)
|
| 91 |
+
%tmp32 = arith.cmpi ne, %tmp31, %cst_3 : tensor<1x1024xi64> loc(#loc139)
|
| 92 |
+
%tmp33 = arith.cmpi slt, %tmp31, %cst_3 : tensor<1x1024xi64> loc(#loc140)
|
| 93 |
+
%tmp34 = arith.cmpi ne, %tmp33, %tmp23_24 : tensor<1x1024xi1> loc(#loc141)
|
| 94 |
+
%tmp35 = arith.andi %tmp32, %tmp34 : tensor<1x1024xi1> loc(#loc142)
|
| 95 |
+
%tmp36 = arith.addi %tmp31, %tmp17 : tensor<1x1024xi64> loc(#loc143)
|
| 96 |
+
%tmp37 = arith.select %tmp35, %tmp36, %tmp31 : tensor<1x1024xi1>, tensor<1x1024xi64> loc(#loc144)
|
| 97 |
+
%tmp39 = arith.cmpi eq, %tmp37, %cst_3 : tensor<1x1024xi64> loc(#loc145)
|
| 98 |
+
%tmp40 = arith.andi %tmp29, %tmp39 : tensor<1x1024xi1> loc(#loc146)
|
| 99 |
+
%tmp41 = arith.ori %tmp14, %tmp40 : tensor<1x1024xi1> loc(#loc147)
|
| 100 |
+
%tmp43 = arith.select %tmp6, %tmp41, %cst_0 : tensor<1x1024xi1>, tensor<1x1024xi1> loc(#loc148)
|
| 101 |
+
%tmp44 = arith.extui %tmp43 : tensor<1x1024xi1> to tensor<1x1024xi64> loc(#loc149)
|
| 102 |
+
%tmp47 = arith.addi %_tmp46_9, %tmp44 : tensor<1x1024xi64> loc(#loc150)
|
| 103 |
+
%_tmp46_30 = arith.andi %r0_mask, %tmp10_21 : tensor<1x1024xi1> loc(#loc151)
|
| 104 |
+
%_tmp46_31 = arith.select %_tmp46_30, %tmp47, %_tmp46_9 : tensor<1x1024xi1>, tensor<1x1024xi64> loc(#loc152)
|
| 105 |
+
scf.yield %_tmp46_31 : tensor<1x1024xi64> loc(#loc63)
|
| 106 |
+
} loc(#loc101)
|
| 107 |
+
%tmp46 = "tt.reduce"(%_tmp46) <{axis = 1 : i32}> ({
|
| 108 |
+
^bb0(%tmp46_9: i64 loc(callsite(#loc1 at #loc153)), %tmp46_10: i64 loc(callsite(#loc1 at #loc153))):
|
| 109 |
+
%tmp46_11 = arith.addi %tmp46_9, %tmp46_10 : i64 loc(#loc171)
|
| 110 |
+
tt.reduce.return %tmp46_11 : i64 loc(#loc167)
|
| 111 |
+
}) : (tensor<1x1024xi64>) -> tensor<1xi64> loc(#loc167)
|
| 112 |
+
%tmp46_8 = tt.expand_dims %tmp46 {axis = 1 : i32} : tensor<1xi64> -> tensor<1x1xi64> loc(#loc154)
|
| 113 |
+
%tmp49 = arith.cmpi sgt, %tmp46_8, %cst : tensor<1x1xi64> loc(#loc155)
|
| 114 |
+
%tmp51 = arith.cmpi slt, %tmp46_8, %tmp50 : tensor<1x1xi64> loc(#loc156)
|
| 115 |
+
%tmp52 = arith.andi %tmp49, %tmp51 : tensor<1x1xi1> loc(#loc157)
|
| 116 |
+
%tmp54 = arith.extui %tmp52 : tensor<1x1xi1> to tensor<1x1xi32> loc(#loc169)
|
| 117 |
+
%tmp55 = arith.cmpi eq, %tmp46_8, %tmp50 : tensor<1x1xi64> loc(#loc160)
|
| 118 |
+
%tmp57 = arith.extui %tmp55 : tensor<1x1xi1> to tensor<1x1xi32> loc(#loc170)
|
| 119 |
+
%0 = tt.addptr %out_ptr1, %xoffset : !tt.ptr<i32>, i32 loc(#loc76)
|
| 120 |
+
%1 = tt.splat %0 : !tt.ptr<i32> -> tensor<1x1x!tt.ptr<i32>> loc(#loc76)
|
| 121 |
+
tt.store %1, %tmp54, %xmask_4 : tensor<1x1x!tt.ptr<i32>> loc(#loc77)
|
| 122 |
+
%2 = tt.addptr %out_ptr2, %xoffset : !tt.ptr<i32>, i32 loc(#loc78)
|
| 123 |
+
%3 = tt.splat %2 : !tt.ptr<i32> -> tensor<1x1x!tt.ptr<i32>> loc(#loc78)
|
| 124 |
+
tt.store %3, %tmp57, %xmask_4 : tensor<1x1x!tt.ptr<i32>> loc(#loc79)
|
| 125 |
+
tt.return loc(#loc80)
|
| 126 |
+
} loc(#loc)
|
| 127 |
+
} loc(#loc)
|
| 128 |
+
#loc2 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":32:40)
|
| 129 |
+
#loc3 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":90:35)
|
| 130 |
+
#loc4 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":22:28)
|
| 131 |
+
#loc5 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":24:21)
|
| 132 |
+
#loc6 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":25:27)
|
| 133 |
+
#loc7 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":25:37)
|
| 134 |
+
#loc8 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":27:21)
|
| 135 |
+
#loc9 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":27:28)
|
| 136 |
+
#loc10 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":28:19)
|
| 137 |
+
#loc11 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":29:19)
|
| 138 |
+
#loc12 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":33:31)
|
| 139 |
+
#loc13 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":34:29)
|
| 140 |
+
#loc14 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":37:27)
|
| 141 |
+
#loc15 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":38:27)
|
| 142 |
+
#loc16 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":39:26)
|
| 143 |
+
#loc17 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":39:22)
|
| 144 |
+
#loc18 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":41:22)
|
| 145 |
+
#loc19 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":42:26)
|
| 146 |
+
#loc20 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":42:22)
|
| 147 |
+
#loc21 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":44:22)
|
| 148 |
+
#loc22 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":45:22)
|
| 149 |
+
#loc23 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":48:23)
|
| 150 |
+
#loc24 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:35)
|
| 151 |
+
#loc25 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:87)
|
| 152 |
+
#loc26 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:94)
|
| 153 |
+
#loc27 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":49:77)
|
| 154 |
+
#loc28 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":50:23)
|
| 155 |
+
#loc29 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":51:23)
|
| 156 |
+
#loc30 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":52:24)
|
| 157 |
+
#loc31 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":53:23)
|
| 158 |
+
#loc32 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":56:37)
|
| 159 |
+
#loc33 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":57:24)
|
| 160 |
+
#loc34 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":58:24)
|
| 161 |
+
#loc35 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":60:25)
|
| 162 |
+
#loc36 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":61:92)
|
| 163 |
+
#loc37 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":62:92)
|
| 164 |
+
#loc38 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":63:25)
|
| 165 |
+
#loc39 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":64:24)
|
| 166 |
+
#loc40 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":65:24)
|
| 167 |
+
#loc41 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":66:39)
|
| 168 |
+
#loc42 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":67:24)
|
| 169 |
+
#loc43 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":68:24)
|
| 170 |
+
#loc44 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:24)
|
| 171 |
+
#loc45 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:45)
|
| 172 |
+
#loc46 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:38)
|
| 173 |
+
#loc47 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":69:51)
|
| 174 |
+
#loc48 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":70:25)
|
| 175 |
+
#loc49 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":71:25)
|
| 176 |
+
#loc50 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":72:92)
|
| 177 |
+
#loc51 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":73:25)
|
| 178 |
+
#loc52 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":74:24)
|
| 179 |
+
#loc53 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":75:24)
|
| 180 |
+
#loc54 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":76:39)
|
| 181 |
+
#loc55 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":78:25)
|
| 182 |
+
#loc56 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":79:24)
|
| 183 |
+
#loc57 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":80:24)
|
| 184 |
+
#loc58 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":82:38)
|
| 185 |
+
#loc59 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":83:25)
|
| 186 |
+
#loc60 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":85:25)
|
| 187 |
+
#loc61 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":86:36)
|
| 188 |
+
#loc62 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":86:50)
|
| 189 |
+
#loc63 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":86:8)
|
| 190 |
+
#loc64 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":291:36)
|
| 191 |
+
#loc66 = loc("/workspace/specforge/lib/python3.11/site-packages/triton/language/standard.py":261:15)
|
| 192 |
+
#loc67 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":87:30)
|
| 193 |
+
#loc68 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":89:20)
|
| 194 |
+
#loc69 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":91:20)
|
| 195 |
+
#loc70 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":92:20)
|
| 196 |
+
#loc71 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":94:21)
|
| 197 |
+
#loc72 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":93:21)
|
| 198 |
+
#loc73 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":95:21)
|
| 199 |
+
#loc74 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":97:21)
|
| 200 |
+
#loc75 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":96:21)
|
| 201 |
+
#loc76 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":98:25)
|
| 202 |
+
#loc77 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":98:37)
|
| 203 |
+
#loc78 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":99:25)
|
| 204 |
+
#loc79 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":99:37)
|
| 205 |
+
#loc80 = loc("/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/av/cavp7xan77tfr7qytfkp6sjrgkd6hvruiaqfzkeibtl5rtagscng.py":99:4)
|
| 206 |
+
#loc92 = loc("tmp50"(#loc3))
|
| 207 |
+
#loc93 = loc("xoffset"(#loc4))
|
| 208 |
+
#loc94 = loc("xmask"(#loc5))
|
| 209 |
+
#loc95 = loc("r0_base"(#loc6))
|
| 210 |
+
#loc96 = loc("r0_base"(#loc7))
|
| 211 |
+
#loc97 = loc("x1"(#loc8))
|
| 212 |
+
#loc98 = loc("x1"(#loc9))
|
| 213 |
+
#loc99 = loc("x0"(#loc10))
|
| 214 |
+
#loc100 = loc("x2"(#loc11))
|
| 215 |
+
#loc101 = loc("_tmp46"(#loc2))
|
| 216 |
+
#loc102 = loc("r0_index"(#loc12))
|
| 217 |
+
#loc103 = loc("r0_mask"(#loc13))
|
| 218 |
+
#loc104 = loc("r0_4"(#loc14))
|
| 219 |
+
#loc105 = loc("r0_3"(#loc15))
|
| 220 |
+
#loc106 = loc("tmp0"(#loc16))
|
| 221 |
+
#loc107 = loc("tmp0"(#loc17))
|
| 222 |
+
#loc108 = loc("tmp2"(#loc18))
|
| 223 |
+
#loc109 = loc("tmp3"(#loc19))
|
| 224 |
+
#loc110 = loc("tmp3"(#loc20))
|
| 225 |
+
#loc111 = loc("tmp5"(#loc21))
|
| 226 |
+
#loc112 = loc("tmp6"(#loc22))
|
| 227 |
+
#loc113 = loc("tmp9"(#loc23))
|
| 228 |
+
#loc114 = loc("tmp10"(#loc24))
|
| 229 |
+
#loc115 = loc("tmp10"(#loc25))
|
| 230 |
+
#loc116 = loc("tmp10"(#loc26))
|
| 231 |
+
#loc117 = loc("tmp10"(#loc27))
|
| 232 |
+
#loc118 = loc("tmp11"(#loc28))
|
| 233 |
+
#loc119 = loc("tmp12"(#loc29))
|
| 234 |
+
#loc120 = loc("tmp13"(#loc30))
|
| 235 |
+
#loc121 = loc("tmp14"(#loc31))
|
| 236 |
+
#loc122 = loc("tmp17"(#loc32))
|
| 237 |
+
#loc123 = loc("tmp18"(#loc33))
|
| 238 |
+
#loc124 = loc("tmp19"(#loc34))
|
| 239 |
+
#loc125 = loc("tmp21"(#loc35))
|
| 240 |
+
#loc126 = loc("tmp22"(#loc36))
|
| 241 |
+
#loc127 = loc("tmp23"(#loc37))
|
| 242 |
+
#loc128 = loc("tmp24"(#loc38))
|
| 243 |
+
#loc129 = loc("tmp25"(#loc39))
|
| 244 |
+
#loc130 = loc("tmp26"(#loc40))
|
| 245 |
+
#loc131 = loc("tmp27"(#loc41))
|
| 246 |
+
#loc132 = loc("tmp28"(#loc42))
|
| 247 |
+
#loc133 = loc("tmp29"(#loc43))
|
| 248 |
+
#loc134 = loc("tmp30"(#loc44))
|
| 249 |
+
#loc135 = loc("tmp30"(#loc45))
|
| 250 |
+
#loc136 = loc("tmp30"(#loc46))
|
| 251 |
+
#loc137 = loc("tmp30"(#loc47))
|
| 252 |
+
#loc138 = loc("tmp31"(#loc48))
|
| 253 |
+
#loc139 = loc("tmp32"(#loc49))
|
| 254 |
+
#loc140 = loc("tmp33"(#loc50))
|
| 255 |
+
#loc141 = loc("tmp34"(#loc51))
|
| 256 |
+
#loc142 = loc("tmp35"(#loc52))
|
| 257 |
+
#loc143 = loc("tmp36"(#loc53))
|
| 258 |
+
#loc144 = loc("tmp37"(#loc54))
|
| 259 |
+
#loc145 = loc("tmp39"(#loc55))
|
| 260 |
+
#loc146 = loc("tmp40"(#loc56))
|
| 261 |
+
#loc147 = loc("tmp41"(#loc57))
|
| 262 |
+
#loc148 = loc("tmp43"(#loc58))
|
| 263 |
+
#loc149 = loc("tmp44"(#loc59))
|
| 264 |
+
#loc150 = loc("tmp47"(#loc60))
|
| 265 |
+
#loc151 = loc("_tmp46"(#loc61))
|
| 266 |
+
#loc152 = loc("_tmp46"(#loc62))
|
| 267 |
+
#loc154 = loc("tmp46"(#loc67))
|
| 268 |
+
#loc155 = loc("tmp49"(#loc68))
|
| 269 |
+
#loc156 = loc("tmp51"(#loc69))
|
| 270 |
+
#loc157 = loc("tmp52"(#loc70))
|
| 271 |
+
#loc158 = loc("tmp54"(#loc71))
|
| 272 |
+
#loc159 = loc("tmp53"(#loc72))
|
| 273 |
+
#loc160 = loc("tmp55"(#loc73))
|
| 274 |
+
#loc161 = loc("tmp57"(#loc74))
|
| 275 |
+
#loc162 = loc("tmp56"(#loc75))
|
| 276 |
+
#loc163 = loc(fused[#loc107, #loc106])
|
| 277 |
+
#loc164 = loc(fused[#loc110, #loc109])
|
| 278 |
+
#loc165 = loc(fused[#loc116, #loc94])
|
| 279 |
+
#loc166 = loc(fused[#loc136, #loc135])
|
| 280 |
+
#loc167 = loc(callsite(#loc64 at #loc153))
|
| 281 |
+
#loc169 = loc(fused[#loc158, #loc159])
|
| 282 |
+
#loc170 = loc(fused[#loc161, #loc162])
|
| 283 |
+
#loc171 = loc(callsite(#loc66 at #loc167))
|
SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/__grp__triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"child_paths": {"triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.source": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.source", "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ttir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ttir", "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ttgir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ttgir", "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.llir": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.llir", "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ptx": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.ptx", "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.cubin": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.cubin", "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.json": "/workspace/hanrui/SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.json"}}
|
SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.cubin
ADDED
|
Binary file (23.1 kB). View file
|
|
|
SpecForge-ext/cache/compiled_kernels/triton/3/EB4J5U2HKNQBLXRWK6B5L6ATOH55AWD3MB7P63KH5AKRGRDZER7A/triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"hash": "20789ed347536015de365783d5f81371fbd0587b607eff6d47e815134479247e", "target": {"backend": "cuda", "arch": 90, "warp_size": 32}, "num_warps": 2, "num_ctas": 1, "num_stages": 1, "warp_size": 32, "maxnreg": null, "cluster_dims": [1, 1, 1], "ptx_version": null, "ptx_options": null, "ir_override": null, "enable_fp_fusion": true, "launch_cooperative_grid": false, "launch_pdl": false, "supported_fp8_dtypes": ["fp8e4b15", "fp8e4nv", "fp8e5"], "deprecated_fp8_dot_operand_dtypes": ["fp8e4b15"], "default_dot_input_precision": "tf32", "allowed_dot_input_precisions": ["tf32", "tf32x3", "ieee"], "max_num_imprecise_acc_default": 1073741824, "extern_libs": [["libdevice", "/workspace/specforge/lib/python3.11/site-packages/triton/backends/nvidia/lib/libdevice.10.bc"]], "debug": true, "backend_name": "cuda", "sanitize_overflow": false, "arch": "sm90", "instrumentation_mode": "", "triton_version": "3.5.1", "tensordesc_meta": [], "shared": 0, "tmem_size": 0, "global_scratch_size": 0, "global_scratch_align": 1, "profile_scratch_size": 0, "profile_scratch_align": 1, "name": "triton_per_fused__to_copy_clone_slice_sort_sum_transpose_3"}
|