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?