http://bugs.llvm.org/show_bug.cgi?id=32330
Android x86_64 target uses f128 type and stores f128 values
in %xmm* registers.
SoftenFloatRes_EXTRACT_VECTOR_ELT should not convert
result value from f128 to i128.
Details
Diff Detail
Event Timeline
LGTM. Adding some other contributors to SelectionDAG to review.
test/CodeGen/X86/fp128-extract.ll | ||
---|---|---|
12 | Remove hidden, local_unnamed_addr and align? | |
13 | I also think the simplified version of the test below is preferable because it's easier to understand why the test fails without this fix. define fp128 @foo(<2 x double> %x) { %a = fpext <2 x double> %x to <2 x fp128> %1 = extractelement <2 x fp128> %a, i32 0 %2 = extractelement <2 x fp128> %a, i32 1 %3 = fmul fp128 %1, %2 ret fp128 %3 } If you want to test this extended pattern from boost, consider adding both? |
This also LGTM. Minor comments inline.
test/CodeGen/X86/fp128-extract.ll | ||
---|---|---|
13 | Is TestExtract representive of pr32330 ? If so you should name it as such. |
test/CodeGen/X86/fp128-extract.ll | ||
---|---|---|
13 | This test case is extremely simplified to contain only the extractelement operation, |
Remove hidden, local_unnamed_addr and align?