Issue 151375
Summary LLVM 21.1.0: Unable to expand result for ppcf128 with ISD::AssertNoFPClass
Labels new issue
Assignees
Reporter amy-kwan
    I've encountered the following issue on LLVM 21.1.0 rc1 as a result of https://github.com/llvm/llvm-project/pull/138839#issuecomment-3137287195 on PPC64LE, with the ppc_fp128 type.

```
$ cat t.ll
target datalayout = "e-m:e-Fn32-i64:64-i128:128-n32:64-S128-v256:256:256-v512:512:512"
target triple = "powerpc64le-unknown-linux-gnu"

define ppc_fp128 @test(ppc_fp128 nofpclass(nan) %s) {
entry:
  ret ppc_fp128 %s
}

$ llc < t.ll
	.abiversion 2
	.file	"<stdin>"
ExpandFloatResult #0: t7: ppcf128 = AssertNoFPClass t5, TargetConstant:i32<3>

LLVM ERROR: Do not know how to expand the result of this operator!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: llc
1.	Running pass 'Function Pass Manager' on module '<stdin>'.
2.	Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on function '@test'
 #0 0x0000071c5b0bb42c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) 
 #1 0x0000071c5b0bbbd4 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #2 0x0000071c5b0b7fac llvm::sys::RunSignalHandlers()  
 #3 0x0000071c5b0bc83c SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #4 0x00006b262e170444 (linux-vdso64.so.1+0x444)
 #5 0x00006b262d8f55fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #6 0x00006b262d8f55fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #7 0x00006b262d8f55fc pthread_kill ./nptl/pthread_kill.c:89:10
 #8 0x00006b262d88bd5c raise ./signal/../sysdeps/posix/raise.c:26:13
 #9 0x00006b262d86645c abort ./stdlib/abort.c:79:7
#10 0x0000071c5aff42fc llvm::report_fatal_error(llvm::Twine const&, bool)
#11 0x0000071c5aff402c llvm::report_fatal_error(char const*, bool)
#12 0x0000071c5aec252c llvm::DAGTypeLegalizer::ExpandFloatResult(llvm::SDNode*, unsigned int) LegalizeFloatTypes.cpp:0:0
#13 0x0000071c5ae5bbcc llvm::DAGTypeLegalizer::run() LegalizeTypes.cpp:0:0
. . .
```

The `ISD::AssertNoFPClass` presumably needs to know how to expand float results. 
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to