[llvm-dev] Potential bug in SelectionDAGLegalize::ConvertNodeToLibcall()? (original) (raw)
Justin Hibbits via llvm-dev llvm-dev at lists.llvm.org
Wed Jan 2 07:53:53 PST 2019
- Previous message: [llvm-dev] intra vs inter module LTO (A. Ilchinger via llvm-dev)
- Next message: [llvm-dev] Potential bug in SelectionDAGLegalize::ConvertNodeToLibcall()?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
I have a custom lowering operation on ISD::BITCAST for the PowerPC/SPE target, to convert 'f64 bitcast (i64 build_pair i32, i32)' into a 'f64 BUILD_SPE64 i32, i32' node, which can be seen at https://reviews.llvm.org/D54583. However, when building compiler-rt's lib/builtins/divdc3.c an assertion is triggered that BUILD_PAIR is not legal on line 24. There should be no bitcast(buildpair) anywhere in the generation, as it should all be lowered. However, this is not the case when lowering to a libcall it seems. The relevant debug output, is here:
Creating new node: t118: i64 = build_pair t117,t116, /home/chmeee/freebsd/contrib/compiler-rt/lib/builtins/divdc3.c:24:22 Creating new node: t119: f64 = bitcast t118, /home/chmeee/freebsd/contrib/compiler-rt/lib/builtins/divdc3.c:24:22 Created libcall: t119: f64 = bitcast t118, /home/chmeee/freebsd/contrib/compiler-rt/lib/builtins/divdc3.c:24:22 Successfully converted node to libcall ... replacing: t38: f64 = fmaxnum t36, t37, /home/chmeee/freebsd/contrib/compiler-rt/lib/builtins/divdc3.c:24:22 with: t119: f64 = bitcast t118, /home/chmeee/freebsd/contrib/compiler-rt/lib/builtins/divdc3.c:24:22
Is this a real bug, or am I missing something in my patch? After spending quite a while on it I'm at a loss.
Thanks, Justin
- Previous message: [llvm-dev] intra vs inter module LTO (A. Ilchinger via llvm-dev)
- Next message: [llvm-dev] Potential bug in SelectionDAGLegalize::ConvertNodeToLibcall()?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]