diff --git a/tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_left_shift.h b/tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_left_shift.h index b2324d64633..2c69fe1353c 100644 --- a/tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_left_shift.h +++ b/tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_left_shift.h @@ -17,13 +17,9 @@ template inline void calculate_left_shift(const uint shift_amt) { #pragma GCC unroll 0 for (int d = 0; d < ITERATIONS; d++) { - vInt val = dst_reg[0]; - vInt v = val; - - val = val << shift_amt; - val = setsgn(val, v); - dst_reg[0] = val; - + TTI_SFPLOAD(0,12,ADDR_MOD_7,0); + TT_SFPSHFT(shift_amt,0,0,1); + TTI_SFPSTORE(0,12,ADDR_MOD_7,0); dst_reg++; } } diff --git a/tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_left_shift.h b/tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_left_shift.h index b2324d64633..ef7056e8834 100644 --- a/tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_left_shift.h +++ b/tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_left_shift.h @@ -17,13 +17,9 @@ template inline void calculate_left_shift(const uint shift_amt) { #pragma GCC unroll 0 for (int d = 0; d < ITERATIONS; d++) { - vInt val = dst_reg[0]; - vInt v = val; - - val = val << shift_amt; - val = setsgn(val, v); - dst_reg[0] = val; - + TTI_SFPLOAD(0,4,3,0); + TT_SFPSHFT(shift_amt,0,0,1); + TTI_SFPSTORE(0,4,3,0); dst_reg++; } }