[X86][Sema] Range check the constant argument for the vpshld/vpshrd builtins to ensure it fits in 8-bits.
llvm-svn: 322247
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 @@
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: