This patch enables support for .f16x2 operations.
- Added new register type Float16x2.
- Added support for .f16x2 instructions.
- Added handling of vectorized loads/stores of v2f16 values.
Paths
| Differential D30057
[NVPTX] Added support for v2f16 operations. ClosedPublic Authored by tra on Feb 16 2017, 5:06 PM.
Details Summary This patch enables support for .f16x2 operations.
Diff Detail
Event Timelinetra added a parent revision: D30011: [NVPTX] Unify vectorization of load/stores of aggregate arguments and return values.. Comment Actions I really like this patch.
tra marked 12 inline comments as done. Comment ActionsAddressed Justin's comments. tra added inline comments.
This revision is now accepted and ready to land.Feb 23 2017, 10:21 AM tra added a child revision: D30310: [NVPTX] Fixed invalid use of immediate arguments for .f16x2 instructions..Feb 23 2017, 2:19 PM Closed by commit rL296032: [NVPTX] Added support for .f16x2 instructions. (authored by tra). · Explain WhyFeb 23 2017, 2:50 PM This revision was automatically updated to reflect the committed changes. tra marked 3 inline comments as done.
Revision Contents
Diff 89448 lib/Target/NVPTX/InstPrinter/NVPTXInstPrinter.cpp
lib/Target/NVPTX/NVPTXAsmPrinter.cpp
lib/Target/NVPTX/NVPTXISelDAGToDAG.h
lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
lib/Target/NVPTX/NVPTXISelLowering.h
lib/Target/NVPTX/NVPTXISelLowering.cpp
lib/Target/NVPTX/NVPTXInstrInfo.cpp
lib/Target/NVPTX/NVPTXInstrInfo.td
lib/Target/NVPTX/NVPTXIntrinsics.td
lib/Target/NVPTX/NVPTXRegisterInfo.cpp
lib/Target/NVPTX/NVPTXRegisterInfo.td
test/CodeGen/NVPTX/LoadStoreVectorizer.ll
test/CodeGen/NVPTX/f16-instructions.ll
test/CodeGen/NVPTX/f16x2-instructions.ll
test/CodeGen/NVPTX/param-load-store.ll
|
I'm confused how this works without additional changes elsewhere. We increase fromTypeWidth, but this doesn't affect the selection of Opcode below. So how do we know that this is a packed-i32 load rather than a regular f16 load?