Part 1 was submitted in http://reviews.llvm.org/D15134.
Bugs:
Changes:
- X86RegisterInfo.td, X86RecognizableInstr.cpp: Add FR128 register class.
- X86CallingConv.td: Pass f128 values in XMM registers or on stack.
- X86InstrCompiler.td, X86InstrInfo.td, X86InstrSSE.td: Add instruction selection patterns for f128.
- X86ISelLowering.cpp: When target has MMX registers, configure MVT::f128 in FR128RegClass, with TypeSoftenFloat action, and custom actions for some opcodes. Add missed cases of MVT::f128 in places that handle f32, f64, or vector types. Add TODO comment to support f128 type in inline assembly code.
- Add unit tests for x86_64 fp128 type.
This needs some explanation. Why can the Op1's value type be i128?