[all-commits] [llvm/llvm-project] f56550: [ARM] Enabling range checks on Neon intrinsics' la...
Lucas Duarte Prates via All-commits
all-commits at lists.llvm.org
Thu Mar 19 05:07:28 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: f56550cf7f12b581a237b48a7f4d8b6682d45a09
https://github.com/llvm/llvm-project/commit/f56550cf7f12b581a237b48a7f4d8b6682d45a09
Author: Lucas Prates <lucas.prates at arm.com>
Date: 2020-03-19 (Thu, 19 Mar 2020)
Changed paths:
M clang/include/clang/Basic/arm_neon.td
M clang/include/clang/Basic/arm_neon_incl.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/test/CodeGen/aarch64-neon-2velem.c
M clang/test/CodeGen/aarch64-neon-fma.c
M clang/test/CodeGen/aarch64-poly64.c
M clang/test/CodeGen/aarch64-v8.2a-neon-intrinsics.c
A clang/test/CodeGen/arm-neon-range-checks.c
M clang/test/CodeGen/arm-v8.2a-neon-intrinsics.c
M clang/test/CodeGen/arm64_vdupq_n_f64.c
M clang/test/CodeGen/arm_neon_intrinsics.c
M clang/utils/TableGen/NeonEmitter.cpp
Log Message:
-----------
[ARM] Enabling range checks on Neon intrinsics' lane arguments
Summary:
Range checks were not properly performed in the lane arguments of Neon
intrinsics implemented based on splat operations. Calls to those
intrinsics where translated to `__builtin__shufflevector` calls directly
by the pre-processor through the arm_neon.h macros, missing the chance
for the proper range checks.
This patch enables the range check by introducing an auxiliary splat
instruction in arm_neon.td, delaying the translation to shufflevector
calls to CGBuiltin.cpp in clang after the checks were performed.
Reviewers: jmolloy, t.p.northover, rsmith, olista01, ostannard
Reviewed By: ostannard
Subscribers: ostannard, dnsampaio, danielkiss, kristof.beyls, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D74619
More information about the All-commits
mailing list