diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2011-02-15 23:13:23 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2011-02-15 23:13:23 +0000 |
commit | 8a670edf1b9dc1acb1b571ccc57a4f7e9fec5865 (patch) | |
tree | 02bec66b85713f7affb445c97d098e39baa60a53 /include/llvm/Support/PatternMatch.h | |
parent | 738a00eb861c045dc11366b4d3203cde0e528f22 (diff) |
Teach PatternMatch that splat vectors could be floating point as well as
integer. Fixes PR9228!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125613 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/PatternMatch.h')
-rw-r--r-- | include/llvm/Support/PatternMatch.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/include/llvm/Support/PatternMatch.h b/include/llvm/Support/PatternMatch.h index 3d6a46110e..948ae5176e 100644 --- a/include/llvm/Support/PatternMatch.h +++ b/include/llvm/Support/PatternMatch.h @@ -81,7 +81,8 @@ struct apint_match { return true; } if (ConstantVector *CV = dyn_cast<ConstantVector>(V)) - if (ConstantInt *CI = cast_or_null<ConstantInt>(CV->getSplatValue())) { + if (ConstantInt *CI = + dyn_cast_or_null<ConstantInt>(CV->getSplatValue())) { Res = &CI->getValue(); return true; } @@ -126,7 +127,7 @@ struct cst_pred_ty : public Predicate { if (const ConstantInt *CI = dyn_cast<ConstantInt>(V)) return this->isValue(CI->getValue()); if (const ConstantVector *CV = dyn_cast<ConstantVector>(V)) - if (ConstantInt *CI = cast_or_null<ConstantInt>(CV->getSplatValue())) + if (ConstantInt *CI = dyn_cast_or_null<ConstantInt>(CV->getSplatValue())) return this->isValue(CI->getValue()); return false; } @@ -146,7 +147,7 @@ struct api_pred_ty : public Predicate { return true; } if (const ConstantVector *CV = dyn_cast<ConstantVector>(V)) - if (ConstantInt *CI = cast_or_null<ConstantInt>(CV->getSplatValue())) + if (ConstantInt *CI = dyn_cast_or_null<ConstantInt>(CV->getSplatValue())) if (this->isValue(CI->getValue())) { Res = &CI->getValue(); return true; |