|
30 | 30 | // * llvm.nvvm.max.ui --> select(x ule y, x, y) |
31 | 31 | // * llvm.nvvm.max.ull --> ibid. |
32 | 32 | // * llvm.nvvm.h2f --> llvm.convert.to.fp16.f32 |
33 | | -// * llvm.nvvm.bitcast.f2i --> bitcast |
34 | | -// * llvm.nvvm.bitcast.i2f --> ibid. |
35 | | -// * llvm.nvvm.bitcast.d2ll --> ibid. |
36 | | -// * llvm.nvvm.bitcast.ll2d --> ibid. |
| 33 | +// * llvm.nvvm.bitcast.f2i --> bitcast |
| 34 | +// * llvm.nvvm.bitcast.i2f --> ibid. |
| 35 | +// * llvm.nvvm.bitcast.d2ll --> ibid. |
| 36 | +// * llvm.nvvm.bitcast.ll2d --> ibid. |
| 37 | +// * llvm.nvvm.ptr.gen.to.global --> addrspacecast |
| 38 | +// * llvm.nvvm.ptr.gen.to.shared --> ibid. |
| 39 | +// * llvm.nvvm.ptr.gen.to.constant --> ibid. |
| 40 | +// * llvm.nvvm.ptr.gen.to.local --> ibid. |
| 41 | +// * llvm.nvvm.ptr.global.to.gen --> ibid. |
| 42 | +// * llvm.nvvm.ptr.shared.to.gen --> ibid. |
| 43 | +// * llvm.nvvm.ptr.constant.to.gen --> ibid. |
| 44 | +// * llvm.nvvm.ptr.local.to.gen --> ibid. |
37 | 45 |
|
38 | 46 | def llvm_global_ptr_ty : LLVMQualPointerType<1>; // (global)ptr |
39 | 47 | def llvm_shared_ptr_ty : LLVMQualPointerType<3>; // (shared)ptr |
@@ -1602,40 +1610,6 @@ def int_nvvm_ldg_global_p : Intrinsic<[llvm_anyptr_ty], |
1602 | 1610 | [IntrReadMem, IntrArgMemOnly, IntrNoCallback, IntrWillReturn, NoCapture<ArgIndex<0>>], |
1603 | 1611 | "llvm.nvvm.ldg.global.p">; |
1604 | 1612 |
|
1605 | | -// Use for generic pointers |
1606 | | -// - These intrinsics are used to convert address spaces. |
1607 | | -// - The input pointer and output pointer must have the same type, except for |
1608 | | -// the address-space. (This restriction is not enforced here as there is |
1609 | | -// currently no way to describe it). |
1610 | | -// - This complements the llvm bitcast, which can be used to cast one type |
1611 | | -// of pointer to another type of pointer, while the address space remains |
1612 | | -// the same. |
1613 | | -def int_nvvm_ptr_local_to_gen: DefaultAttrsIntrinsic<[llvm_anyptr_ty], |
1614 | | - [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable], |
1615 | | - "llvm.nvvm.ptr.local.to.gen">; |
1616 | | -def int_nvvm_ptr_shared_to_gen: DefaultAttrsIntrinsic<[llvm_anyptr_ty], |
1617 | | - [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable], |
1618 | | - "llvm.nvvm.ptr.shared.to.gen">; |
1619 | | -def int_nvvm_ptr_global_to_gen: DefaultAttrsIntrinsic<[llvm_anyptr_ty], |
1620 | | - [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable], |
1621 | | - "llvm.nvvm.ptr.global.to.gen">; |
1622 | | -def int_nvvm_ptr_constant_to_gen: DefaultAttrsIntrinsic<[llvm_anyptr_ty], |
1623 | | - [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable], |
1624 | | - "llvm.nvvm.ptr.constant.to.gen">; |
1625 | | - |
1626 | | -def int_nvvm_ptr_gen_to_global: DefaultAttrsIntrinsic<[llvm_anyptr_ty], |
1627 | | - [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable], |
1628 | | - "llvm.nvvm.ptr.gen.to.global">; |
1629 | | -def int_nvvm_ptr_gen_to_shared: DefaultAttrsIntrinsic<[llvm_anyptr_ty], |
1630 | | - [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable], |
1631 | | - "llvm.nvvm.ptr.gen.to.shared">; |
1632 | | -def int_nvvm_ptr_gen_to_local: DefaultAttrsIntrinsic<[llvm_anyptr_ty], |
1633 | | - [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable], |
1634 | | - "llvm.nvvm.ptr.gen.to.local">; |
1635 | | -def int_nvvm_ptr_gen_to_constant: DefaultAttrsIntrinsic<[llvm_anyptr_ty], |
1636 | | - [llvm_anyptr_ty], [IntrNoMem, IntrSpeculatable], |
1637 | | - "llvm.nvvm.ptr.gen.to.constant">; |
1638 | | - |
1639 | 1613 | // Used in nvvm internally to help address space opt and ptx code generation |
1640 | 1614 | // This is for params that are passed to kernel functions by pointer by-val. |
1641 | 1615 | def int_nvvm_ptr_gen_to_param: Intrinsic<[llvm_anyptr_ty], |
|
0 commit comments