Skip to content

SIMD is wrongly enabled while building on riscv64gc #109

Closed
@Cryolitia

Description

@Cryolitia
-- ------------------------------------------------------------------------------
--     libunicode (version 0.6.0)
-- ------------------------------------------------------------------------------
-- Build type:                  None
-- Build mode:                  dynamic
-- Build unit tests:            OFF
-- Build benchmark:             OFF
-- Build tools:                 ON
-- Enable tablegen fast build:  OFF
-- Using ccache:                CCACHE-NOTFOUND
-- SIMD support:                intrinsics
-- Using UCD directory:         /build/libunicode/src/libunicode/_ucd/ucd-16.0.0
-- Enable clang-tidy:           OFF ()
-- ------------------------------------------------------------------------------
-- ==============================================================================
--     ThirdParties
-- ------------------------------------------------------------------------------
-- ------------------------------------------------------------------------------
-- Configuring done (44.2s)
-- Generating done (0.2s)
-- Build files have been written to: /build/libunicode/src/build
[0/24] Generating UCD API and tables from /build/libunicode/src/libunicode/_ucd/ucd-16.0.0
[2/24] Building CXX object src/libunicode/CMakeFiles/unicode_ucd.dir/ucd.cpp.o
[3/24] Building CXX object src/libunicode/CMakeFiles/unicode_tablegen.dir/tablegen.cpp.o
[4/24] Linking CXX shared library src/libunicode/libunicode_ucd.so.0.6.0
[5/24] Creating library symlink src/libunicode/libunicode_ucd.so.0.6 src/libunicode/libunicode_ucd.so
[6/24] Building CXX object src/libunicode/CMakeFiles/unicode_loader.dir/codepoint_properties_loader.cpp.o
[7/24] Linking CXX shared library src/libunicode/libunicode_loader.so.0.6.0
[8/24] Creating library symlink src/libunicode/libunicode_loader.so.0.6 src/libunicode/libunicode_loader.so
[9/24] Linking CXX executable src/libunicode/unicode_tablegen
[9/24] Generating UCD codepoint properties tables from /build/libunicode/src/libunicode/_ucd/ucd-16.0.0
Loading file Scripts.txt ... 152 ms
Loading file DerivedCoreProperties.txt ... 321 ms
Loading file DerivedAge.txt ... 135 ms
Loading file extracted/DerivedGeneralCategory.txt ... 399 ms
Loading file extracted/DerivedName.txt ... 376 ms
Loading file auxiliary/GraphemeBreakProperty.txt ... 28 ms
Loading file EastAsianWidth.txt ... 124 ms
Loading file emoji/emoji-data.txt ... 27 ms
Assigning EmojiSegmentationCategory ... 16 ms
Assigning char_width ... 6 ms
Creating multistage tables (properties) ... 24919 ms
Creating multistage tables (names) ... 640469 ms
Writing C++ table files ... 215 ms
[11/24] Building CXX object src/libunicode/CMakeFiles/unicode.dir/utf8.cpp.o
[12/24] Building CXX object src/libunicode/CMakeFiles/unicode.dir/script_segmenter.cpp.o
[13/24] Building CXX object src/libunicode/CMakeFiles/unicode.dir/width.cpp.o
[14/24] Building CXX object src/libunicode/CMakeFiles/unicode.dir/codepoint_properties.cpp.o
[15/24] Building CXX object src/libunicode/CMakeFiles/unicode.dir/scan.cpp.o
FAILED: src/libunicode/CMakeFiles/unicode.dir/scan.cpp.o 
/usr/bin/c++ -DUSE_INTRINSICS -D_GLIBCXX_DEBUG -Dunicode_EXPORTS -I/build/libunicode/src/libunicode/src -I/build/libunicode/src/libunicode/src/libunicode/.. -march=rv64gc -mabi=lp64d -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection         -fno-omit-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/libunicode/src=/usr/src/debug/libunicode -flto=auto -std=c++20 -fPIC -fdiagnostics-color=always -Wall -Wextra -fdiagnostics-color=always -Wconversion -Wduplicated-cond -Wextra-semi -Wimplicit-fallthrough -Wlogical-op -Wmissing-declarations -Wno-unknown-pragmas -Wnull-dereference -Wpessimizing-move -Wredundant-move -Wsign-conversion -pedantic -MD -MT src/libunicode/CMakeFiles/unicode.dir/scan.cpp.o -MF src/libunicode/CMakeFiles/unicode.dir/scan.cpp.o.d -o src/libunicode/CMakeFiles/unicode.dir/scan.cpp.o -c /build/libunicode/src/libunicode/src/libunicode/scan.cpp
/build/libunicode/src/libunicode/src/libunicode/scan.cpp: In function ‘size_t unicode::detail::scan_for_text_ascii(std::string_view, size_t)’:
/build/libunicode/src/libunicode/src/libunicode/scan.cpp:110:5: error: ‘intrinsics’ has not been declared
  110 |     intrinsics::m128i const ControlCodeMax = intrinsics::set1_epi8(0x20); // 0..0x1F
      |     ^~~~~~~~~~
/build/libunicode/src/libunicode/src/libunicode/scan.cpp:111:5: error: ‘intrinsics’ has not been declared
  111 |     intrinsics::m128i const Complex = intrinsics::set1_epi8(-128);        // equals to 0x80 (0b1000'0000)
      |     ^~~~~~~~~~
/build/libunicode/src/libunicode/src/libunicode/scan.cpp:113:33: error: ‘intrinsics’ has not been declared
  113 |     while (input < end - sizeof(intrinsics::m128i))
      |                                 ^~~~~~~~~~
/build/libunicode/src/libunicode/src/libunicode/scan.cpp:115:9: error: ‘intrinsics’ has not been declared
  115 |         intrinsics::m128i batch = intrinsics::load_unaligned((intrinsics::m128i*) input);
      |         ^~~~~~~~~~
/build/libunicode/src/libunicode/src/libunicode/scan.cpp:116:9: error: ‘intrinsics’ has not been declared
  116 |         intrinsics::m128i isControl = intrinsics::compare_less(batch, ControlCodeMax);
      |         ^~~~~~~~~~
/build/libunicode/src/libunicode/src/libunicode/scan.cpp:117:9: error: ‘intrinsics’ has not been declared
  117 |         intrinsics::m128i isComplex = intrinsics::and128(batch, Complex);
      |         ^~~~~~~~~~
/build/libunicode/src/libunicode/src/libunicode/scan.cpp:119:9: error: ‘intrinsics’ has not been declared
  119 |         intrinsics::m128i testPack = intrinsics::or128(isControl, isComplex);
      |         ^~~~~~~~~~
/build/libunicode/src/libunicode/src/libunicode/scan.cpp:120:31: error: ‘intrinsics’ has not been declared
  120 |         if (int const check = intrinsics::movemask_epi8(testPack); check != 0)
      |                               ^~~~~~~~~~
/build/libunicode/src/libunicode/src/libunicode/scan.cpp:120:57: error: ‘testPack’ was not declared in this scope
  120 |         if (int const check = intrinsics::movemask_epi8(testPack); check != 0)
      |                                                         ^~~~~~~~
/build/libunicode/src/libunicode/src/libunicode/scan.cpp:126:25: error: ‘intrinsics’ has not been declared
  126 |         input += sizeof(intrinsics::m128i);
      |                         ^~~~~~~~~~

Link: https://archriscv.felixc.at/.status/log.htm?url=logs/libunicode/libunicode-0.6.0-2.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions