x87 (auch numeric processor extension[1], NPX) bezeichnet eine Untermenge des Befehlssatzes der x86-Architektur für Gleitkommaberechnungen. Es ist die älteste Befehlssatzerweiterung für diese Architektur. Ihre Befehle sind nicht notwendig, um funktionierende Programme zu erzeugen, aber sie bieten Hardwareimplementierungen für häufige numerische Aufgaben, die damit wesentlich (10× bis 30×) schneller erledigt werden.
Bis zum Intel 80386 bzw. i486SX wurden die x87-Befehle durch einen separaten Koprozessor implementiert. Dieser Koprozessor musste gesondert erworben und in den dafür vorgesehenen Sockel auf der Hauptplatine eingesetzt werden. Wenn der Koprozessor fehlte, mussten Compiler oder Programmierer langsame Software-Bibliotheksprozeduren aufrufen, um derartige Gleitkommaoperationen durchzuführen. Gegenüber der Emulation durch Software war die Gleitkommarechnung auf einer 80x87-FPU 75- bis 100-mal schneller.[2]
In späteren x86-Prozessorgenerationen, aber schon ab dem (teureren) i486DX war der FPU-Teil meist schon im Hauptprozessor integriert. Der Begriff x87 wird aber immer noch verwendet, um die Untermenge des Befehlssatzes zu bezeichnen, die ursprünglich in den x87-Koprozessoren verarbeitet wurde. Seit der Einführung von SSE2 haben x87-Einheiten viel von ihrer früheren Bedeutung verloren. Für Berechnungen, die eine Mantisse von 64 Bit erfordern, wie sie mit den 80 Bit breiten x87-Registern möglich ist, sind sie aber weiterhin wichtig.