NarrowOps 297 src/HexagonOptimize.cpp { "halide.hexagon.mpy.vub.ub", wild_u16x*bc(wild_u16), Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 299 src/HexagonOptimize.cpp { "halide.hexagon.mpy.vuh.uh", wild_u32x*bc(wild_u32), Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 300 src/HexagonOptimize.cpp { "halide.hexagon.mpy.vh.h", wild_i32x*bc(wild_i32), Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 321 src/HexagonOptimize.cpp { "halide.hexagon.mpy.vub.vub", wild_u16x*wild_u16x, Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 322 src/HexagonOptimize.cpp { "halide.hexagon.mpy.vuh.vuh", wild_u32x*wild_u32x, Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 323 src/HexagonOptimize.cpp { "halide.hexagon.mpy.vb.vb", wild_i16x*wild_i16x, Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 324 src/HexagonOptimize.cpp { "halide.hexagon.mpy.vh.vh", wild_i32x*wild_i32x, Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 611 src/HexagonOptimize.cpp { "halide.hexagon.add_vuh.vub.vub", wild_u16x + wild_u16x, Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 612 src/HexagonOptimize.cpp { "halide.hexagon.add_vuw.vuh.vuh", wild_u32x + wild_u32x, Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 613 src/HexagonOptimize.cpp { "halide.hexagon.add_vw.vh.vh", wild_i32x + wild_i32x, Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 684 src/HexagonOptimize.cpp { "halide.hexagon.sub_vuh.vub.vub", wild_u16x - wild_u16x, Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 685 src/HexagonOptimize.cpp { "halide.hexagon.sub_vuw.vuh.vuh", wild_u32x - wild_u32x, Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 686 src/HexagonOptimize.cpp { "halide.hexagon.sub_vw.vh.vh", wild_i32x - wild_i32x, Pattern::InterleaveResult | Pattern::NarrowOps }, NarrowOps 724 src/HexagonOptimize.cpp { "halide.hexagon.avg.vub.vub", u8((wild_u16x + wild_u16x)/2), Pattern::NarrowOps }, NarrowOps 725 src/HexagonOptimize.cpp { "halide.hexagon.avg.vuh.vuh", u16((wild_u32x + wild_u32x)/2), Pattern::NarrowOps }, NarrowOps 726 src/HexagonOptimize.cpp { "halide.hexagon.avg.vh.vh", i16((wild_i32x + wild_i32x)/2), Pattern::NarrowOps }, NarrowOps 727 src/HexagonOptimize.cpp { "halide.hexagon.avg.vw.vw", i32((wild_i64x + wild_i64x)/2), Pattern::NarrowOps }, NarrowOps 729 src/HexagonOptimize.cpp { "halide.hexagon.avg_rnd.vub.vub", u8((wild_u16x + wild_u16x + 1)/2), Pattern::NarrowOps }, NarrowOps 730 src/HexagonOptimize.cpp { "halide.hexagon.avg_rnd.vuh.vuh", u16((wild_u32x + wild_u32x + 1)/2), Pattern::NarrowOps }, NarrowOps 731 src/HexagonOptimize.cpp { "halide.hexagon.avg_rnd.vh.vh", i16((wild_i32x + wild_i32x + 1)/2), Pattern::NarrowOps }, NarrowOps 732 src/HexagonOptimize.cpp { "halide.hexagon.avg_rnd.vw.vw", i32((wild_i64x + wild_i64x + 1)/2), Pattern::NarrowOps }, NarrowOps 735 src/HexagonOptimize.cpp { "halide.hexagon.navg.vh.vh", i16_sat((wild_i32x - wild_i32x)/2), Pattern::NarrowOps }, NarrowOps 736 src/HexagonOptimize.cpp { "halide.hexagon.navg.vw.vw", i32_sat((wild_i64x - wild_i64x)/2), Pattern::NarrowOps }, NarrowOps 740 src/HexagonOptimize.cpp { "halide.hexagon.satub_add.vub.vub", u8_sat(wild_u16x + wild_u16x), Pattern::NarrowOps }, NarrowOps 741 src/HexagonOptimize.cpp { "halide.hexagon.satuh_add.vuh.vuh", u16_sat(wild_u32x + wild_u32x), Pattern::NarrowOps }, NarrowOps 742 src/HexagonOptimize.cpp { "halide.hexagon.satuw_add.vuw.vuw", u32_sat(wild_u64x + wild_u64x), Pattern::NarrowOps | Pattern::v62 }, NarrowOps 743 src/HexagonOptimize.cpp { "halide.hexagon.sath_add.vh.vh", i16_sat(wild_i32x + wild_i32x), Pattern::NarrowOps }, NarrowOps 744 src/HexagonOptimize.cpp { "halide.hexagon.satw_add.vw.vw", i32_sat(wild_i64x + wild_i64x), Pattern::NarrowOps }, NarrowOps 748 src/HexagonOptimize.cpp { "halide.hexagon.sath_sub.vh.vh", i16_sat(wild_i32x - wild_i32x), Pattern::NarrowOps }, NarrowOps 749 src/HexagonOptimize.cpp { "halide.hexagon.satw_sub.vw.vw", i32_sat(wild_i64x - wild_i64x), Pattern::NarrowOps }, NarrowOps 758 src/HexagonOptimize.cpp { "halide.hexagon.trunc_mpy.vw.vw", i32((wild_i64x*wild_i64x)/Expr(static_cast<int64_t>(1) << 32)), Pattern::NarrowOps }, NarrowOps 761 src/HexagonOptimize.cpp { "halide.hexagon.trunc_satw_mpy2.vh.h", i16_sat((wild_i32x*bc(wild_i32))/32768), Pattern::NarrowOps }, NarrowOps 762 src/HexagonOptimize.cpp { "halide.hexagon.trunc_satw_mpy2.vh.h", i16_sat((bc(wild_i32)*wild_i32x)/32768), Pattern::NarrowOps | Pattern::SwapOps01 }, NarrowOps 763 src/HexagonOptimize.cpp { "halide.hexagon.trunc_satw_mpy2_rnd.vh.h", i16_sat((wild_i32x*bc(wild_i32) + 16384)/32768), Pattern::NarrowOps }, NarrowOps 764 src/HexagonOptimize.cpp { "halide.hexagon.trunc_satw_mpy2_rnd.vh.h", i16_sat((bc(wild_i32)*wild_i32x + 16384)/32768), Pattern::NarrowOps | Pattern::SwapOps01 }, NarrowOps 767 src/HexagonOptimize.cpp { "halide.hexagon.trunc_satw_mpy2_rnd.vh.vh", i16_sat((wild_i32x*wild_i32x + 16384)/32768), Pattern::NarrowOps }, NarrowOps 768 src/HexagonOptimize.cpp { "halide.hexagon.trunc_satdw_mpy2.vw.vw", i32_sat((wild_i64x*wild_i64x)/Expr(static_cast<int64_t>(1) << 31)), Pattern::NarrowOps }, NarrowOps 769 src/HexagonOptimize.cpp { "halide.hexagon.trunc_satdw_mpy2_rnd.vw.vw", i32_sat((wild_i64x*wild_i64x + (1 << 30))/Expr(static_cast<int64_t>(1) << 31)), Pattern::NarrowOps },