Skip to content

Commit 04f9888

Browse files
[LLVM][NumericalStabilitySanitizer] Add support for vector ConstantFPs. (#151739)
1 parent a3d0c54 commit 04f9888

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,8 @@ class ValueToShadowMap {
468468
// Floating-point constants.
469469
Type *Ty = Config.getExtendedFPType(CFP->getType());
470470
return ConstantFP::get(
471-
Ty, extendConstantFP(CFP->getValueAPF(), Ty->getFltSemantics()));
471+
Ty, extendConstantFP(CFP->getValueAPF(),
472+
Ty->getScalarType()->getFltSemantics()));
472473
}
473474
// Vector, array, or aggregate constants.
474475
if (C->getType()->isVectorTy()) {

llvm/test/Instrumentation/NumericalStabilitySanitizer/basic.ll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
; RUN: opt -passes=nsan -nsan-shadow-type-mapping=dqq -nsan-truncate-fcmp-eq=false -S %s | FileCheck %s --check-prefixes=CHECK,DQQ
33
; RUN: opt -passes=nsan -nsan-shadow-type-mapping=dlq -nsan-truncate-fcmp-eq=false -S %s | FileCheck %s --check-prefixes=CHECK,DLQ
44

5+
; 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
6+
; 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
7+
58
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"
69

710
declare float @declaration_only(float %a) sanitize_numerical_stability

0 commit comments

Comments
 (0)