Details
- Reviewers
arsenm nhaehnle - Commits
- rG0f84e3ee0094: Merging r323908: --------------------------------------------------------------…
rG13e4741275a1: AMDGPU: Add intrinsics llvm.amdgcn.cvt.{pknorm.i16, pknorm.u16, pk.i16, pk.u16}
rL324103: Merging r323908:
rL323908: AMDGPU: Add intrinsics llvm.amdgcn.cvt.{pknorm.i16, pknorm.u16, pk.i16, pk.u16}
Diff Detail
- Build Status
Buildable 13483 Build 13483: arc lint + arc unit
Event Timeline
include/llvm/IR/IntrinsicsAMDGPU.td | ||
---|---|---|
241–244 | Since on some subtargets v2i16/v2f16 are legal, they should probably use that return type directly. This will require a little more work for the other subtargets in the custom lowering. Alternatively, aren't these all just pairs of convert (x / constant)? Can we just directly match that? |
include/llvm/IR/IntrinsicsAMDGPU.td | ||
---|---|---|
241–244 | Not sure how to add support for v2i16, but Mesa will never need v2i16 from these intrinsics. The intrinsics are non-trivial. We are talking about 10 or so instructions when emulated. |
include/llvm/IR/IntrinsicsAMDGPU.td | ||
---|---|---|
241–244 | To add support you do the same thing that ReplaceNodeResults does for amdgcn_cvt_pkrtz. For targets without legal packed types, it just replaces it with i32 and casts back |
Since on some subtargets v2i16/v2f16 are legal, they should probably use that return type directly. This will require a little more work for the other subtargets in the custom lowering.
Alternatively, aren't these all just pairs of convert (x / constant)? Can we just directly match that?