未验证 提交 352d720b 编写于 作者: S Sundeep Gottipati 提交者: GitHub

Merge pull request #28974 from jdduke/cherrypicks_L1BTW

Cherry-pick for fixes for dotprod detection on iOS
......@@ -13,7 +13,19 @@ See the License for the specific language governing permissions and
limitations under the License.
==============================================================================*/
#ifdef __aarch64__
// b/132973173: this signal-handling code does not work as intended on iOS,
// resulting in 'EXC_BAD_INSTRUCTION' signals killing the process.
// Is it because this code uses a signal handler for SIGILL, and Apple's
// EXC_BAD_INSTRUCTION is actually a different signal?
// Anyway, we don't need this code on Apple devices at the moment, as none of
// them supports dot-product instructions at the moment.
// In fact, for the moment, we only care about Linux, so restricting to it
// limits our risk.
#if defined __aarch64__ && defined __linux__
#define RUY_IMPLEMENT_DETECT_DOTPROD
#endif
#ifdef RUY_IMPLEMENT_DETECT_DOTPROD
#include <setjmp.h>
#include <signal.h>
......@@ -28,7 +40,7 @@ limitations under the License.
namespace ruy {
#ifdef __aarch64__
#ifdef RUY_IMPLEMENT_DETECT_DOTPROD
namespace {
......
......@@ -98,9 +98,14 @@ inline Path GetMostSignificantPath(Path path_mask) {
// ruy::kAllPaths represents all Path's that make sense to on a given
// base architecture.
#ifdef __aarch64__
#ifdef __linux__
constexpr Path kAllPaths =
Path::kReference | Path::kStandardCpp | Path::kNeon | Path::kNeonDotprod;
#else
// We don't know how to do runtime dotprod detection outside of linux for now.
constexpr Path kAllPaths = Path::kReference | Path::kStandardCpp | Path::kNeon;
#endif
#else
constexpr Path kAllPaths = Path::kReference | Path::kStandardCpp;
#endif
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册