From 018684fe2afcd42e65ffa3cc489269f92b67d933 Mon Sep 17 00:00:00 2001 From: rudy Date: Fri, 28 Oct 2022 12:16:15 +0200 Subject: [PATCH] chore: activate Wall Werror --- compiler/CMakeLists.txt | 5 ++++- .../Conversion/Utils/GlobalFHEContext.h | 9 --------- compiler/lib/ClientLib/CMakeLists.txt | 12 ------------ .../ConcreteToBConcrete.cpp | 6 +----- .../lib/Conversion/FHEToTFHE/FHEToTFHE.cpp | 2 +- .../Conversion/LinalgExtras/LinalgExtras.cpp | 4 ++-- .../Transforms/BufferizableOpInterfaceImpl.cpp | 18 +++++++++--------- compiler/lib/Runtime/AsyncOffload.cpp | 4 ++-- compiler/lib/Runtime/DFRuntime.cpp | 4 ++++ compiler/lib/ServerLib/CMakeLists.txt | 8 +------- compiler/lib/Support/V0ClientParameters.cpp | 14 +++++++------- compiler/lib/Support/V0Parameters.cpp | 1 + compiler/src/main.cpp | 11 +++++------ .../end_to_end_mlbench.cpp | 4 ++-- .../end_to_end_fixture/EndToEndFixture.cpp | 7 ++++--- .../end_to_end_jit_auto_parallelization.cc | 4 ++-- .../end_to_end_jit_distributed.cc | 4 ++-- .../end_to_end_jit_fhelinalg.cc | 12 ++++++------ .../ClientLib/ClientParameters.cpp | 10 +++++----- .../concretelang/TestLib/testlib_unit_test.cpp | 6 +++--- 20 files changed, 61 insertions(+), 84 deletions(-) diff --git a/compiler/CMakeLists.txt b/compiler/CMakeLists.txt index 123e343e4..dbc3fecc1 100644 --- a/compiler/CMakeLists.txt +++ b/compiler/CMakeLists.txt @@ -9,7 +9,10 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Wouldn't be able to compile LLVM without this on Mac (using either Clang or AppleClang) if(APPLE) - add_definitions("-Wno-narrowing -Wno-dollar-in-identifier-extension") + add_definitions("-Wno-narrowing -Wno-dollar-in-identifier-extension -Wno-string-conversion -Wno-pessimizing-move") +else() + add_definitions("-Wall -Wno-pessimizing-move") + add_definitions("-Werror ") endif() # If we are trying to build the compiler with LLVM/MLIR as libraries diff --git a/compiler/include/concretelang/Conversion/Utils/GlobalFHEContext.h b/compiler/include/concretelang/Conversion/Utils/GlobalFHEContext.h index 79a64baf8..b18374aed 100644 --- a/compiler/include/concretelang/Conversion/Utils/GlobalFHEContext.h +++ b/compiler/include/concretelang/Conversion/Utils/GlobalFHEContext.h @@ -54,15 +54,6 @@ struct V0Parameter { llvm::Optional largeInteger; - V0Parameter() {} - - V0Parameter(size_t glweDimension, size_t logPolynomialSize, size_t nSmall, - size_t brLevel, size_t brLogBase, size_t ksLevel, - size_t ksLogBase) - : glweDimension(glweDimension), logPolynomialSize(logPolynomialSize), - nSmall(nSmall), brLevel(brLevel), brLogBase(brLogBase), - ksLevel(ksLevel), ksLogBase(ksLogBase) {} - // TODO remove the shift when we have true polynomial size size_t getPolynomialSize() { return 1 << logPolynomialSize; } diff --git a/compiler/lib/ClientLib/CMakeLists.txt b/compiler/lib/ClientLib/CMakeLists.txt index 2f4554dac..fd510b741 100644 --- a/compiler/lib/ClientLib/CMakeLists.txt +++ b/compiler/lib/ClientLib/CMakeLists.txt @@ -1,15 +1,3 @@ -add_compile_options(-Werror) - -if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - # using Clang - add_compile_options(-Wno-error=pessimizing-move -Wno-pessimizing-move) -elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - # using GCC - if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.0) - add_compile_options(-Werror -Wno-error=pessimizing-move -Wno-pessimizing-move) - endif() -endif() - add_mlir_library( ConcretelangClientLib ClientLambda.cpp diff --git a/compiler/lib/Conversion/ConcreteToBConcrete/ConcreteToBConcrete.cpp b/compiler/lib/Conversion/ConcreteToBConcrete/ConcreteToBConcrete.cpp index 3fe631d6e..02ac017a5 100644 --- a/compiler/lib/Conversion/ConcreteToBConcrete/ConcreteToBConcrete.cpp +++ b/compiler/lib/Conversion/ConcreteToBConcrete/ConcreteToBConcrete.cpp @@ -48,11 +48,7 @@ struct ConcreteToBConcretePass : public ConcreteToBConcreteBase { void runOnOperation() final; ConcreteToBConcretePass() = delete; - ConcreteToBConcretePass(bool loopParallelize) - : loopParallelize(loopParallelize){}; - -private: - bool loopParallelize; + ConcreteToBConcretePass(bool _loopParallelize){}; }; } // namespace diff --git a/compiler/lib/Conversion/FHEToTFHE/FHEToTFHE.cpp b/compiler/lib/Conversion/FHEToTFHE/FHEToTFHE.cpp index c6d2c473c..633d21986 100644 --- a/compiler/lib/Conversion/FHEToTFHE/FHEToTFHE.cpp +++ b/compiler/lib/Conversion/FHEToTFHE/FHEToTFHE.cpp @@ -245,7 +245,7 @@ struct FHEToTFHEPass : public FHEToTFHEBase { FHEToTFHEPass(mlir::concretelang::ApplyLookupTableLowering lutLowerStrategy) : lutLowerStrategy(lutLowerStrategy) {} - void runOnOperation() { + void runOnOperation() override { auto op = this->getOperation(); mlir::ConversionTarget target(getContext()); diff --git a/compiler/lib/Conversion/LinalgExtras/LinalgExtras.cpp b/compiler/lib/Conversion/LinalgExtras/LinalgExtras.cpp index 3b70d1e1a..87277bf97 100644 --- a/compiler/lib/Conversion/LinalgExtras/LinalgExtras.cpp +++ b/compiler/lib/Conversion/LinalgExtras/LinalgExtras.cpp @@ -30,8 +30,8 @@ public: LinalgRewritePattern(::mlir::MLIRContext *context, bool parallelizeLoops, mlir::PatternBenefit benefit = 0) - : parallelizeLoops(parallelizeLoops), - ::mlir::OpRewritePattern(context, benefit) {} + : ::mlir::OpRewritePattern(context, benefit), + parallelizeLoops(parallelizeLoops) {} mlir::LogicalResult matchAndRewrite(mlir::linalg::GenericOp linalgOp, diff --git a/compiler/lib/Dialect/BConcrete/Transforms/BufferizableOpInterfaceImpl.cpp b/compiler/lib/Dialect/BConcrete/Transforms/BufferizableOpInterfaceImpl.cpp index 276f4c579..bf3c9a6c4 100644 --- a/compiler/lib/Dialect/BConcrete/Transforms/BufferizableOpInterfaceImpl.cpp +++ b/compiler/lib/Dialect/BConcrete/Transforms/BufferizableOpInterfaceImpl.cpp @@ -397,19 +397,19 @@ struct BufferizableWithSyncCallOpInterface template <> void pushAdditionalArgs(BConcrete::AddPlaintextLweBufferOp op, mlir::SmallVector &operands, - RewriterBase &rewriter){}; + RewriterBase &rewriter) {} template <> void pushAdditionalArgs(BConcrete::AddLweBuffersOp op, mlir::SmallVector &operands, - RewriterBase &rewriter){}; + RewriterBase &rewriter) {} template <> void pushAdditionalArgs(BConcrete::MulCleartextLweBufferOp op, mlir::SmallVector &operands, - RewriterBase &rewriter){}; + RewriterBase &rewriter) {} template <> void pushAdditionalArgs(BConcrete::NegateLweBufferOp op, mlir::SmallVector &operands, - RewriterBase &rewriter){}; + RewriterBase &rewriter) {} template <> void pushAdditionalArgs(BConcrete::KeySwitchLweBufferOp op, @@ -429,7 +429,7 @@ void pushAdditionalArgs(BConcrete::KeySwitchLweBufferOp op, op.getLoc(), op.lwe_dim_outAttr())); // context operands.push_back(getContextArgument(op)); -}; +} template <> void pushAdditionalArgs(BConcrete::BootstrapLweBufferOp op, @@ -455,7 +455,7 @@ void pushAdditionalArgs(BConcrete::BootstrapLweBufferOp op, op.getLoc(), op.outPrecisionAttr())); // context operands.push_back(getContextArgument(op)); -}; +} template <> void pushAdditionalArgs(BConcrete::KeySwitchLweBufferAsyncOffloadOp op, @@ -463,7 +463,7 @@ void pushAdditionalArgs(BConcrete::KeySwitchLweBufferAsyncOffloadOp op, RewriterBase &rewriter) { // context operands.push_back(getContextArgument(op)); -}; +} template <> void pushAdditionalArgs(BConcrete::BootstrapLweBufferAsyncOffloadOp op, @@ -489,7 +489,7 @@ void pushAdditionalArgs(BConcrete::BootstrapLweBufferAsyncOffloadOp op, op.getLoc(), op.outPrecisionAttr())); // context operands.push_back(getContextArgument(op)); -}; +} template <> void pushAdditionalArgs(BConcrete::WopPBSCRTLweBufferOp op, @@ -524,7 +524,7 @@ void pushAdditionalArgs(BConcrete::WopPBSCRTLweBufferOp op, op.getLoc(), op.packingKeySwitchoutputPolynomialSizeAttr())); // context operands.push_back(getContextArgument(op)); -}; +} } // namespace void mlir::concretelang::BConcrete:: diff --git a/compiler/lib/Runtime/AsyncOffload.cpp b/compiler/lib/Runtime/AsyncOffload.cpp index 1b47c4237..4d674e978 100644 --- a/compiler/lib/Runtime/AsyncOffload.cpp +++ b/compiler/lib/Runtime/AsyncOffload.cpp @@ -22,7 +22,7 @@ void async_keyswitch( get_engine(context), get_keyswitch_key_u64(context), out_aligned + out_offset, ct0_aligned + ct0_offset)); promise.set_value(concretelang::clientlib::MemRefDescriptor<1>{ - out_allocated, out_aligned, out_offset, out_size, out_stride}); + out_allocated, out_aligned, out_offset, {out_size}, {out_stride}}); } void *memref_keyswitch_async_lwe_u64( @@ -71,7 +71,7 @@ void async_bootstrap( get_fftw_fourier_bootstrap_key_u64(context), out_aligned + out_offset, ct0_aligned + ct0_offset, glwe_ct)); promise.set_value(concretelang::clientlib::MemRefDescriptor<1>{ - out_allocated, out_aligned, out_offset, out_size, out_stride}); + out_allocated, out_aligned, out_offset, {out_size}, {out_stride}}); free(glwe_ct); } diff --git a/compiler/lib/Runtime/DFRuntime.cpp b/compiler/lib/Runtime/DFRuntime.cpp index 332f41692..631310f45 100644 --- a/compiler/lib/Runtime/DFRuntime.cpp +++ b/compiler/lib/Runtime/DFRuntime.cpp @@ -32,7 +32,9 @@ static std::vector gcc; static hpx::lcos::barrier *_dfr_jit_phase_barrier; static hpx::lcos::barrier *_dfr_startup_barrier; static size_t num_nodes = 0; +#if CONCRETELANG_TIMING_ENABLED static struct timespec init_timer, broadcast_timer, compute_timer, whole_timer; +#endif } // namespace } // namespace dfr } // namespace concretelang @@ -1292,7 +1294,9 @@ namespace { static bool is_jit_p = false; static bool use_omp_p = false; static size_t num_nodes = 1; +#if CONCRETELANG_TIMING_ENABLED static struct timespec compute_timer; +#endif } // namespace void _dfr_set_required(bool is_required) {} diff --git a/compiler/lib/ServerLib/CMakeLists.txt b/compiler/lib/ServerLib/CMakeLists.txt index ddea971b9..717c3f90d 100644 --- a/compiler/lib/ServerLib/CMakeLists.txt +++ b/compiler/lib/ServerLib/CMakeLists.txt @@ -1,13 +1,7 @@ -add_compile_options( -Werror ) - -if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - # using Clang - add_compile_options( -Wno-error=pessimizing-move -Wno-pessimizing-move ) -elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") # using GCC if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.0) add_compile_options( -Wno-error=cast-function-type -Wno-cast-function-type) - add_compile_options( -Werror -Wno-error=pessimizing-move -Wno-pessimizing-move ) endif() endif() diff --git a/compiler/lib/Support/V0ClientParameters.cpp b/compiler/lib/Support/V0ClientParameters.cpp index 9d2792175..1f86c9a6d 100644 --- a/compiler/lib/Support/V0ClientParameters.cpp +++ b/compiler/lib/Support/V0ClientParameters.cpp @@ -59,22 +59,22 @@ llvm::Expected gateFromMLIRType(LweSecretKeyID secretKeyID, } if (auto lweTy = type.dyn_cast_or_null< mlir::concretelang::Concrete::LweCiphertextType>()) { + bool sign = lweTy.isSignedInteger(); return CircuitGate{ /* .encryption = */ llvm::Optional({ /* .secretKeyID = */ secretKeyID, /* .variance = */ variance, /* .encoding = */ { - /* .precision = */ lweTy.getP(), + /* .precision = */ (size_t)lweTy.getP(), /* .crt = */ lweTy.getCrtDecomposition().vec(), }, }), /*.shape = */ - { - /*.width = */ lweTy.getP(), - /*.dimensions = */ std::vector(), - /*.size = */ 0, - }, + {/*.width = */ (size_t)lweTy.getP(), + /*.dimensions = */ std::vector(), + /*.size = */ 0, + /* .sign */ sign}, }; } auto tensor = type.dyn_cast_or_null(); @@ -99,7 +99,7 @@ llvm::Expected createClientParametersForV0(V0FHEContext fheContext, llvm::StringRef functionName, mlir::ModuleOp module) { - auto v0Param = fheContext.parameter; + V0Parameter &v0Param = fheContext.parameter; Variance inputVariance = v0Curve->getVariance(1, v0Param.getNBigLweDimension(), 64); diff --git a/compiler/lib/Support/V0Parameters.cpp b/compiler/lib/Support/V0Parameters.cpp index 43afeef25..2c70c966f 100644 --- a/compiler/lib/Support/V0Parameters.cpp +++ b/compiler/lib/Support/V0Parameters.cpp @@ -209,6 +209,7 @@ llvm::Expected getParameter(optimizer::Description &descr, params.brLogBase = sol.br_decomposition_base_log; params.ksLevel = sol.ks_decomposition_level_count; params.ksLogBase = sol.ks_decomposition_base_log; + params.largeInteger = llvm::None; if (sol.use_wop_pbs) { if (sol.crt_decomposition.empty()) { diff --git a/compiler/src/main.cpp b/compiler/src/main.cpp index 52e0a3b87..6a7860f0c 100644 --- a/compiler/src/main.cpp +++ b/compiler/src/main.cpp @@ -229,7 +229,7 @@ llvm::cl::list v0Constraint( "Force the compiler to use the given v0 constraint [p, norm2]"), llvm::cl::ZeroOrMore, llvm::cl::MiscFlags::CommaSeparated); -llvm::cl::list v0Parameter( +llvm::cl::list v0Parameter( "v0-parameter", llvm::cl::desc( "Force to apply the given v0 parameters [glweDimension, " @@ -316,11 +316,10 @@ cmdlineCompilationOptions() { "The v0-parameter option expect a list of size 7", llvm::inconvertibleErrorCode()); } - options.v0Parameter = mlir::concretelang::V0Parameter( - cmdline::v0Parameter[0], cmdline::v0Parameter[1], - cmdline::v0Parameter[2], cmdline::v0Parameter[3], - cmdline::v0Parameter[4], cmdline::v0Parameter[5], - cmdline::v0Parameter[6]); + options.v0Parameter = {cmdline::v0Parameter[0], cmdline::v0Parameter[1], + cmdline::v0Parameter[2], cmdline::v0Parameter[3], + cmdline::v0Parameter[4], cmdline::v0Parameter[5], + cmdline::v0Parameter[6], llvm::None}; } // Setup the large integer options diff --git a/compiler/tests/end_to_end_benchmarks/end_to_end_mlbench.cpp b/compiler/tests/end_to_end_benchmarks/end_to_end_mlbench.cpp index bde8f0b74..762364f6f 100644 --- a/compiler/tests/end_to_end_benchmarks/end_to_end_mlbench.cpp +++ b/compiler/tests/end_to_end_benchmarks/end_to_end_mlbench.cpp @@ -151,8 +151,8 @@ static int registerEndToEndTestFromFile(std::string prefix, std::string path, } int main(int argc, char **argv) { - char *bench_name = "MLBench"; - char *file_name = + char const *bench_name = "MLBench"; + char const *file_name = "tests/end_to_end_benchmarks/mlbench/end_to_end_mlbench.yaml"; size_t stack_size = 0; diff --git a/compiler/tests/end_to_end_fixture/EndToEndFixture.cpp b/compiler/tests/end_to_end_fixture/EndToEndFixture.cpp index fe70b8693..a98d21a1d 100644 --- a/compiler/tests/end_to_end_fixture/EndToEndFixture.cpp +++ b/compiler/tests/end_to_end_fixture/EndToEndFixture.cpp @@ -316,9 +316,10 @@ template <> struct llvm::yaml::MappingTraits { "[glweDimension, logPolynomialSize, nSmall, brLevel, " "brLobBase, ksLevel, ksLogBase]"); } - desc.v0Parameter = mlir::concretelang::V0Parameter( - v0parameter[0], v0parameter[1], v0parameter[2], v0parameter[3], - v0parameter[4], v0parameter[5], v0parameter[6]); + desc.v0Parameter = {(size_t)v0parameter[0], (size_t)v0parameter[1], + (size_t)v0parameter[2], (size_t)v0parameter[3], + (size_t)v0parameter[4], (size_t)v0parameter[5], + (size_t)v0parameter[6], llvm::None}; } std::vector v0constraint; io.mapOptional("v0-constraint", v0constraint); diff --git a/compiler/tests/end_to_end_tests/end_to_end_jit_auto_parallelization.cc b/compiler/tests/end_to_end_tests/end_to_end_jit_auto_parallelization.cc index 43c2df097..9e53870c1 100644 --- a/compiler/tests/end_to_end_tests/end_to_end_jit_auto_parallelization.cc +++ b/compiler/tests/end_to_end_tests/end_to_end_jit_auto_parallelization.cc @@ -106,7 +106,7 @@ TEST(ParallelizeAndRunFHE, nn_small_parallel) { std::vector input; input.reserve(dim0 * dim1); - for (int i = 0; i < dim0 * dim1; ++i) + for (size_t i = 0; i < dim0 * dim1; ++i) input.push_back(i % 17 % 4); mlir::concretelang::TensorLambdaArgument< @@ -148,7 +148,7 @@ TEST(ParallelizeAndRunFHE, nn_small_sequential) { std::vector input; input.reserve(dim0 * dim1); - for (int i = 0; i < dim0 * dim1; ++i) + for (size_t i = 0; i < dim0 * dim1; ++i) input.push_back(i % 17 % 4); mlir::concretelang::TensorLambdaArgument< diff --git a/compiler/tests/end_to_end_tests/end_to_end_jit_distributed.cc b/compiler/tests/end_to_end_tests/end_to_end_jit_distributed.cc index b4d1a3e42..bd07029e2 100644 --- a/compiler/tests/end_to_end_tests/end_to_end_jit_distributed.cc +++ b/compiler/tests/end_to_end_tests/end_to_end_jit_distributed.cc @@ -89,7 +89,7 @@ func.func @main(%arg0: tensor<200x4x!FHE.eint<4>>) -> tensor<200x8x!FHE.eint<4>> std::vector input; input.reserve(dim0 * dim1); - for (int i = 0; i < dim0 * dim1; ++i) + for (size_t i = 0; i < dim0 * dim1; ++i) input.push_back(i % 17 % 4); mlir::concretelang::TensorLambdaArgument< @@ -130,7 +130,7 @@ TEST(Distributed, nn_med_sequential) { std::vector input; input.reserve(dim0 * dim1); - for (int i = 0; i < dim0 * dim1; ++i) + for (size_t i = 0; i < dim0 * dim1; ++i) input.push_back(i % 17 % 4); mlir::concretelang::TensorLambdaArgument< diff --git a/compiler/tests/end_to_end_tests/end_to_end_jit_fhelinalg.cc b/compiler/tests/end_to_end_tests/end_to_end_jit_fhelinalg.cc index 8fcf28f9f..20b15d236 100644 --- a/compiler/tests/end_to_end_tests/end_to_end_jit_fhelinalg.cc +++ b/compiler/tests/end_to_end_tests/end_to_end_jit_fhelinalg.cc @@ -36,9 +36,9 @@ func.func @main(%arg0: tensor<3x2x!FHE.eint<4>>) -> tensor<3x!FHE.eint<4>> { ASSERT_EQ(res->size(), (size_t)3); - EXPECT_EQ((*res)[0], 1); - EXPECT_EQ((*res)[1], 3); - EXPECT_EQ((*res)[2], 5); + EXPECT_EQ((*res)[0], (uint64_t)1); + EXPECT_EQ((*res)[1], (uint64_t)3); + EXPECT_EQ((*res)[2], (uint64_t)5); } TEST(End2EndJit_FHELinalg, extract_slice_nonzero_offset_regression) { @@ -65,9 +65,9 @@ func.func @main(%arg0: tensor<3x2x!FHE.eint<4>>) -> tensor<3x!FHE.eint<4>> { ASSERT_EQ(res->size(), (size_t)3); - EXPECT_EQ((*res)[0], 2); - EXPECT_EQ((*res)[1], 4); - EXPECT_EQ((*res)[2], 6); + EXPECT_EQ((*res)[0], (uint64_t)2); + EXPECT_EQ((*res)[1], (uint64_t)4); + EXPECT_EQ((*res)[2], (uint64_t)6); } // Same as add_eint_int_term_to_term test above, but returning a lambda argument diff --git a/compiler/tests/unit_tests/concretelang/ClientLib/ClientParameters.cpp b/compiler/tests/unit_tests/concretelang/ClientLib/ClientParameters.cpp index b960d1222..6128831ed 100644 --- a/compiler/tests/unit_tests/concretelang/ClientLib/ClientParameters.cpp +++ b/compiler/tests/unit_tests/concretelang/ClientLib/ClientParameters.cpp @@ -43,17 +43,17 @@ TEST(Support, client_parameters_json_serde) { params0.inputs = { { /*.encryption = */ {{clientlib::SMALL_KEY, 0.00, {4, {1, 2, 3, 4}}}}, - /*.shape = */ {32, {1, 2, 3, 4}, 1 * 2 * 3 * 4}, + /*.shape = */ {32, {1, 2, 3, 4}, 1 * 2 * 3 * 4, false}, }, { - /*.encryption = */ {{clientlib::SMALL_KEY, 0.00, {5}}}, - /*.shape = */ {8, {4, 4, 4, 4}, 4 * 4 * 4 * 4}, + /*.encryption = */ {{clientlib::SMALL_KEY, 0.00, {5, {1, 2, 3, 4}}}}, + /*.shape = */ {8, {4, 4, 4, 4}, 4 * 4 * 4 * 4, false}, }, }; params0.outputs = { { - /*.encryption = */ {{clientlib::SMALL_KEY, 0.00, {5}}}, - /*.shape = */ {8, {4, 4, 4, 4}, 4 * 4 * 4 * 4}, + /*.encryption = */ {{clientlib::SMALL_KEY, 0.00, {5, {1, 2, 3, 4}}}}, + /*.shape = */ {8, {4, 4, 4, 4}, 4 * 4 * 4 * 4, false}, }, }; auto json = clientlib::toJSON(params0); diff --git a/compiler/tests/unit_tests/concretelang/TestLib/testlib_unit_test.cpp b/compiler/tests/unit_tests/concretelang/TestLib/testlib_unit_test.cpp index 4392f17be..f8d55b9dc 100644 --- a/compiler/tests/unit_tests/concretelang/TestLib/testlib_unit_test.cpp +++ b/compiler/tests/unit_tests/concretelang/TestLib/testlib_unit_test.cpp @@ -154,7 +154,7 @@ func.func @main(%arg0: !FHE.eint<7>, %arg1: !FHE.eint<7>) -> !FHE.eint<7> { continue; } auto res = lambda.call(a, b); - ASSERT_EQ_OUTCOME(res, a + b); + ASSERT_EQ_OUTCOME(res, (scalar_out)a + b); } } @@ -332,7 +332,7 @@ func.func @main(%arg0: tensor<2x3x1x!FHE.eint<7>>, %arg1: tensor<2x3x1x!FHE.eint for (size_t i = 0; i < v.size(); i++) { for (size_t j = 0; j < v[i].size(); j++) { for (size_t k = 0; k < v[i][j].size(); k++) { - EXPECT_EQ(v[i][j][k], 2 * ta[i][j][k]); + EXPECT_EQ(v[i][j][k], (scalar_out)2 * ta[i][j][k]); } } } @@ -400,6 +400,6 @@ func.func @main(%arg0: !FHE.eint<6>, %arg1: !FHE.eint<3>) -> !FHE.eint<6> { for (auto a : values_6bits()) for (auto b : values_3bits()) { auto res = lambda.call(a, b); - ASSERT_EQ_OUTCOME(res, a + b); + ASSERT_EQ_OUTCOME(res, (scalar_out)a + b); } }