[PATCH] D142178: [X86][WIP] Change precision control to FP80 during u64->fp32 conversion on Windows.

icedrocket via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 23 06:14:00 PST 2023


icedrocket added inline comments.


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:37267-37290
+    // Load the old value of the control word...
+    Register OldCW = MF->getRegInfo().createVirtualRegister(&X86::GR32RegClass);
+    addFrameReference(BuildMI(*BB, MI, DL, TII->get(X86::MOVZX32rm16), OldCW),
+                      OrigCWFrameIdx);
+
+    // OR 0b11 into bit 8 and 9. 0b11 is the encoding for double extended
+    // precision.
----------------
What about just set value to 0x37f instead of applying bitwise OR to original value? We can save two registers by doing this, and only need two bytes of memory to hold the static value.



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D142178/new/

https://reviews.llvm.org/D142178



More information about the llvm-commits mailing list