La funzione intrinseca[1][2] (dal latino intrinsĕcus) nel software per computer, nella teoria del compilatore, una funzione intrinseca (o funzione incorporata) è una funzione (subroutine) disponibile per l'uso in un determinato linguaggio di programmazione la cui implementazione è gestita appositamente dal compilatore. In genere, può sostituire una sequenza di istruzioni generate automaticamente per la chiamata della funzione originale, simile a una funzione in linea. A differenza di una funzione inline, il compilatore ha una conoscenza intima di una funzione intrinseca e può quindi integrarla e ottimizzarla meglio per una data situazione.
I compilatori che implementano funzioni intrinseche generalmente li abilitano solo quando un programma richiede l'ottimizzazione, altrimenti ricade su un'implementazione predefinita fornita dal sistema di runtime della lingua (ambiente).
Le funzioni intrinseche sono spesso utilizzate per implementare esplicitamente la vettorizzazione e la parallelizzazione in linguaggi che non affrontano tali costrutti. Alcune API (application programming interfaces), ad esempio AltiVec e OpenMP, utilizzano funzioni intrinseche per dichiarare, rispettivamente, operazioni vectorizable e multiprocessing -aware durante la compilazione. Il compilatore analizza le funzioni intrinseche e le converte in codice matematico vettoriale o codice multiprocessing appropriato per la piattaforma di destinazione.