================
@@ -985,10 +1017,23 @@ class ScalarExprEmitter
   Value *EmitCompare(const BinaryOperator *E, llvm::CmpInst::Predicate 
UICmpOpc,
                      llvm::CmpInst::Predicate SICmpOpc,
                      llvm::CmpInst::Predicate FCmpOpc, bool IsSignaling);
-#define VISITCOMP(CODE, UI, SI, FP, SIG) \
-    Value *VisitBin##CODE(const BinaryOperator *E) { \
-      return EmitCompare(E, llvm::ICmpInst::UI, llvm::ICmpInst::SI, \
-                         llvm::FCmpInst::FP, SIG); }
+  Value *EmitSoftX87LongDoubleComp(const BinaryOperator *E,
+                                   llvm::CmpInst::Predicate FCmpOpc);
+  Value *EmitSoftX87LongDoubleBinOp(
+      const BinOpInfo &Ops,
+      Value *(ScalarExprEmitter::*Emit)(const BinOpInfo &));
+#define VISITCOMP(CODE, UI, SI, FP, SIG)                                       
\
+  Value *VisitBin##CODE(const BinaryOperator *E) {                             
\
+    if (CGF.getTarget().hasSoftX87LongDouble() &&                              
\
+        E->getLHS()->getType()->isSpecificBuiltinType(                         
\
+            BuiltinType::LongDouble) &&                                        
\
+        E->getRHS()->getType()->isSpecificBuiltinType(                         
\
+            BuiltinType::LongDouble))                                          
\
+      return EmitSoftX87LongDoubleComp(E, llvm::FCmpInst::FP);                 
\
----------------
lhmouse wrote:

This is not a strict FP implementation, so WONTFIX.


https://github.com/llvm/llvm-project/pull/237057
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to