[cfe-commits] r172047 - /cfe/trunk/lib/CodeGen/CGExprScalar.cpp

David Tweed David.Tweed at arm.com
Thu Jan 10 02:43:07 PST 2013


Joey Gouly pointed out how to fake missing stuff using attributes, so test added in r172053.

From: Chandler Carruth [mailto:chandlerc at google.com]
Sent: 10 January 2013 09:32
To: David Tweed
Cc: llvm cfe
Subject: Re: [cfe-commits] r172047 - /cfe/trunk/lib/CodeGen/CGExprScalar.cpp

On Thu, Jan 10, 2013 at 1:11 AM, David Tweed <david.tweed at arm.com<mailto:david.tweed at arm.com>> wrote:
Author: davidtweed
Date: Thu Jan 10 03:11:33 2013
New Revision: 172047

URL: http://llvm.org/viewvc/llvm-project?rev=172047&view=rev
Log:
Testing with a full OpenCL compiler (based on clang) reveals r71734 missed
difference between type widths of a vector and the width of one of its elements
in the case of vector shifts. Use correct witdth in the vector case.

This still needs a regression test case.


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

Modified: cfe/trunk/lib/CodeGen/CGExprScalar.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprScalar.cpp?rev=172047&r1=172046&r2=172047&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGExprScalar.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExprScalar.cpp Thu Jan 10 03:11:33 2013
@@ -2368,8 +2368,12 @@
 }

 Value *ScalarExprEmitter::GetWidthMinusOneValue(Value* LHS,Value* RHS) {
-  unsigned Width = cast<llvm::IntegerType>(LHS->getType())->getBitWidth();
-  return llvm::ConstantInt::get(RHS->getType(), Width - 1);
+  llvm::IntegerType *Ty;
+  if (llvm::VectorType *VT = dyn_cast<llvm::VectorType>(LHS->getType()))
+    Ty = cast<llvm::IntegerType>(VT->getElementType());
+  else
+    Ty = cast<llvm::IntegerType>(LHS->getType());
+  return llvm::ConstantInt::get(RHS->getType(), Ty->getBitWidth() - 1);
 }

 Value *ScalarExprEmitter::EmitShl(const BinOpInfo &Ops) {


_______________________________________________
cfe-commits mailing list
cfe-commits at cs.uiuc.edu<mailto:cfe-commits at cs.uiuc.edu>
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits


-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130110/4eeb139f/attachment.html>


More information about the cfe-commits mailing list