[LLVMdev] What is the state of LLVM's ARM backend

Xerxes RĂ„nby xerxes at zafena.se
Wed Apr 8 07:30:36 PDT 2009


Duncan Sands skrev:
> Hi Xerxes,
>
>   
>> 4. softfloat related errors
>> http://labb.zafena.se/shark-testing/llvmARMCodeGenFailures200904/softenfloat_Do_not_know_how_to_soften_the_result_of_this_operator/
>> example:
>>
>> root at overo:/home/xerxes/llvm-test/fail/CodeGen/softenfloat# llvm-as < 2007-11-19-VectorSplitting.ll  | llc
>> SoftenFloatResult #0: 0x614e00: f32 = undef 
>> llc: /usr/src/openembedded/overo/tmp/work/armv7a-angstrom-linux-gnueabi/llvm2.6-2.6-r0/llvm-2.6/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:54: void llvm::DAGTypeLegalizer::SoftenFloatResult(llvm::SDNode*, unsigned int): Assertion `0 && "Do not know how to soften the result of this operator!"' failed.
>> Stack dump:
>> 0.	Program arguments: llc 
>> 1.	Running pass 'ARM Instruction Selection' on function '@execute_shader'
>> Aborted
>>     
>
> this is now fixed.
>
> Ciao,
>
> Duncan.
>   
Great work Duncan!
I recompiled llvm and restested the failing softenfloat tests on my machine:

2007-11-19-VectorSplitting.ll
OK!
vector-constantexpr.ll
OK!
vector-constantexpr.ll
OK!

llvm-as < print-arith-fp.l
l | llc
SoftenFloatResult #0: 0x61aad8: f64 = frem 0x619fb0, 0x619ea0
llc: 
/usr/src/openembedded/overo/tmp/work/armv7a-angstrom-linux-gnueabi/llvm2.6-2.6-r1/llvm-2.6/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:54: 
void llvm::DAGTypeLegalizer::SoftenFloatResult(llvm::SDNode*, unsigned 
int): Assertion `0 && "Do not know how to soften the result of this 
operator!"' failed.
Stack dump:
0.    Program arguments: llc
1.    Running pass 'ARM Instruction Selection' on function '@main'
Aborted

uname -a
Linux overo 2.6.28-omap1 #1 Mon Mar 2 08:40:39 PST 2009 armv7l unknown

llc --version
Low Level Virtual Machine (http://llvm.org/):
  llvm version 2.6svn
  Optimized build with assertions.
  Built Apr  8 2009(16:04:09).

it seems we need to fix softenfloat f64 as well.

Cheers
Xerxes



More information about the llvm-dev mailing list