Author: ctopper
Date: Sun Jun  3 11:08:36 2018
New Revision: 333847

URL: http://llvm.org/viewvc/llvm-project?rev=333847&view=rev
Log:
[X86] When emitting masked loads/stores don't check for all ones mask.

This seems like a premature optimization. It's unlikely a user would pass 
something the frontend can tell is all ones to the masked load/store intrinsics.

We do this optimization for emitting select for masking because we have builtin 
calls in header files that pass an all ones mask in. Though at this point we 
may not longer have any builtins that emit some IR and a select. We may only 
have the select builtins so maybe we can remove that optimization too.

Modified:
    cfe/trunk/lib/CodeGen/CGBuiltin.cpp

Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=333847&r1=333846&r2=333847&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Sun Jun  3 11:08:36 2018
@@ -8269,11 +8269,6 @@ static Value *EmitX86MaskedStore(CodeGen
   Ops[0] = CGF.Builder.CreateBitCast(Ops[0],
                                
llvm::PointerType::getUnqual(Ops[1]->getType()));
 
-  // If the mask is all ones just emit a regular store.
-  if (const auto *C = dyn_cast<Constant>(Ops[2]))
-    if (C->isAllOnesValue())
-      return CGF.Builder.CreateAlignedStore(Ops[1], Ops[0], Align);
-
   Value *MaskVec = getMaskVecValue(CGF, Ops[2],
                                    Ops[1]->getType()->getVectorNumElements());
 
@@ -8286,11 +8281,6 @@ static Value *EmitX86MaskedLoad(CodeGenF
   Ops[0] = CGF.Builder.CreateBitCast(Ops[0],
                                
llvm::PointerType::getUnqual(Ops[1]->getType()));
 
-  // If the mask is all ones just emit a regular store.
-  if (const auto *C = dyn_cast<Constant>(Ops[2]))
-    if (C->isAllOnesValue())
-      return CGF.Builder.CreateAlignedLoad(Ops[0], Align);
-
   Value *MaskVec = getMaskVecValue(CGF, Ops[2],
                                    Ops[1]->getType()->getVectorNumElements());
 


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to