[PATCH] D107452: [AArch64] Fix assert AArch64TargetLowering::ReplaceNodeResults

Simon Wallis via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 4 08:48:08 PDT 2021


This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG926975267175: [AArch64] Fix assert AArch64TargetLowering::ReplaceNodeResults (authored by simonwallis2).

Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D107452

Files:
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/test/CodeGen/AArch64/fptosi-strictfp.ll


Index: llvm/test/CodeGen/AArch64/fptosi-strictfp.ll
===================================================================
--- /dev/null
+++ llvm/test/CodeGen/AArch64/fptosi-strictfp.ll
@@ -0,0 +1,23 @@
+; RUN: llc < %s | FileCheck %s
+target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
+target triple = "aarch64-arm-none-eabi"
+
+define i128 @test_fixtfti(fp128 %ld) {
+; CHECK-LABEL: test_fixtfti:
+; CHECK: bl	__fixtfti
+entry:
+  %conv = call i128 @llvm.experimental.constrained.fptosi.i128.f128(fp128 %ld, metadata !"fpexcept.strict")
+  ret i128 %conv
+}
+
+declare i128 @llvm.experimental.constrained.fptosi.i128.f128(fp128, metadata)
+
+define i128 @test_fixtftu(fp128 %ld) {
+; CHECK-LABEL: test_fixtftu:
+; CHECK: bl	__fixunstfti
+entry:
+  %conv = call i128 @llvm.experimental.constrained.fptoui.i128.f128(fp128 %ld, metadata !"fpexcept.strict")
+  ret i128 %conv
+}
+
+declare i128 @llvm.experimental.constrained.fptoui.i128.f128(fp128, metadata)
Index: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
===================================================================
--- llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+++ llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
@@ -17320,6 +17320,8 @@
     return;
   case ISD::FP_TO_UINT:
   case ISD::FP_TO_SINT:
+  case ISD::STRICT_FP_TO_SINT:
+  case ISD::STRICT_FP_TO_UINT:
     assert(N->getValueType(0) == MVT::i128 && "unexpected illegal conversion");
     // Let normal code take care of it by not adding anything to Results.
     return;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D107452.364123.patch
Type: text/x-patch
Size: 1526 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210804/f85aa05d/attachment.bin>


More information about the llvm-commits mailing list