Debo unificar dos núcleos similares con una declaración 'si', arriesgando pérdida de rendimiento?

Tengo 2 funciones de kernel muy similares, en el sentido de que el código es casi el mismo, pero con una ligera diferencia. Actualmente tengo 2 opciones:

Escriba 2 métodos diferentes (pero muy similares)Escriba un solo núcleo y coloque los bloques de código que difieren en una instrucción if / else

¿Cuánto afectará una declaración if a mi algoritmo de rendimiento?
Sé que no hay ramificación, ya que todos los hilos en todos los bloques ingresarán el if o el else.
Entonces una sola declaración if disminuirá mi rendimiento si la función del núcleo se llama muchas veces?

Respuestas a la pregunta(2)

Su respuesta a la pregunta