diff options
author | Craig Topper <craig.topper@intel.com> | 2018-01-11 01:38:02 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2018-01-11 01:38:02 +0000 |
commit | 919264371bac26a0a25f51512f0838cd384e9b5f (patch) | |
tree | 888925a3123e14e3128aee9315c12d75fc771f99 /clang/lib/Sema/SemaChecking.cpp | |
parent | 71d4aaa523df370152ed323b96e3ed42b71bbcc2 (diff) | |
download | llvm-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.cpp | 18 |
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: |