[llvm] 04f9888 - [LLVM][NumericalStabilitySanitizer] Add support for vector ConstantFPs. (#151739)

via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 4 05:58:35 PDT 2025


Author: Paul Walker
Date: 2025-08-04T13:58:32+01:00
New Revision: 04f98889ae497d895be7c478415e0e9a8c6d330b

URL: https://github.com/llvm/llvm-project/commit/04f98889ae497d895be7c478415e0e9a8c6d330b
DIFF: https://github.com/llvm/llvm-project/commit/04f98889ae497d895be7c478415e0e9a8c6d330b.diff

LOG: [LLVM][NumericalStabilitySanitizer] Add support for vector ConstantFPs. (#151739)

Added: 
    

Modified: 
    llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
    llvm/test/Instrumentation/NumericalStabilitySanitizer/basic.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp b/llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
index fa1db288fbb2e..d18c0d0d2d90d 100644
--- a/llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
@@ -468,7 +468,8 @@ class ValueToShadowMap {
       // 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 03c5e917f0765..434ac8462b624 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


        


More information about the llvm-commits mailing list