aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaChecking.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-01-11 01:38:02 +0000
committerCraig Topper <craig.topper@intel.com>2018-01-11 01:38:02 +0000
commit919264371bac26a0a25f51512f0838cd384e9b5f (patch)
tree888925a3123e14e3128aee9315c12d75fc771f99 /clang/lib/Sema/SemaChecking.cpp
parent71d4aaa523df370152ed323b96e3ed42b71bbcc2 (diff)
downloadllvm-919264371bac26a0a25f51512f0838cd384e9b5f.zip
llvm-919264371bac26a0a25f51512f0838cd384e9b5f.tar.gz
llvm-919264371bac26a0a25f51512f0838cd384e9b5f.tar.bz2
[X86][Sema] Range check the constant argument for the vpshld/vpshrd builtins to ensure it fits in 8-bits.
llvm-svn: 322247
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
-rw-r--r--clang/lib/Sema/SemaChecking.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index eeecdd9..c7f1b94 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -2410,6 +2410,24 @@ bool Sema::CheckX86BuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) {
case X86::BI__builtin_ia32_dbpsadbw128_mask:
case X86::BI__builtin_ia32_dbpsadbw256_mask:
case X86::BI__builtin_ia32_dbpsadbw512_mask:
+ case X86::BI__builtin_ia32_vpshldd128_mask:
+ case X86::BI__builtin_ia32_vpshldd256_mask:
+ case X86::BI__builtin_ia32_vpshldd512_mask:
+ case X86::BI__builtin_ia32_vpshldq128_mask:
+ case X86::BI__builtin_ia32_vpshldq256_mask:
+ case X86::BI__builtin_ia32_vpshldq512_mask:
+ case X86::BI__builtin_ia32_vpshldw128_mask:
+ case X86::BI__builtin_ia32_vpshldw256_mask:
+ case X86::BI__builtin_ia32_vpshldw512_mask:
+ case X86::BI__builtin_ia32_vpshrdd128_mask:
+ case X86::BI__builtin_ia32_vpshrdd256_mask:
+ case X86::BI__builtin_ia32_vpshrdd512_mask:
+ case X86::BI__builtin_ia32_vpshrdq128_mask:
+ case X86::BI__builtin_ia32_vpshrdq256_mask:
+ case X86::BI__builtin_ia32_vpshrdq512_mask:
+ case X86::BI__builtin_ia32_vpshrdw128_mask:
+ case X86::BI__builtin_ia32_vpshrdw256_mask:
+ case X86::BI__builtin_ia32_vpshrdw512_mask:
i = 2; l = 0; u = 255;
break;
case X86::BI__builtin_ia32_fixupimmpd512_mask: