diff options
author | Paul Walker <paul.walker@arm.com> | 2025-08-04 13:58:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-04 13:58:32 +0100 |
commit | 04f98889ae497d895be7c478415e0e9a8c6d330b (patch) | |
tree | 52986fa8e5dfd18510b84c8542eaddad169e798c | |
parent | a3d0c541eb6a443ef4cf6c84facb4d5c35009bea (diff) | |
download | llvm-04f98889ae497d895be7c478415e0e9a8c6d330b.zip llvm-04f98889ae497d895be7c478415e0e9a8c6d330b.tar.gz llvm-04f98889ae497d895be7c478415e0e9a8c6d330b.tar.bz2 |
[LLVM][NumericalStabilitySanitizer] Add support for vector ConstantFPs. (#151739)
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp | 3 | ||||
-rw-r--r-- | llvm/test/Instrumentation/NumericalStabilitySanitizer/basic.ll | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp b/llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp index fa1db28..d18c0d0 100644 --- a/llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp @@ -468,7 +468,8 @@ private: // Floating-point constants. Type *Ty = Config.getExtendedFPType(CFP->getType()); return ConstantFP::get( - Ty, extendConstantFP(CFP->getValueAPF(), Ty->getFltSemantics())); + Ty, extendConstantFP(CFP->getValueAPF(), + Ty->getScalarType()->getFltSemantics())); } // Vector, array, or aggregate constants. if (C->getType()->isVectorTy()) { diff --git a/llvm/test/Instrumentation/NumericalStabilitySanitizer/basic.ll b/llvm/test/Instrumentation/NumericalStabilitySanitizer/basic.ll index 03c5e91..434ac84 100644 --- a/llvm/test/Instrumentation/NumericalStabilitySanitizer/basic.ll +++ b/llvm/test/Instrumentation/NumericalStabilitySanitizer/basic.ll @@ -2,6 +2,9 @@ ; RUN: opt -passes=nsan -nsan-shadow-type-mapping=dqq -nsan-truncate-fcmp-eq=false -S %s | FileCheck %s --check-prefixes=CHECK,DQQ ; RUN: opt -passes=nsan -nsan-shadow-type-mapping=dlq -nsan-truncate-fcmp-eq=false -S %s | FileCheck %s --check-prefixes=CHECK,DLQ +; RUN: opt -passes=nsan -nsan-shadow-type-mapping=dqq -nsan-truncate-fcmp-eq=false -use-constant-fp-for-fixed-length-splat -S %s | FileCheck %s --check-prefixes=CHECK,DQQ +; RUN: opt -passes=nsan -nsan-shadow-type-mapping=dlq -nsan-truncate-fcmp-eq=false -use-constant-fp-for-fixed-length-splat -S %s | FileCheck %s --check-prefixes=CHECK,DLQ + target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" declare float @declaration_only(float %a) sanitize_numerical_stability |