[Clang][X86] Convert non-temporal store builtins to generic __builtin_nontemporal_store in headers
We can now use __builtin_nontemporal_store instead of target specific builtins for naturally aligned nontemporal stores which avoids the need for handling in CGBuiltin.cpp The scalar integer nontemporal (unaligned) store builtins will have to wait as __builtin_nontemporal_store currently assumes natural alignment and doesn't accept the 'packed struct' trick that we use for normal unaligned load/stores. The nontemporal loads require further backend support before we can safely convert them to __builtin_nontemporal_load Differential Revision: http://reviews.llvm.org/D21272 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272540 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- include/clang/Basic/BuiltinsX86.def 0 additions, 9 deletionsinclude/clang/Basic/BuiltinsX86.def
- lib/CodeGen/CGBuiltin.cpp 51 additions, 63 deletionslib/CodeGen/CGBuiltin.cpp
- lib/Headers/avx512fintrin.h 3 additions, 3 deletionslib/Headers/avx512fintrin.h
- lib/Headers/avxintrin.h 3 additions, 3 deletionslib/Headers/avxintrin.h
- lib/Headers/emmintrin.h 2 additions, 2 deletionslib/Headers/emmintrin.h
- lib/Headers/xmmintrin.h 1 addition, 1 deletionlib/Headers/xmmintrin.h
- test/CodeGen/avx512f-builtins.c 3 additions, 3 deletionstest/CodeGen/avx512f-builtins.c
- test/CodeGen/builtins-x86.c 0 additions, 6 deletionstest/CodeGen/builtins-x86.c
Loading
Please register or sign in to comment