]> granicus.if.org Git - clang/commit
[X86] Use unsigned types for vector arithmetic in intrinsics to avoid undefined behav...
authorCraig Topper <craig.topper@gmail.com>
Sat, 4 Jun 2016 05:43:41 +0000 (05:43 +0000)
committerCraig Topper <craig.topper@gmail.com>
Sat, 4 Jun 2016 05:43:41 +0000 (05:43 +0000)
commit566f08cc02bd05a1f743538fc0f8a47559938b1d
tree4dd1615dca3287388695f9b16697b27e5e1dc452
parentdbb76ac7e72fa218cd76c3e58e1a3f3f8a600fa3
[X86] Use unsigned types for vector arithmetic in intrinsics to avoid undefined behavior for signed integer overflow.

This is really only needed for addition, subtraction, and multiplication, but I did the bitwise ops too for overall consistency. Clang currently doesn't set NSW for signed vector operations so the undefined behavior shouldn't happen today.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271778 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Headers/avx2intrin.h
lib/Headers/avx512bwintrin.h
lib/Headers/avx512dqintrin.h
lib/Headers/avx512fintrin.h
lib/Headers/avx512vldqintrin.h
lib/Headers/avxintrin.h
lib/Headers/emmintrin.h
lib/Headers/smmintrin.h
lib/Headers/xmmintrin.h