[PATCH] D14150: Pointers in Masked Load, Store, Gather, Scatter intrinsics.

Ayal Zaks via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 10 14:59:38 PST 2015


Ayal added inline comments.

================
Comment at: ../docs/LangRef.rst:11316
@@ +11315,3 @@
+       declare void @llvm.masked.store.v8i32  (<8 x i32>  <value>, <8 x i32> * <ptr>, i32 <alignment>,  <8 x i1>  <mask>)
+       declare void @llvm.masked.store.v16f32 (<16 x i32> <value>, <16 x i32>* <ptr>, i32 <alignment>,  <16 x i1> <mask>)
+       ;; The data is a vector of pointers to double
----------------
mangled ".v16f32" suffix mismatch with "<16 x i32> <value>" and "<16 x i32>* <ptr>".

================
Comment at: ../docs/LangRef.rst:11367
@@ -11359,1 +11366,3 @@
+      declare <2 x double> @llvm.masked.gather.v2f64    (<2 x double*> <ptrs>, i32 <alignment>, <2 x i1>  <mask>, <2 x double> <passthru>)
+      declare <8 x float*> @llvm.masked.gather.v8p0f32  (<8 x float*> <ptrs>,  i32 <alignment>, <8 x i1>  <mask>, <8 x float*> <passthru>)
 
----------------
"<8 x float*[*]> <ptrs>"

================
Comment at: ../docs/LangRef.rst:11415
@@ -11405,3 +11414,3 @@
 """""""
-This is an overloaded intrinsic. The data stored in memory is a vector of any integer or floating point data type. Each vector element is stored in an arbitrary memory addresses. Scatter with overlapping addresses is guaranteed to be ordered from least-significant to most-significant element.
+This is an overloaded intrinsic. The data stored in memory is a vector of any integer, floating point or pointer data type. Each vector element is stored in an arbitrary memory addresses. Scatter with overlapping addresses is guaranteed to be ordered from least-significant to most-significant element.
 
----------------
"an arbitrary memory address[es]".

================
Comment at: ../docs/LangRef.rst:11420
@@ +11419,3 @@
+       declare void @llvm.masked.scatter.v8i32   (<8 x i32>    <value>, <8 x i32*>    <ptrs>, i32 <alignment>, <8 x i1>  <mask>)
+       declare void @llvm.masked.scatter.v16f32  (<16 x i32>   <value>, <16 x i32*>   <ptrs>, i32 <alignment>, <16 x i1> <mask>)
+       declare void @llvm.masked.scatter.v4p0f32 (<4 x float*> <value>, <4 x float**> <ptrs>, i32 <alignment>, <4 x i1>  <mask>)
----------------
mangled ".v16f32" suffix mismatch with "<16 x i32> <value>" and "<16 x i32*> <ptrs>".


================
Comment at: ../test/Transforms/LoopVectorize/X86/masked_load_store.ll:506
@@ +505,3 @@
+;  for (unsigned i=0; i<size; i++)
+;    if (trigger[i] && (in[i] > 0))
+;      out[i] = (double) 0.5;
----------------
"in[i] != 0" may look better than "in[i] > 0", as it is a pointer.

================
Comment at: ../test/Transforms/LoopVectorize/X86/masked_load_store.ll:578
@@ +577,3 @@
+;  for (unsigned i=0; i<size; i++)
+;    if (trigger[i] && (in[i] > 0))
+;      out[i] = (double) 0.5;
----------------
same here.


Repository:
  rL LLVM

http://reviews.llvm.org/D14150





More information about the llvm-commits mailing list