[llvm] r274890 - IR: Set a TargetPrefix for nvvm intrinsics

Justin Bogner via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 8 10:25:18 PDT 2016


Author: bogner
Date: Fri Jul  8 12:25:18 2016
New Revision: 274890

URL: http://llvm.org/viewvc/llvm-project?rev=274890&view=rev
Log:
IR: Set a TargetPrefix for nvvm intrinsics

Since these are named nvvm_* rather than nvptx_*, we also need to
update getArchTypePrefix. It's a bit unusual for getArchTypePrefix not
to match the backend name, but I think this fits the intent of the
function in this case.

Modified:
    llvm/trunk/include/llvm/IR/IntrinsicsNVVM.td
    llvm/trunk/lib/Support/Triple.cpp

Modified: llvm/trunk/include/llvm/IR/IntrinsicsNVVM.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/IntrinsicsNVVM.td?rev=274890&r1=274889&r2=274890&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/IntrinsicsNVVM.td (original)
+++ llvm/trunk/include/llvm/IR/IntrinsicsNVVM.td Fri Jul  8 12:25:18 2016
@@ -17,6 +17,7 @@ def llvm_anyi64ptr_ty     : LLVMAnyPoint
 // MISC
 //
 
+let TargetPrefix = "nvvm" in {
   def int_nvvm_clz_i : GCCBuiltin<"__nvvm_clz_i">,
       Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>;
   def int_nvvm_clz_ll : GCCBuiltin<"__nvvm_clz_ll">,
@@ -3730,3 +3731,4 @@ def int_nvvm_shfl_idx_f32 :
   Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty],
             [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.idx.f32">,
   GCCBuiltin<"__nvvm_shfl_idx_f32">;
+}

Modified: llvm/trunk/lib/Support/Triple.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Triple.cpp?rev=274890&r1=274889&r2=274890&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Triple.cpp (original)
+++ llvm/trunk/lib/Support/Triple.cpp Fri Jul  8 12:25:18 2016
@@ -114,8 +114,9 @@ const char *Triple::getArchTypePrefix(Ar
 
   case xcore:       return "xcore";
 
-  case nvptx:       return "nvptx";
-  case nvptx64:     return "nvptx";
+  // NVPTX intrinsics are namespaced under nvvm.
+  case nvptx:       return "nvvm";
+  case nvptx64:     return "nvvm";
 
   case le32:        return "le32";
   case le64:        return "le64";




More information about the llvm-commits mailing list