hardware:raspberry_pi:dietpi:opencl_on_videocore_iv_gpu

Raspberry Pi Zero WH VideoCore IV GPU で OpenCL🤤

$ sudo apt update && sudo apt upgrade

Hit:1 https://dietpi.com/apt bookworm InRelease
Hit:2 https://dietpi.com/apt all InRelease
Get:3 http://raspbian.raspberrypi.com/raspbian bookworm InRelease [15.0 kB]
Get:4 https://archive.raspberrypi.com/debian bookworm InRelease [23.6 kB]
Get:5 http://raspbian.raspberrypi.com/raspbian bookworm/main Sources [13.7 MB]
Get:6 https://archive.raspberrypi.com/debian bookworm/main armhf Packages [392 kB]
Get:7 https://archive.raspberrypi.com/debian bookworm/main armhf Contents (deb) [2,994 kB]
Get:8 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf Packages [14.5 MB]
Fetched 31.7 MB in 1min 48s (292 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo apt install cmake git

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
cmake is already the newest version (3.25.1-1).
git is already the newest version (1:2.39.2-1.1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo apt install opencl-headers

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
opencl-headers is already the newest version (3.0~2023.02.06-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo apt install ocl-icd-opencl-dev ocl-icd-dev

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ocl-icd-opencl-dev is already the newest version (2.3.1-1).
ocl-icd-dev is already the newest version (2.3.1-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo apt install libraspberrypi-dev

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libraspberrypi-dev is already the newest version (1:2+git20231018~131943+3c97f76-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo apt install clang-14 clang-format-14 clang-tidy-14

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
clang-14 is already the newest version (1:14.0.6-12+rpi1).
clang-14 set to manually installed.
clang-format-14 is already the newest version (1:14.0.6-12+rpi1).
clang-format-14 set to manually installed.
clang-tidy-14 is already the newest version (1:14.0.6-12+rpi1).
clang-tidy-14 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo apt install llvm-14 libllvm14 llvm-14-dev libllvmspirvlib-14-dev libllvmspirvlib14

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
llvm-14 is already the newest version (1:14.0.6-12+rpi1).
libllvm14 is already the newest version (1:14.0.6-12+rpi1).
libllvmspirvlib-14-dev is already the newest version (14.0.0-5+rpi1).
libllvmspirvlib14 is already the newest version (14.0.0-5+rpi1).
The following additional packages will be installed:
  libz3-dev llvm-14-tools python3-pygments
Suggested packages:
  python-pygments-doc ttf-bitstream-vera
The following NEW packages will be installed:
  libz3-dev llvm-14-dev llvm-14-tools python3-pygments
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 35.1 MB of archives.
After this operation, 252 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ftp.udx.icscoe.jp/Linux/raspbian/raspbian bookworm/main armhf libz3-dev armhf 4.8.12-3.1 [90.6 kB]
Get:2 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf python3-pygments all 2.14.0+dfsg-1 [783 kB]
Get:3 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf llvm-14-tools armhf 1:14.0.6-12+rpi1 [361 kB]
Get:4 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf llvm-14-dev armhf 1:14.0.6-12+rpi1 [33.9 MB]
Fetched 35.1 MB in 2min 29s (236 kB/s)                                                                       
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libz3-dev:armhf.
(Reading database ... 141885 files and directories currently installed.)
Preparing to unpack .../libz3-dev_4.8.12-3.1_armhf.deb ...
Unpacking libz3-dev:armhf (4.8.12-3.1) ...
Selecting previously unselected package python3-pygments.
Preparing to unpack .../python3-pygments_2.14.0+dfsg-1_all.deb ...
Unpacking python3-pygments (2.14.0+dfsg-1) ...
Selecting previously unselected package llvm-14-tools.
Preparing to unpack .../llvm-14-tools_1%3a14.0.6-12+rpi1_armhf.deb ...
Unpacking llvm-14-tools (1:14.0.6-12+rpi1) ...
Selecting previously unselected package llvm-14-dev.
Preparing to unpack .../llvm-14-dev_1%3a14.0.6-12+rpi1_armhf.deb ...
Unpacking llvm-14-dev (1:14.0.6-12+rpi1) ...
Setting up libz3-dev:armhf (4.8.12-3.1) ...
Setting up python3-pygments (2.14.0+dfsg-1) ...
Setting up llvm-14-tools (1:14.0.6-12+rpi1) ...
Setting up llvm-14-dev (1:14.0.6-12+rpi1) ...
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+rpt2+deb12u4) ...

$ sudo apt install clinfo

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
clinfo is already the newest version (3.0.23.01.25-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 14

update-alternatives: using /usr/bin/clang-14 to provide /usr/bin/clang (clang) in auto mode

$ sudo update-alternatives --config clang

There is 1 choice for the alternative clang (providing /usr/bin/clang).

  Selection    Path               Priority   Status
------------------------------------------------------------
* 0            /usr/bin/clang-14   14        auto mode
  1            /usr/bin/clang-14   14        manual mode

Press <enter> to keep the current choice[*], or type selection number: 

$ clang --version

Raspbian clang version 14.0.6
Target: arm-unknown-linux-gnueabihf
Thread model: posix
InstalledDir: /usr/bin

$ sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-14 14

update-alternatives: using /usr/bin/clang-format-14 to provide /usr/bin/clang-format (clang-format) in auto mode

$ sudo update-alternatives --config clang-format

There is 1 choice for the alternative clang-format (providing /usr/bin/clang-format).

  Selection    Path                      Priority   Status
------------------------------------------------------------
* 0            /usr/bin/clang-format-14   14        auto mode
  1            /usr/bin/clang-format-14   14        manual mode

Press <enter> to keep the current choice[*], or type selection number: 

$ clang-format --version

Raspbian clang-format version 14.0.6

$ sudo update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-14 14

update-alternatives: using /usr/bin/llvm-config-14 to provide /usr/bin/llvm-config (llvm-config) in auto mode

$ sudo update-alternatives --config llvm-config

There is 1 choice for the alternative llvm-config (providing /usr/bin/llvm-config).

  Selection    Path                     Priority   Status
------------------------------------------------------------
* 0            /usr/bin/llvm-config-14   14        auto mode
  1            /usr/bin/llvm-config-14   14        manual mode

Press <enter> to keep the current choice[*], or type selection number: 

$ llvm-config --version

14.0.6

ソースコードの clone …🤔

$ mkdir opencl && cd opencl
$ git clone --depth 1 https://github.com/doe300/VC4CLStdLib.git

Cloning into 'VC4CLStdLib'...
remote: Enumerating objects: 38, done.
remote: Counting objects: 100% (38/38), done.
remote: Compressing objects: 100% (38/38), done.
remote: Total 38 (delta 1), reused 14 (delta 0), pack-reused 0
Receiving objects: 100% (38/38), 151.65 KiB | 404.00 KiB/s, done.
Resolving deltas: 100% (1/1), done.

$ git clone https://github.com/doe300/VC4C.git

Cloning into 'VC4C'...
remote: Enumerating objects: 14476, done.
remote: Counting objects: 100% (3209/3209), done.
remote: Compressing objects: 100% (577/577), done.
remote: Total 14476 (delta 2626), reused 3192 (delta 2616), pack-reused 11267
Receiving objects: 100% (14476/14476), 26.52 MiB | 369.00 KiB/s, done.
Resolving deltas: 100% (11603/11603), done.
Updating files: 100% (1607/1607), done.

$ git clone https://github.com/doe300/VC4CL.git

Cloning into 'VC4CL'...
remote: Enumerating objects: 2119, done.
remote: Counting objects: 100% (118/118), done.
remote: Compressing objects: 100% (83/83), done.
remote: Total 2119 (delta 40), reused 39 (delta 35), pack-reused 2001
Receiving objects: 100% (2119/2119), 1.05 MiB | 254.00 KiB/s, done.
Resolving deltas: 100% (1657/1657), done.

$ cd VC4CLStdLib
$ mkdir build && cd build
$ cmake ..

-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- build deb package...
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dietpi/opencl/VC4CLStdLib/build

$ make

[100%] Linking C static library libVC4CLStdLib.a
[100%] Built target VC4CLStdLib

$ sudo make install && sudo ldconfig

[100%] Built target VC4CLStdLib
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/include/vc4cl-stdlib
-- Installing: /usr/local/include/vc4cl-stdlib/_atomics.h
-- Installing: /usr/local/include/vc4cl-stdlib/opencl-c.h
-- Installing: /usr/local/include/vc4cl-stdlib/_integer.h
-- Installing: /usr/local/include/vc4cl-stdlib/defines.h
-- Installing: /usr/local/include/vc4cl-stdlib/_printf.h
-- Installing: /usr/local/include/vc4cl-stdlib/_spir_mangling.h
-- Installing: /usr/local/include/vc4cl-stdlib/_config.h
-- Installing: /usr/local/include/vc4cl-stdlib/_relational.h
-- Installing: /usr/local/include/vc4cl-stdlib/_common.h
-- Installing: /usr/local/include/vc4cl-stdlib/_work_items.h
-- Installing: /usr/local/include/vc4cl-stdlib/_extensions.h
-- Installing: /usr/local/include/vc4cl-stdlib/_geometric.h
-- Installing: /usr/local/include/vc4cl-stdlib/_images.h
-- Installing: /usr/local/include/vc4cl-stdlib/_overloads.h
-- Installing: /usr/local/include/vc4cl-stdlib/_math.h
-- Installing: /usr/local/include/vc4cl-stdlib/_vector.h
-- Installing: /usr/local/include/vc4cl-stdlib/_intrinsics.h
-- Installing: /usr/local/include/vc4cl-stdlib/_synchronization.h
-- Installing: /usr/local/include/vc4cl-stdlib/_conversions.h
-- Installing: /usr/local/include/vc4cl-stdlib/_clcxx_mangling.h
-- Installing: /usr/local/include/vc4cl-stdlib/_float_float.h
-- Installing: /usr/local/include/vc4cl-stdlib/_async.h
-- Installing: /usr/local/include/vc4cl-stdlib/VC4CLStdLib.h

$ cd ../../VC4C
$ mkdir build && cd build
$ cmake ..

CMake Deprecation Warning at CMakeLists.txt:4 (cmake_policy):
  The OLD behavior for policy CMP0026 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


-- VC4CL standard library headers found: /home/dietpi/opencl/VC4C/../VC4CLStdLib/include/
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using CMake 3.14+ FetchContent to include dependencies...
-- CLang compiler found: /usr/bin/clang
-- LLVM-dis found: /usr/bin/llvm-dis-14
-- LLVM-as found: /usr/bin/llvm-as-14
-- LLVM-link found: /usr/bin/llvm-link-14
-- Performing Test HAVE_FFI_CALL
-- Performing Test HAVE_FFI_CALL - Success
-- Found FFI: /usr/lib/arm-linux-gnueabihf/libffi.so  
-- Performing Test Terminfo_LINKABLE
-- Performing Test Terminfo_LINKABLE - Success
-- Found Terminfo: /usr/lib/arm-linux-gnueabihf/libtinfo.so  
-- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found version "1.2.13") 
-- Found LibXml2: /usr/lib/arm-linux-gnueabihf/libxml2.so (found version "2.9.14") 
-- Compiling LLVM library front-end with LLVM in version 14.0.6 located in '/usr/lib/llvm-14/lib'
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- found clang-format: /usr/bin/clang-format
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dietpi/opencl/VC4C/build

$ make

[  1%] Creating directories for 'cpplog-project'
[  1%] Performing download step (git clone) for 'cpplog-project'
Cloning into 'cpplog-project'...
Already on 'master'
Your branch is up to date with 'origin/master'.
[  2%] Performing update step for 'cpplog-project'
From https://github.com/doe300/cpplog
 * branch            HEAD       -> FETCH_HEAD
Already up to date.
[  2%] No patch step for 'cpplog-project'
[  2%] Performing configure step for 'cpplog-project'
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dietpi/opencl/VC4C/build/cpplog/src/cpplog-project-build
[  3%] Performing build step for 'cpplog-project'
[ 12%] Building CXX object CMakeFiles/cpplog.dir/src/log.cpp.o
[ 25%] Building CXX object CMakeFiles/cpplog.dir/src/logger.cpp.o
[ 37%] Building CXX object CMakeFiles/cpplog.dir/src/log_impl.cpp.o
[ 50%] Linking CXX shared library libcpplog.so
[ 50%] Built target cpplog
[ 62%] Building CXX object CMakeFiles/cpplog-static.dir/src/log.cpp.o
[ 75%] Building CXX object CMakeFiles/cpplog-static.dir/src/logger.cpp.o
[ 87%] Building CXX object CMakeFiles/cpplog-static.dir/src/log_impl.cpp.o
[100%] Linking CXX static library libcpplog-static.a
[100%] Built target cpplog-static
[  3%] Built target cpplog-project-build
[  4%] Building CXX object src/CMakeFiles/VC4CC.dir/BasicBlock.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  4%] Building CXX object src/CMakeFiles/VC4CC.dir/CompilationError.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  5%] Building CXX object src/CMakeFiles/VC4CC.dir/Compiler.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  5%] Building CXX object src/CMakeFiles/VC4CC.dir/Disassembler.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  6%] Building CXX object src/CMakeFiles/VC4CC.dir/Expression.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  6%] Building CXX object src/CMakeFiles/VC4CC.dir/GlobalValues.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  6%] Building CXX object src/CMakeFiles/VC4CC.dir/HalfType.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  7%] Building CXX object src/CMakeFiles/VC4CC.dir/InstructionWalker.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  7%] Building CXX object src/CMakeFiles/VC4CC.dir/Locals.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  8%] Building CXX object src/CMakeFiles/VC4CC.dir/Method.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  8%] Building CXX object src/CMakeFiles/VC4CC.dir/Module.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  9%] Building CXX object src/CMakeFiles/VC4CC.dir/ProcessUtil.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  9%] Building CXX object src/CMakeFiles/VC4CC.dir/Profiler.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[  9%] Building CXX object src/CMakeFiles/VC4CC.dir/Register.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 10%] Building CXX object src/CMakeFiles/VC4CC.dir/signals.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 10%] Building CXX object src/CMakeFiles/VC4CC.dir/SIMDVector.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 11%] Building CXX object src/CMakeFiles/VC4CC.dir/ThreadPool.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 11%] Building CXX object src/CMakeFiles/VC4CC.dir/Types.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 11%] Building CXX object src/CMakeFiles/VC4CC.dir/Values.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 12%] Building CXX object src/CMakeFiles/VC4CC.dir/shared/BinaryHeader.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 12%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/AvailableExpressionAnalysis.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 13%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/ControlFlowGraph.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 13%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/ControlFlowLoop.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 14%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/DataDependencyGraph.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 14%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/DebugGraph.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 14%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/DependencyGraph.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 15%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/DominatorTree.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 15%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/FlagsAnalysis.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 17%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/InterferenceGraph.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 17%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/LivenessAnalysis.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 18%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/MemoryAnalysis.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 18%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/PatternMatching.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 18%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/RegisterAnalysis.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 19%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/ValueRange.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 19%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/WorkItemAnalysis.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 20%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/ALUInstruction.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 20%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/BranchInstruction.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 21%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/CodeGenerator.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 21%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/GraphColoring.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 21%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/Instruction.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 22%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/KernelInfo.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 22%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/LoadInstruction.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 23%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/OpCodes.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 23%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/RegisterFixes.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 23%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/SemaphoreInstruction.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 24%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/Branching.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 24%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/Helper.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 25%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/Instruction.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 25%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/LoadImmediate.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 26%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/MemoryInstruction.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
/home/dietpi/opencl/VC4C/src/intermediate/MemoryInstruction.cpp: In member function ‘vc4c::DataType vc4c::intermediate::MemoryInstruction::getSourceElementType(bool) const’:
/home/dietpi/opencl/VC4C/src/intermediate/MemoryInstruction.cpp:136:39: warning: vc4c::DataType vc4c::DataType::toArrayType(unsigned int) const’ is deprecated [-Wdeprecated-declarations]
  136 |         return elementType.toArrayType(getNumEntries().getLiteralValue()->unsignedInt());
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/dietpi/opencl/VC4C/src/intermediate/../Locals.h:12,
                 from /home/dietpi/opencl/VC4C/src/intermediate/IntermediateInstruction.h:10,
                 from /home/dietpi/opencl/VC4C/src/intermediate/MemoryInstruction.cpp:7:
/home/dietpi/opencl/VC4C/src/intermediate/../Types.h:176:33: note: declared here
  176 |         [[deprecated]] DataType toArrayType(unsigned int numElements) const;
      |                                 ^~~~~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/MemoryInstruction.cpp: In member function ‘vc4c::DataType vc4c::intermediate::MemoryInstruction::getDestinationElementType(bool) const’:
/home/dietpi/opencl/VC4C/src/intermediate/MemoryInstruction.cpp:174:39: warning: vc4c::DataType vc4c::DataType::toArrayType(unsigned int) const’ is deprecated [-Wdeprecated-declarations]
  174 |         return elementType.toArrayType(getNumEntries().getLiteralValue()->unsignedInt());
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../Types.h:176:33: note: declared here
  176 |         [[deprecated]] DataType toArrayType(unsigned int numElements) const;
      |                                 ^~~~~~~~~~~
[ 26%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/MethodCall.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 26%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/Operations.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 27%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/Synchronization.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 27%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/TypeConversions.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 28%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/VectorHelper.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 28%] Building CXX object src/CMakeFiles/VC4CC.dir/intrinsics/Comparisons.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 29%] Building CXX object src/CMakeFiles/VC4CC.dir/intrinsics/Images.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 29%] Building CXX object src/CMakeFiles/VC4CC.dir/intrinsics/Intrinsics.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 29%] Building CXX object src/CMakeFiles/VC4CC.dir/intrinsics/Operators.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 30%] Building CXX object src/CMakeFiles/VC4CC.dir/intrinsics/WorkItems.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 30%] Building CXX object src/CMakeFiles/VC4CC.dir/llvm/BitcodeReader.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
/home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp: In member function ‘void vc4c::llvm2qasm::BitcodeReader::extractKernelMetadata(vc4c::Module&, vc4c::Method&, const llvm::Function&)’:
/home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp:125:13: warning: unused variable ‘metadata’ [-Wunused-variable]
  125 |     if(auto metadata = func.getMetadata("kernel_arg_access_qual"))
      |             ^~~~~~~~
/home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp:150:13: warning: unused variable ‘metadata’ [-Wunused-variable]
  150 |     if(auto metadata = func.getMetadata("kernel_arg_base_type"))
      |             ^~~~~~~~
/home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp: In member function ‘void vc4c::llvm2qasm::BitcodeReader::parseInstruction(vc4c::Module&, vc4c::Method&, vc4c::llvm2qasm::LLVMInstructionList&, const llvm::Instruction&)’:
/home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp:937:50: warning: conversion from ‘uint64_t’ {aka ‘long long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
  937 |         unsigned alignment = alloca->getAlignment();
      |                              ~~~~~~~~~~~~~~~~~~~~^~
/home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp: In member function ‘vc4c::Value vc4c::llvm2qasm::BitcodeReader::toConstant(vc4c::Module&, const llvm::Value*, vc4c::Method*, vc4c::llvm2qasm::LLVMInstructionList*)’:
/home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp:1424:18: warning: unused variable ‘constant’ [-Wunused-variable]
 1424 |     else if(auto constant = llvm::dyn_cast<const llvm::ConstantAggregateZero>(val))
      |                  ^~~~~~~~
[ 31%] Building CXX object src/CMakeFiles/VC4CC.dir/llvm/LLVMInstruction.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 31%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/AddressCalculation.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 32%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/Inliner.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 32%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/LiteralValues.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 32%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/LongOperations.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 34%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/MemoryAccess.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 34%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/MemoryMapChecks.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
/home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp: In function ‘vc4c::Optional<vc4c::Value> vc4c::normalization::getConstantElementValue(const vc4c::Value&)’:
/home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp:99:17: warning: unused variable ‘reg’ [-Wunused-variable]
   99 |         if(auto reg = container->checkRegister())
      |                 ^~~
/home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp: In function ‘vc4c::Optional<vc4c::DataType> convertSmallArrayToRegister(const vc4c::Local*)’:
/home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp:131:17: warning: unused variable ‘pointerType’ [-Wunused-variable]
  131 |         if(auto pointerType = baseType.getPointerType())
      |                 ^~~~~~~~~~~
/home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp: In lambda function:
/home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp:158:21: warning: unused variable ‘memInst’ [-Wunused-variable]
  158 |             if(auto memInst = dynamic_cast<const MemoryInstruction*>(writer))
      |                     ^~~~~~~
/home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp: In lambda function:
/home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp:165:21: warning: unused variable ‘memInst’ [-Wunused-variable]
  165 |             if(auto memInst = dynamic_cast<const MemoryInstruction*>(reader))
      |                     ^~~~~~~
[ 35%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/MemoryMappings.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 35%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/Normalizer.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 36%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/Rewrite.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 36%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Combiner.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 36%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/ControlFlow.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 37%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Eliminator.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 37%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Flags.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 38%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Memory.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 38%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Optimizer.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 38%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Peephole.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 39%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Reordering.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 39%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/InstructionScheduler.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 40%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Vector.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 40%] Building CXX object src/CMakeFiles/VC4CC.dir/periphery/CacheEntry.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 41%] Building CXX object src/CMakeFiles/VC4CC.dir/periphery/RegisterLoweredMemory.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 41%] Building CXX object src/CMakeFiles/VC4CC.dir/periphery/SFU.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 41%] Building CXX object src/CMakeFiles/VC4CC.dir/periphery/TMU.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 42%] Building CXX object src/CMakeFiles/VC4CC.dir/periphery/VPM.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
/home/dietpi/opencl/VC4C/src/periphery/VPM.cpp: In static member function ‘static vc4c::DataType vc4c::periphery::VPM::getVPMStorageType(vc4c::DataType)’:
/home/dietpi/opencl/VC4C/src/periphery/VPM.cpp:1450:74: warning: vc4c::DataType vc4c::DataType::toArrayType(unsigned int) const’ is deprecated [-Wdeprecated-declarations]
 1450 |         inVPMType = getVPMStorageType(arrayType->elementType).toArrayType(arrayType->size);
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
In file included from /home/dietpi/opencl/VC4C/src/periphery/../intermediate/../Locals.h:12,
                 from /home/dietpi/opencl/VC4C/src/periphery/../intermediate/IntermediateInstruction.h:10,
                 from /home/dietpi/opencl/VC4C/src/periphery/../InstructionWalker.h:10,
                 from /home/dietpi/opencl/VC4C/src/periphery/VPM.h:11,
                 from /home/dietpi/opencl/VC4C/src/periphery/VPM.cpp:7:
/home/dietpi/opencl/VC4C/src/periphery/../intermediate/../Types.h:176:33: note: declared here
  176 |         [[deprecated]] DataType toArrayType(unsigned int numElements) const;
      |                                 ^~~~~~~~~~~
[ 42%] Building CXX object src/CMakeFiles/VC4CC.dir/precompilation/ClangLibrary.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 43%] Building CXX object src/CMakeFiles/VC4CC.dir/precompilation/FrontendCompiler.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 43%] Building CXX object src/CMakeFiles/VC4CC.dir/precompilation/LLVMLibrary.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 44%] Building CXX object src/CMakeFiles/VC4CC.dir/precompilation/Precompiler.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 44%] Building CXX object src/CMakeFiles/VC4CC.dir/precompilation/TemporaryFile.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 44%] Building CXX object src/CMakeFiles/VC4CC.dir/spirv/SPIRVBuiltins.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 45%] Building CXX object src/CMakeFiles/VC4CC.dir/spirv/SPIRVHelper.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 45%] Building CXX object src/CMakeFiles/VC4CC.dir/spirv/SPIRVLexer.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 46%] Building CXX object src/CMakeFiles/VC4CC.dir/spirv/SPIRVOperation.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 46%] Building CXX object src/CMakeFiles/VC4CC.dir/spirv/SPIRVParserBase.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 47%] Building CXX object src/CMakeFiles/VC4CC.dir/spirv/SPIRVToolsParser.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 47%] Building CXX object src/CMakeFiles/VC4CC.dir/tools/Emulator.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 47%] Building CXX object src/CMakeFiles/VC4CC.dir/tools/options.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 48%] Linking CXX shared library libVC4CC.so
[ 48%] Built target VC4CC
[ 48%] Built target GetGitCommit
[ 48%] Building CXX object src/CMakeFiles/VC4C.dir/main.cpp.o
[ 48%] Linking CXX executable vc4c
VC4CL standard library precompiled into /home/dietpi/opencl/VC4C/../VC4CLStdLib/include/
[ 48%] Built target VC4C
[ 48%] Building CXX object tools/CMakeFiles/qpu_emulator.dir/emulator.cpp.o
[ 50%] Linking CXX executable qpu_emulator
[ 50%] Built target qpu_emulator
[ 50%] Generating test_files/unaligned_memory_access.cl.o
[ 51%] Generating test_files/OpenCV/transpose.cl.o
[ 51%] Generating test_files/fibonacci.cl.o
[ 51%] Generating test_files/hello_world.cl.o
[ 52%] Generating test_files/hello_world_constant.cl.o
[ 52%] Generating test_files/hello_world_vector.cl.o
[ 53%] Generating test_files/histogram.cl.o
[ 53%] Generating test_files/md5.cl.o
[ 53%] Generating test_files/SHA-256.cl.o
[ 54%] Generating test_files/test.cl.o
[ 54%] Generating test_files/test_instructions.cl.o
[ 55%] Generating test_files/test_prime.cl.o
[ 55%] Generating test_files/test_async_copy.cl.o
[ 56%] Generating test_files/test_atomic.cl.o
[ 56%] Generating test_files/test_barrier.cl.o
[ 56%] Generating test_files/test_branches.cl.o
[ 57%] Generating test_files/test_conditional_address.cl.o
[ 57%] Generating test_files/test_constant_load.cl.o
[ 58%] Generating test_files/test_cross_group_access.cl.o
[ 58%] Generating test_files/test_cts_regressions.cl.o
[ 59%] Generating test_files/test_expect_assume.cl.o
[ 59%] Generating test_files/test_hashes.cl.o
[ 59%] Generating test_files/local_private_storage.cl.o
[ 60%] Generating test_files/test_other.cl.o
[ 60%] Generating test_files/test_sfu.cl.o
[ 61%] Generating test_files/test_shuffle.cl.o
[ 61%] Generating test_files/test_storage.cl.o
[ 62%] Generating test_files/test_struct.cl.o
[ 62%] Generating test_files/test_vector.cl.o
[ 63%] Generating test_files/test_vectorization.cl.o
[ 63%] Generating test_files/test_vpm_read.cl.o
[ 64%] Generating test_files/test_vpm_write.cl.o
[ 64%] Generating test_files/test_work_item.cl.o
[ 64%] Generating test_files/bugs/30_local_memory.cl.o
[ 65%] Generating test_files/bugs/33_floating_point_folding.cl.o
[ 65%] Generating test_files/bugs/vc4cl_27_wrong_result.cl.o
[ 67%] Generating test_files/bugs/54_invalid_results.cl.o
[ 67%] Generating test_files/boost-compute/initial_reduce.cl.o
[ 68%] Generating test_files/boost-compute/adjacent_find.cl.o
[ 68%] Generating test_files/boost-compute/test_count.cl.o
[ 68%] Generating test_files/boost-compute/test_extrema.cl.o
[ 69%] Generating test_files/boost-compute/test_functional_popcount.cl.o
[ 69%] Generating test_files/boost-compute/test_reduce.cl.o
[ 70%] Generating test_files/boost-compute/test_insertion_sort.cl.o
[ 70%] Generating test_files/boost-compute/test_merge.cl.o
[ 71%] Generating test_files/boost-compute/test_transform2.cl.o
[ 71%] Generating test_files/boost-compute/user_defined_types.cl.o
[ 71%] Generating test_files/OpenCL-CTS/pointer_cast.cl.o
[ 72%] Generating test_files/OpenCL-CTS/integer_add_sat.cl.o
[ 72%] Generating test_files/OpenCL-CTS/sub_sat.cl.o
[ 73%] Generating test_files/OpenCL-CTS/uchar_compare.cl.o
[ 73%] Generating test_files/OpenCL-CTS/async_copy_global_to_local.cl.o
[ 74%] Generating test_files/OpenCL-CTS/min_max_constant_args.cl.o
[ 74%] Generating test_files/OpenCL-CTS/sub_buffers_read_write.cl.o
[ 74%] Generating test_files/OpenCL-CTS/local_kernel_scope.cl.o
[ 75%] Generating test_files/OpenCL-CTS/barrier.cl.o
[ 75%] Generating test_files/OpenCL-CTS/clamp.cl.o
[ 76%] Generating test_files/OpenCL-CTS/cross_product.cl.o
[ 76%] Generating test_files/OpenCL-CTS/constant.cl.o
[ 77%] Generating test_files/OpenCL-CTS/test_select.cl.o
[ 77%] Generating test_files/BabelStream/OCLStream.cl.o
[ 77%] Generating test_files/clNN/SpatialUpSamplingNearest.cl.o
[ 78%] Generating test_files/deepCL/copy.cl.o
[ 78%] Generating test_files/deepCL/inv.cl.o
[ 79%] Generating test_files/deepCL/memset.cl.o
[ 79%] Generating test_files/HandsOnOpenCL/matmul.cl.o
[ 79%] Generating test_files/HandsOnOpenCL/pi_ocl.cl.o
[ 80%] Generating test_files/NVIDIA/VectorAdd.cl.o
[ 80%] Generating test_files/OpenCLIPP/Histogram.cl.o
[ 81%] Generating test_files/pocl/test_structs_as_args.cl.o
[ 81%] Generating test_files/rodinia/nearestNeighbor_kernel.cl.o
[ 82%] Generating test_files/OpenCV/flip.cl.o
[ 82%] Generating test_files/OpenCV/meanstddev.cl.o
[ 82%] Generating test_files/OpenCV/normalize.cl.o
[ 84%] Generating test_files.h
[ 84%] Generating test_files/test_files.cpp
[ 84%] Building CXX object test/CMakeFiles/TestData.dir/ArithmeticTests.cpp.o
In file included from /home/dietpi/opencl/VC4C/test/ArithmeticTests.cpp:6:
/home/dietpi/opencl/VC4C/test/TestEntries.h: In instantiation of ‘std::vector<_RealType> test_data::transform(const std::vector<T>&, const Func&) [with R = float; T = float; Func = registerTypeTests<float, int>(const std::string&)::<lambda(float)>]’:
/home/dietpi/opencl/VC4C/test/ArithmeticTests.cpp:430:25:   required from ‘void registerTypeTests(const std::string&) [with T = float; IntType = int; std::string = std::__cxx11::basic_string<char>]/home/dietpi/opencl/VC4C/test/ArithmeticTests.cpp:609:38:   required from here
/home/dietpi/opencl/VC4C/test/TestEntries.h:107:29: warning: conversion from ‘int’ to ‘__gnu_cxx::__alloc_traits<std::allocator<float>, float>::value_type’ {aka ‘float’} may change value [-Wconversion]
  107 |             result[i] = func(arg[i]);
      |                         ~~~~^~~~~~~~
[ 85%] Building CXX object test/CMakeFiles/TestData.dir/ConversionTests.cpp.o
[ 85%] Building CXX object test/CMakeFiles/TestData.dir/FloatTests.cpp.o
[ 85%] Building CXX object test/CMakeFiles/TestData.dir/IntegerTests.cpp.o
[ 86%] Building CXX object test/CMakeFiles/TestData.dir/MathTests.cpp.o
In file included from /home/dietpi/opencl/VC4C/test/MathTests.cpp:6:
/home/dietpi/opencl/VC4C/test/TestEntries.h: In instantiation of ‘std::vector<_RealType> test_data::transform(const std::vector<T>&, const std::vector<U>&, const Func&) [with R = float; T = float; U = int; Func = std::function<float(float, float)>]’:
/home/dietpi/opencl/VC4C/test/MathTests.cpp:376:67:   required from here
/home/dietpi/opencl/VC4C/test/TestEntries.h:119:29: warning: conversion from ‘__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type’ {aka ‘int’} to ‘float’ may change value [-Wconversion]
  119 |             result[i] = func(arg0[i], arg1[i]);
      |                         ~~~~^~~~~~~~~~~~~~~~~~
[ 86%] Building CXX object test/CMakeFiles/TestData.dir/MemoryTests.cpp.o
[ 87%] Building CXX object test/CMakeFiles/TestData.dir/RelationalTests.cpp.o
[ 87%] Building CXX object test/CMakeFiles/TestData.dir/VectorTests.cpp.o
[ 88%] Building CXX object test/CMakeFiles/TestData.dir/TestData.cpp.o
[ 88%] Building CXX object test/CMakeFiles/TestData.dir/test_files/test_files.cpp.o
[ 88%] Linking CXX static library libvc4c_testdata.a
[ 88%] Built target TestData
[ 89%] Creating directories for 'cpptest-lite-project'
[ 89%] Performing download step (git clone) for 'cpptest-lite-project'
Cloning into 'cpptest-lite-project'...
Already on 'master'
Your branch is up to date with 'origin/master'.
[ 90%] Performing update step for 'cpptest-lite-project'
From https://github.com/doe300/cpptest-lite
 * branch            HEAD       -> FETCH_HEAD
Already up to date.
[ 90%] No patch step for 'cpptest-lite-project'
[ 90%] Performing configure step for 'cpptest-lite-project'
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project-build
[ 91%] Performing build step for 'cpptest-lite-project'
[  8%] Building CXX object CMakeFiles/cpptest-lite.dir/src/BDDSuite.cpp.o
[ 16%] Building CXX object CMakeFiles/cpptest-lite.dir/src/CollectorOutput.cpp.o
In file included from /usr/include/c++/12/vector:70,
                 from /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/CollectorOutput.h:5,
                 from /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/src/CollectorOutput.cpp:10:
/usr/include/c++/12/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(iterator, _Args&& ...) [with _Args = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const unsigned int&}; _Tp = Test::CollectorOutput::SuiteInfo; _Alloc = std::allocator<Test::CollectorOutput::SuiteInfo>]’:
/usr/include/c++/12/bits/vector.tcc:439:7: note: parameter passing for argument of type ‘std::vector<Test::CollectorOutput::SuiteInfo>::iterator’ changed in GCC 7.1
  439 |       vector<_Tp, _Alloc>::
      |       ^~~~~~~~~~~~~~~~~~~
In member function ‘void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const unsigned int&}; _Tp = Test::CollectorOutput::SuiteInfo; _Alloc = std::allocator<Test::CollectorOutput::SuiteInfo>]’,
    inlined from ‘virtual void Test::CollectorOutput::initializeSuite(const std::string&, unsigned int)’ at /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/src/CollectorOutput.cpp:16:21:
/usr/include/c++/12/bits/vector.tcc:123:28: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<Test::CollectorOutput::SuiteInfo*, std::vector<Test::CollectorOutput::SuiteInfo> >’ changed in GCC 7.1
  123 |           _M_realloc_insert(end(), std::forward<_Args>(__args)...);
      |           ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 25%] Building CXX object CMakeFiles/cpptest-lite.dir/src/CompilerOutput.cpp.o
[ 33%] Building CXX object CMakeFiles/cpptest-lite.dir/src/ConsoleOutput.cpp.o
[ 41%] Building CXX object CMakeFiles/cpptest-lite.dir/src/HTMLOutput.cpp.o
[ 50%] Building CXX object CMakeFiles/cpptest-lite.dir/src/ParallelSuite.cpp.o
[ 58%] Building CXX object CMakeFiles/cpptest-lite.dir/src/SynchronizedOutput.cpp.o
[ 66%] Building CXX object CMakeFiles/cpptest-lite.dir/src/TestSuite.cpp.o
[ 75%] Building CXX object CMakeFiles/cpptest-lite.dir/src/TestMain.cpp.o
[ 83%] Building CXX object CMakeFiles/cpptest-lite.dir/src/TextOutput.cpp.o
[ 91%] Building CXX object CMakeFiles/cpptest-lite.dir/src/XMLOutput.cpp.o
[100%] Linking CXX shared library libcpptest-lite.so
[100%] Built target cpptest-lite
[ 91%] Built target cpptest-lite-project-build
[ 92%] Building CXX object test/CMakeFiles/TestVC4C.dir/RegressionTest.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 92%] Building CXX object test/CMakeFiles/TestVC4C.dir/test.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 93%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestAnalyses.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
/home/dietpi/opencl/VC4C/test/TestAnalyses.cpp: In member function ‘void TestAnalyses::testActiveWorkItems()’:
/home/dietpi/opencl/VC4C/test/TestAnalyses.cpp:1514:14: warning: variable ‘numNodes’ set but not used [-Wunused-but-set-variable]
 1514 |         auto numNodes = cfg.getNodes().size();
      |              ^~~~~~~~
[ 93%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestCustomContainers.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
In file included from /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/asserts.h:3,
                 from /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/cpptest.h:3,
                 from /home/dietpi/opencl/VC4C/test/TestCustomContainers.h:10,
                 from /home/dietpi/opencl/VC4C/test/TestCustomContainers.cpp:7:
/home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/comparisons.h: In instantiation of ‘bool Test::Comparisons::isSame(const T1&, const T2&) [with T1 = int; T2 = unsigned int]’:
/home/dietpi/opencl/VC4C/test/TestCustomContainers.cpp:51:5:   required from here
/home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/comparisons.h:78:37: warning: comparison of integer expressions of different signedness: ‘const int’ and ‘const unsigned int’ [-Wsign-compare]
   78 |                         return val1 == val2;
      |                                ~~~~~^~~~~~~
[ 93%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestEmulator.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 94%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestExpressions.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 94%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestFrontends.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 95%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestGraph.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 95%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestInstructions.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
/home/dietpi/opencl/VC4C/test/TestInstructions.cpp: In member function ‘void TestInstructions::testOpCodeFlags()’:
/home/dietpi/opencl/VC4C/test/TestInstructions.cpp:827:10: error: expected unqualified-id before numeric constant
  827 |     auto INT_MAX = Value(Literal(0x7FFFFFFFu), TYPE_INT32);
      |          ^~~~~~~
In file included from /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/cpptest.h:3,
                 from /home/dietpi/opencl/VC4C/test/TestInstructions.h:10,
                 from /home/dietpi/opencl/VC4C/test/TestInstructions.cpp:7:
/home/dietpi/opencl/VC4C/test/TestInstructions.cpp:837:36: error: no match for call to ‘(const vc4c::OpCode) (int, int)’
  837 |     TEST_ASSERT(checkFlagSet(OP_ADD(INT_MAX, INT_MAX).second, FlagsMask::SIGNED_OVERFLOW))
      |                              ~~~~~~^~~~~~~~~~~~~~~~~~
/home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/asserts.h:21:22: note: in definition of macro ‘TEST_ASSERT’
   21 |         if(false == (condition)) { \
      |                      ^~~~~~~~~
In file included from /home/dietpi/opencl/VC4C/src/intermediate/IntermediateInstruction.h:13,
                 from /home/dietpi/opencl/VC4C/src/InstructionWalker.h:10,
                 from /home/dietpi/opencl/VC4C/src/BasicBlock.h:13,
                 from /home/dietpi/opencl/VC4C/src/Method.h:10,
                 from /home/dietpi/opencl/VC4C/src/Module.h:11,
                 from /home/dietpi/opencl/VC4C/test/TestInstructions.cpp:16:
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:860:28: note: candidate: ‘vc4c::PrecalculatedValue vc4c::OpCode::operator()(const vc4c::Value&, const vc4c::Optional<vc4c::Value>&) const’
  860 |         PrecalculatedValue operator()(const Value& firstOperand, const Optional<Value>& secondOperand) const;
      |                            ^~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:860:52: note:   no known conversion for argument 1 from ‘int’ to ‘const vc4c::Value&’
  860 |         PrecalculatedValue operator()(const Value& firstOperand, const Optional<Value>& secondOperand) const;
      |                                       ~~~~~~~~~~~~~^~~~~~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:861:28: note: candidate: ‘vc4c::PrecalculatedValue vc4c::OpCode::operator()(vc4c::Literal, vc4c::Literal, vc4c::DataType) const’
  861 |         PrecalculatedValue operator()(Literal firstOperand, Literal secondOperand, DataType resultType) const;
      |                            ^~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:861:28: note:   candidate expects 3 arguments, 2 provided
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:862:29: note: candidate: ‘vc4c::PrecalculatedVector vc4c::OpCode::operator()(const vc4c::SIMDVector&, const vc4c::SIMDVector&) const’
  862 |         PrecalculatedVector operator()(const SIMDVector& firstOperand, const SIMDVector& secondOperand) const;
      |                             ^~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:862:58: note:   no known conversion for argument 1 from ‘int’ to ‘const vc4c::SIMDVector&’
  862 |         PrecalculatedVector operator()(const SIMDVector& firstOperand, const SIMDVector& secondOperand) const;
      |                                        ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:863:30: note: candidate: ‘vc4c::analysis::ValueRange vc4c::OpCode::operator()(const vc4c::analysis::ValueRange&, const vc4c::analysis::ValueRange&) const’
  863 |         analysis::ValueRange operator()(
      |                              ^~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:864:41: note:   no known conversion for argument 1 from ‘int’ to ‘const vc4c::analysis::ValueRange&’
  864 |             const analysis::ValueRange& firstRange, const analysis::ValueRange& secondRange) const;
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:865:27: note: candidate: ‘vc4c::OperationBitMasks vc4c::OpCode::operator()(vc4c::BitMask, vc4c::BitMask) const’
  865 |         OperationBitMasks operator()(BitMask firstMask, BitMask secondMask) const;
      |                           ^~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:865:46: note:   no known conversion for argument 1 from ‘int’ to ‘vc4c::BitMask’
  865 |         OperationBitMasks operator()(BitMask firstMask, BitMask secondMask) const;
      |                                      ~~~~~~~~^~~~~~~~~
/home/dietpi/opencl/VC4C/test/TestInstructions.cpp:980:36: error: no match for call to ‘(const vc4c::OpCode) (int, const vc4c::Value&)’
  980 |     TEST_ASSERT(checkFlagSet(OP_SUB(INT_MAX, INT_MINUS_ONE).second, FlagsMask::SIGNED_OVERFLOW))
      |                              ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/asserts.h:21:22: note: in definition of macro ‘TEST_ASSERT’
   21 |         if(false == (condition)) { \
      |                      ^~~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:860:28: note: candidate: ‘vc4c::PrecalculatedValue vc4c::OpCode::operator()(const vc4c::Value&, const vc4c::Optional<vc4c::Value>&) const’
  860 |         PrecalculatedValue operator()(const Value& firstOperand, const Optional<Value>& secondOperand) const;
      |                            ^~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:860:52: note:   no known conversion for argument 1 from ‘int’ to ‘const vc4c::Value&’
  860 |         PrecalculatedValue operator()(const Value& firstOperand, const Optional<Value>& secondOperand) const;
      |                                       ~~~~~~~~~~~~~^~~~~~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:861:28: note: candidate: ‘vc4c::PrecalculatedValue vc4c::OpCode::operator()(vc4c::Literal, vc4c::Literal, vc4c::DataType) const’
  861 |         PrecalculatedValue operator()(Literal firstOperand, Literal secondOperand, DataType resultType) const;
      |                            ^~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:861:28: note:   candidate expects 3 arguments, 2 provided
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:862:29: note: candidate: ‘vc4c::PrecalculatedVector vc4c::OpCode::operator()(const vc4c::SIMDVector&, const vc4c::SIMDVector&) const’
  862 |         PrecalculatedVector operator()(const SIMDVector& firstOperand, const SIMDVector& secondOperand) const;
      |                             ^~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:862:58: note:   no known conversion for argument 1 from ‘int’ to ‘const vc4c::SIMDVector&’
  862 |         PrecalculatedVector operator()(const SIMDVector& firstOperand, const SIMDVector& secondOperand) const;
      |                                        ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:863:30: note: candidate: ‘vc4c::analysis::ValueRange vc4c::OpCode::operator()(const vc4c::analysis::ValueRange&, const vc4c::analysis::ValueRange&) const’
  863 |         analysis::ValueRange operator()(
      |                              ^~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:864:41: note:   no known conversion for argument 1 from ‘int’ to ‘const vc4c::analysis::ValueRange&’
  864 |             const analysis::ValueRange& firstRange, const analysis::ValueRange& secondRange) const;
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:865:27: note: candidate: ‘vc4c::OperationBitMasks vc4c::OpCode::operator()(vc4c::BitMask, vc4c::BitMask) const’
  865 |         OperationBitMasks operator()(BitMask firstMask, BitMask secondMask) const;
      |                           ^~~~~~~~
/home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:865:46: note:   no known conversion for argument 1 from ‘int’ to ‘vc4c::BitMask’
  865 |         OperationBitMasks operator()(BitMask firstMask, BitMask secondMask) const;
      |                                      ~~~~~~~~^~~~~~~~~
make[2]: *** [test/CMakeFiles/TestVC4C.dir/build.make:188: test/CMakeFiles/TestVC4C.dir/TestInstructions.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:525: test/CMakeFiles/TestVC4C.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

$ git diff

diff --git a/test/TestInstructions.cpp b/test/TestInstructions.cpp
index 75501e8..1329d0a 100644
--- a/test/TestInstructions.cpp
+++ b/test/TestInstructions.cpp
@@ -824,7 +824,7 @@ void TestInstructions::testOpCodeFlags()
         return false;
     };
 
-    auto INT_MAX = Value(Literal(0x7FFFFFFFu), TYPE_INT32);
+    auto INT_MAX2 = Value(Literal(0x7FFFFFFFu), TYPE_INT32);
     auto FLOAT_MINUS_ONE = Value(Literal(-1.0f), TYPE_FLOAT);
 
     TEST_ASSERT(checkFlagClear(OP_ADD(INT_ONE, INT_ONE).second, FlagsMask::ZERO))
@@ -834,7 +834,7 @@ void TestInstructions::testOpCodeFlags()
     TEST_ASSERT(checkFlagSet(OP_ADD(INT_ONE, INT_MINUS_ONE).second, FlagsMask::ZERO))
     TEST_ASSERT(checkFlagSet(OP_ADD(INT_MINUS_ONE, INT_MINUS_ONE).second, FlagsMask::NEGATIVE))
     TEST_ASSERT(checkFlagSet(OP_ADD(INT_MINUS_ONE, INT_MINUS_ONE).second, FlagsMask::CARRY))
-    TEST_ASSERT(checkFlagSet(OP_ADD(INT_MAX, INT_MAX).second, FlagsMask::SIGNED_OVERFLOW))
+    TEST_ASSERT(checkFlagSet(OP_ADD(INT_MAX2, INT_MAX2).second, FlagsMask::SIGNED_OVERFLOW))
 
     TEST_ASSERT(checkFlagClear(OP_AND(INT_ONE, INT_ONE).second, FlagsMask::ZERO))
     TEST_ASSERT(checkFlagClear(OP_AND(INT_ONE, INT_ONE).second, FlagsMask::NEGATIVE))
@@ -977,7 +977,7 @@ void TestInstructions::testOpCodeFlags()
     TEST_ASSERT(checkFlagSet(OP_SUB(INT_ONE, INT_ONE).second, FlagsMask::ZERO))
     TEST_ASSERT(checkFlagSet(OP_SUB(INT_MINUS_ONE, INT_ONE).second, FlagsMask::NEGATIVE))
     TEST_ASSERT(checkFlagClear(OP_SUB(INT_MINUS_ONE, INT_ONE).second, FlagsMask::CARRY))
-    TEST_ASSERT(checkFlagSet(OP_SUB(INT_MAX, INT_MINUS_ONE).second, FlagsMask::SIGNED_OVERFLOW))
+    TEST_ASSERT(checkFlagSet(OP_SUB(INT_MAX2, INT_MINUS_ONE).second, FlagsMask::SIGNED_OVERFLOW))
 
     TEST_ASSERT(checkFlagClear(OP_XOR(INT_ONE, INT_MINUS_ONE).second, FlagsMask::ZERO))
     TEST_ASSERT(checkFlagClear(OP_XOR(INT_ONE, INT_ONE).second, FlagsMask::NEGATIVE))

$ make

[  1%] Performing update step for 'cpplog-project'
From https://github.com/doe300/cpplog
 * branch            HEAD       -> FETCH_HEAD
Already up to date.
[  1%] No patch step for 'cpplog-project'
[  1%] Performing configure step for 'cpplog-project'
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dietpi/opencl/VC4C/build/cpplog/src/cpplog-project-build
[  2%] Performing build step for 'cpplog-project'
[ 50%] Built target cpplog
[100%] Built target cpplog-static
[  3%] Built target cpplog-project-build
[ 48%] Built target VC4CC
[ 48%] Built target GetGitCommit
[ 48%] Building CXX object src/CMakeFiles/VC4C.dir/main.cpp.o
[ 48%] Linking CXX executable vc4c
[ 48%] Built target VC4C
[ 50%] Built target qpu_emulator
[ 88%] Built target TestData
[ 89%] Performing update step for 'cpptest-lite-project'
From https://github.com/doe300/cpptest-lite
 * branch            HEAD       -> FETCH_HEAD
Already up to date.
[ 89%] No patch step for 'cpptest-lite-project'
[ 89%] Performing configure step for 'cpptest-lite-project'
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project-build
[ 90%] Performing build step for 'cpptest-lite-project'
[100%] Built target cpptest-lite
[ 91%] Built target cpptest-lite-project-build
[ 91%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestInstructions.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 92%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestIntrinsics.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 92%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestMathFunctions.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 92%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestOperators.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 93%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestOptimizations.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 93%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestOptimizationSteps.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 94%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestPatternMatching.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 94%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestRegisterFixes.cpp.o
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
[ 95%] Linking CXX executable TestVC4C
/usr/bin/ld: warning: transpose.cl.o: missing .note.GNU-stack section implies executable stack
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
[100%] Built target TestVC4C

$ sudo make install && sudo ldconfig

[  1%] Performing update step for 'cpplog-project'
From https://github.com/doe300/cpplog
 * branch            HEAD       -> FETCH_HEAD
Already up to date.
[  1%] No patch step for 'cpplog-project'
[  1%] Performing configure step for 'cpplog-project'
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dietpi/opencl/VC4C/build/cpplog/src/cpplog-project-build
[  2%] Performing build step for 'cpplog-project'
[ 50%] Built target cpplog
[100%] Built target cpplog-static
[  3%] Built target cpplog-project-build
[ 48%] Built target VC4CC
[ 48%] Built target GetGitCommit
[ 48%] Building CXX object src/CMakeFiles/VC4C.dir/main.cpp.o
[ 48%] Linking CXX executable vc4c
[ 48%] Built target VC4C
[ 50%] Built target qpu_emulator
[ 88%] Built target TestData
[ 89%] Performing update step for 'cpptest-lite-project'
From https://github.com/doe300/cpptest-lite
 * branch            HEAD       -> FETCH_HEAD
Already up to date.
[ 89%] No patch step for 'cpptest-lite-project'
[ 89%] Performing configure step for 'cpptest-lite-project'
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project-build
[ 90%] Performing build step for 'cpptest-lite-project'
[100%] Built target cpptest-lite
[ 91%] Built target cpptest-lite-project-build
[100%] Built target TestVC4C
Install the project...
-- Install configuration: "Debug"
-- Installing: /usr/local/lib/cmake/mpark_variant/mpark_variant-targets.cmake
-- Installing: /usr/local/include/mpark
-- Installing: /usr/local/include/mpark/variant.hpp
-- Installing: /usr/local/include/mpark/lib.hpp
-- Installing: /usr/local/include/mpark/in_place.hpp
-- Installing: /usr/local/include/mpark/config.hpp
-- Installing: /usr/local/lib/cmake/mpark_variant/mpark_variant-config.cmake
-- Installing: /usr/local/lib/cmake/mpark_variant/mpark_variant-config-version.cmake
-- Installing: /usr/local/lib/libVC4CC.so.0.4.9999
-- Installing: /usr/local/lib/libVC4CC.so.1.2
-- Set runtime path of "/usr/local/lib/libVC4CC.so.0.4.9999" to "/usr/local/lib"
-- Installing: /usr/local/lib/libVC4CC.so
-- Installing: /usr/local/bin/vc4c
-- Set runtime path of "/usr/local/bin/vc4c" to "/usr/local/lib"
-- Installing: /usr/local/share/vc4cc/VC4CC-targets.cmake
-- Installing: /usr/local/share/vc4cc/VC4CC-targets-debug.cmake
-- Installing: /usr/local/include/vc4cc
-- Installing: /usr/local/include/vc4cc/CompilationError.h
-- Installing: /usr/local/include/vc4cc/VC4C.h
-- Installing: /usr/local/include/vc4cc/config.h
-- Installing: /usr/local/include/vc4cc/Compiler.h
-- Installing: /usr/local/include/vc4cc/Precompiler.h
-- Installing: /usr/local/include/vc4cc/tools.h
-- Installing: /usr/local/lib/libvc4c_testdata.a
-- Installing: /usr/local/share/vc4cc/TestData-target.cmake
-- Installing: /usr/local/share/vc4cc/TestData-target-debug.cmake
-- Installing: /usr/local/include/vc4cc/TestData.h

参考: VC4C build error (make compile error) · Issue #166 · doe300/VC4C

$ cd ../../VC4CL
$ mkdir build && cd build
$ cmake -DBUILD_ICD=ON ..

-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1") 
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for CL_VERSION_3_0
-- Looking for CL_VERSION_3_0 - found
-- Found OpenCL: /usr/lib/arm-linux-gnueabihf/libOpenCL.so (found version "3.0") 
-- Found headers for OpenCL up to version 3.0 located in /usr/include
-- VC4C library found: /home/dietpi/opencl/VC4C/build/src/libVC4CC.so
-- VC4C compiler header found at: /home/dietpi/opencl/VC4C/include/VC4C.h
-- VC4C test data library found: /home/dietpi/opencl/VC4C/build/test/libvc4c_testdata.a
-- VC4C test data header found: /home/dietpi/opencl/VC4C/build/test/TestData.h
-- Building with ICD support
-- Checking for one of the modules 'ocl-icd>=1.3'
-- Found Khronos ICD Loader in version 2.3.1 in /usr/lib/arm-linux-gnueabihf
-- Looking for clCreateProgramWithIL
-- Looking for clCreateProgramWithIL - found
-- Looking for wsyncup in /usr/lib/arm-linux-gnueabihf/libcurses.so
-- Looking for wsyncup in /usr/lib/arm-linux-gnueabihf/libcurses.so - found
-- Looking for cbreak in /usr/lib/arm-linux-gnueabihf/libncurses.so
-- Looking for cbreak in /usr/lib/arm-linux-gnueabihf/libncurses.so - found
-- Looking for nodelay in /usr/lib/arm-linux-gnueabihf/libncurses.so
-- Looking for nodelay in /usr/lib/arm-linux-gnueabihf/libncurses.so - found
-- Found Curses: /usr/lib/arm-linux-gnueabihf/libncurses.so  
-- vcsm library not found
-- found clang-format: /usr/bin/clang-format
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dietpi/opencl/VC4CL/build

$ make

[  0%] Built target GetGitCommit
[  2%] Generating VC4CL.icd
[  2%] Built target generate_icd
[  5%] Building CXX object src/CMakeFiles/VC4CL.dir/barriers.cpp.o
[  8%] Building CXX object src/CMakeFiles/VC4CL.dir/Buffer.cpp.o
[ 11%] Building CXX object src/CMakeFiles/VC4CL.dir/CommandQueue.cpp.o
[ 14%] Building CXX object src/CMakeFiles/VC4CL.dir/common.cpp.o
[ 17%] Building CXX object src/CMakeFiles/VC4CL.dir/Context.cpp.o
[ 20%] Building CXX object src/CMakeFiles/VC4CL.dir/Device.cpp.o
[ 22%] Building CXX object src/CMakeFiles/VC4CL.dir/Event.cpp.o
[ 25%] Building CXX object src/CMakeFiles/VC4CL.dir/executor.cpp.o
[ 28%] Building CXX object src/CMakeFiles/VC4CL.dir/extensions.cpp.o
[ 31%] Building CXX object src/CMakeFiles/VC4CL.dir/icd_loader.cpp.o
[ 34%] Building CXX object src/CMakeFiles/VC4CL.dir/Image.cpp.o
[ 37%] Building CXX object src/CMakeFiles/VC4CL.dir/Kernel.cpp.o
[ 40%] Building CXX object src/CMakeFiles/VC4CL.dir/Memory.cpp.o
[ 42%] Building CXX object src/CMakeFiles/VC4CL.dir/ObjectTracker.cpp.o
[ 45%] Building CXX object src/CMakeFiles/VC4CL.dir/PerformanceCounter.cpp.o
[ 48%] Building CXX object src/CMakeFiles/VC4CL.dir/Platform.cpp.o
[ 51%] Building CXX object src/CMakeFiles/VC4CL.dir/Program.cpp.o
/home/dietpi/opencl/VC4CL/src/Program.cpp: In function ‘cl_int extractLog(std::string&, std::wstringstream&)’:
/home/dietpi/opencl/VC4CL/src/Program.cpp:69:46: warning: argument 1 is null but the corresponding size argument 3 value is 4294967295 [-Wnonnull]
   69 |     std::size_t numCharacters = std::wcstombs(nullptr, logStream.str().data(), SIZE_MAX);
      |                                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/12/cstdlib:75,
                 from /usr/include/c++/12/ext/string_conversions.h:41,
                 from /usr/include/c++/12/bits/basic_string.h:3960,
                 from /usr/include/c++/12/string:53,
                 from /home/dietpi/opencl/VC4CL/src/vc4cl_config.h:17,
                 from /home/dietpi/opencl/VC4CL/src/icd_loader.h:15,
                 from /home/dietpi/opencl/VC4CL/src/types.h:10,
                 from /home/dietpi/opencl/VC4CL/src/ObjectTracker.h:10,
                 from /home/dietpi/opencl/VC4CL/src/Object.h:10,
                 from /home/dietpi/opencl/VC4CL/src/Device.h:10,
                 from /home/dietpi/opencl/VC4CL/src/Context.h:9,
                 from /home/dietpi/opencl/VC4CL/src/Program.h:11,
                 from /home/dietpi/opencl/VC4CL/src/Program.cpp:7:
/usr/include/stdlib.h:958:15: note: in a call to function ‘size_t wcstombs(char*, const wchar_t*, size_t)’ declared with attribute ‘access (read_only, 2)’
  958 | extern size_t wcstombs (char *__restrict __s,
      |               ^~~~~~~~
/home/dietpi/opencl/VC4CL/src/Program.cpp:69:46: warning: argument 1 is null but the corresponding size argument 3 value is 4294967295 [-Wnonnull]
   69 |     std::size_t numCharacters = std::wcstombs(nullptr, logStream.str().data(), SIZE_MAX);
      |                                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/stdlib.h:958:15: note: in a call to function ‘size_t wcstombs(char*, const wchar_t*, size_t)’ declared with attribute ‘access (read_only, 2)’
  958 | extern size_t wcstombs (char *__restrict __s,
      |               ^~~~~~~~
[ 54%] Building CXX object src/CMakeFiles/VC4CL.dir/queue_handler.cpp.o
[ 57%] Building CXX object src/CMakeFiles/VC4CL.dir/TextureFormat.cpp.o
[ 60%] Building CXX object src/CMakeFiles/VC4CL.dir/unsupported.cpp.o
[ 62%] Building CXX object src/CMakeFiles/VC4CL.dir/shared/BinaryHeader.cpp.o
[ 65%] Building CXX object src/CMakeFiles/VC4CL.dir/hal/emulator.cpp.o
[ 68%] Building CXX object src/CMakeFiles/VC4CL.dir/hal/hal.cpp.o
[ 71%] Building CXX object src/CMakeFiles/VC4CL.dir/hal/Mailbox.cpp.o
[ 74%] Building CXX object src/CMakeFiles/VC4CL.dir/hal/userland.cpp.o
[ 77%] Building CXX object src/CMakeFiles/VC4CL.dir/hal/V3D.cpp.o
[ 80%] Building CXX object src/CMakeFiles/VC4CL.dir/hal/VCHI.cpp.o
[ 82%] Linking CXX shared library libVC4CL.so
[ 82%] Built target VC4CL
[ 85%] Building CXX object tools/CMakeFiles/v3d_info.dir/V3DInfo.cpp.o
[ 88%] Linking CXX executable v3d_info
[ 88%] Built target v3d_info
[ 91%] Building CXX object tools/CMakeFiles/v3d_profile.dir/V3DProfile.cpp.o
/home/dietpi/opencl/VC4CL/tools/V3DProfile.cpp: In function ‘int main(int, char**)’:
/home/dietpi/opencl/VC4CL/tools/V3DProfile.cpp:239:45: warning: conversion from ‘unsigned int’ to ‘uint8_t’ {aka ‘unsigned char’} may change value [-Wconversion]
  239 |             newCounters[i] = v3d.getCounter(i);
      |                                             ^
[ 94%] Linking CXX executable v3d_profile
[ 94%] Built target v3d_profile
[ 97%] Building CXX object tools/CMakeFiles/vc4cl_dump_analyzer.dir/DumpAnalyzer.cpp.o
[100%] Linking CXX executable vc4cl_dump_analyzer
[100%] Built target vc4cl_dump_analyzer

$ sudo make install

[  0%] Built target GetGitCommit
[  2%] Built target generate_icd
[  5%] Building CXX object src/CMakeFiles/VC4CL.dir/common.cpp.o
[  8%] Linking CXX shared library libVC4CL.so
[ 82%] Built target VC4CL
[ 85%] Linking CXX executable v3d_info
[ 88%] Built target v3d_info
[ 91%] Linking CXX executable v3d_profile
[ 94%] Built target v3d_profile
[ 97%] Linking CXX executable vc4cl_dump_analyzer
[100%] Built target vc4cl_dump_analyzer
Install the project...
-- Install configuration: "Debug"
-- Installing: /etc/OpenCL/vendors/VC4CL.icd
-- Installing: /usr/local/lib/libVC4CL.so.0.4.9999
-- Installing: /usr/local/lib/libVC4CL.so.1.2
-- Set runtime path of "/usr/local/lib/libVC4CL.so.0.4.9999" to "/usr/local/lib"
-- Installing: /usr/local/lib/libVC4CL.so
-- Installing: /usr/local/share/vc4cl/VC4CL-targets.cmake
-- Installing: /usr/local/share/vc4cl/VC4CL-targets-debug.cmake
-- Installing: /usr/local/bin/v3d_info
-- Set runtime path of "/usr/local/bin/v3d_info" to "/usr/local/lib"
-- Installing: /usr/local/bin/v3d_profile
-- Set runtime path of "/usr/local/bin/v3d_profile" to "/usr/local/lib"
-- Installing: /usr/local/bin/vc4cl_dump_analyzer
-- Set runtime path of "/usr/local/bin/vc4cl_dump_analyzer" to "/usr/local/lib"

Raspbian GNU/Linux 12 (bookworm) armv6l
Raspberry Pi Zero W Rev 1.1

$ neofetch

  `.::///+:/-.        --///+//-:``    dietpi@dietpi-001 
 `+oooooooooooo:   `+oooooooooooo:    ----------------- 
  /oooo++//ooooo:  ooooo+//+ooooo.    OS: Raspbian GNU/Linux 12 (bookworm) armv6l 
  `+ooooooo:-:oo-  +o+::/ooooooo:     Host: Raspberry Pi Zero W Rev 1.1 
   `:oooooooo+``    `.oooooooo+-      Kernel: 6.1.21+ 
     `:++ooo/.        :+ooo+/.`       Uptime: 4 days, 1 hour, 16 mins 
        ...`  `.----.` ``..           Packages: 1628 (dpkg) 
     .::::-``:::::::::.`-:::-`        Shell: zsh 5.9 
    -:::-`   .:::::::-`  `-:::-       Terminal: /dev/pts/2 
   `::.  `.--.`  `` `.---.``.::`      CPU: BCM2835 (1) @ 1.100GHz 
       .::::::::`  -::::::::` `       Memory: 68MiB / 429MiB 
 .::` .:::::::::- `::::::::::``::.
-:::` ::::::::::.  ::::::::::.`:::-                           
::::  -::::::::.   `-::::::::  ::::                           
-::-   .-:::-.``....``.-::-.   -::-
 .. ``       .::::::::.     `..`..
   -:::-`   -::::::::::`  .:::::`
   :::::::` -::::::::::` :::::::.
   .:::::::  -::::::::. ::::::::
    `-:::::`   ..--.`   ::::::.
      `...`  `...--..`  `...`
            .::::::::::
             `.-::::-`

$ sudo clinfo

Number of platforms                               1
  Platform Name                                   OpenCL for the Raspberry Pi VideoCore IV GPU
  Platform Vendor                                 doe300
  Platform Version                                OpenCL 1.2 VC4CL 0.4.9999 (b5a6097)
  Platform Profile                                EMBEDDED_PROFILE
  Platform Extensions                             cl_khr_il_program cl_khr_spir cl_khr_create_command_queue cl_altera_device_temperature cl_altera_live_object_tracking cl_khr_icd cl_khr_extended_versioning cl_khr_spirv_no_integer_wrap_decoration cl_khr_suggested_local_work_size cl_vc4cl_performance_counters
  Platform Extensions function suffix             VC4CL

  Platform Name                                   OpenCL for the Raspberry Pi VideoCore IV GPU
Number of devices                                 1
  Device Name                                     VideoCore IV GPU
  Device Vendor                                   Broadcom
  Device Vendor ID                                0x14e4
  Device Version                                  OpenCL 1.2 VC4CL 0.4.9999 (b5a6097)
  Device Numeric Version                          0x402000 (1.2.0)
  Driver Version                                  0.4.9999
  Device OpenCL C Version                         OpenCL C 1.2 
  Device OpenCL C Numeric Version                 0x402000 (1.2.0)
  Device Type                                     GPU
  Device Profile                                  EMBEDDED_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Linker Available                                Yes
  Max compute units                               1
  Available core IDs (ARM)                        0
  Max clock frequency                             300MHz
  Core Temperature (Altera)                       42 C
  Device Partition                                (core)
    Max number of sub-devices                     0
    Supported partition types                     None
    Supported affinity domains                    (n/a)
  Max work item dimensions                        3
  Max work item sizes                             12x12x12
  Max work group size                             12
  Preferred work group size multiple (kernel)     1
  Preferred / native vector sizes                 
    char                                                16 / 16      
    short                                               16 / 16      
    int                                                 16 / 16      
    long                                                 0 / 0       
    half                                                 0 / 0        (n/a)
    float                                               16 / 16      
    double                                               0 / 0        (n/a)
  Half-precision Floating-point support           (n/a)
  Single-precision Floating-point support         (core)
    Denormals                                     No
    Infinity and NANs                             No
    Round to nearest                              No
    Round to zero                                 Yes
    Round to infinity                             No
    IEEE754-2008 fused multiply-add               No
    Support is emulated in software               No
    Correctly-rounded divide and sqrt operations  No
  Double-precision Floating-point support         (n/a)
  Address bits                                    32, Little-Endian
  Global memory size                              67108864 (64MiB)
  Error Correction support                        No
  Max memory allocation                           33554432 (32MiB)
  Unified memory for Host and Device              Yes
  Minimum alignment for any data type             64 bytes
  Alignment of base address                       512 bits (64 bytes)
  Global Memory cache type                        Read/Write
  Global Memory cache size                        32768 (32KiB)
  Global Memory cache line size                   64 bytes
  Image support                                   No
  Local memory type                               Global
  Local memory size                               67108864 (64MiB)
  Max number of constant args                     32
  Max constant buffer size                        67108864 (64MiB)
  Max size of kernel argument                     256
  Queue properties                                
    Out-of-order execution                        No
    Profiling                                     Yes
  Prefer user sync for interop                    Yes
  Profiling timer resolution                      1ns
  Execution capabilities                          
    Run OpenCL kernels                            Yes
    Run native kernels                            No
    IL version                                    SPIR-V_1.5 SPIR_1.2
    ILs with version                              SPIR                                                             0x402000 (1.2.0)
                                                  SPIR-V                                                           0x405000 (1.5.0)
    SPIR versions                                 1.2
  printf() buffer size                            0
  Built-in kernels                                (n/a)
  Built-in kernels with version                   (n/a)
  Device Extensions                               cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_nv_pragma_unroll cl_arm_core_id cl_ext_atomic_counters_32 cl_khr_initialize_memory cl_arm_integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_int16 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_khr_expect_assume cl_khr_il_program cl_khr_spir cl_khr_create_command_queue cl_altera_device_temperature cl_altera_live_object_tracking cl_khr_icd cl_khr_extended_versioning cl_khr_spirv_no_integer_wrap_decoration cl_khr_suggested_local_work_size cl_vc4cl_performance_counters
  Device Extensions with Version                  cl_khr_global_int32_base_atomics                                 0x400000 (1.0.0)
                                                  cl_khr_global_int32_extended_atomics                             0x400000 (1.0.0)
                                                  cl_khr_local_int32_base_atomics                                  0x400000 (1.0.0)
                                                  cl_khr_local_int32_extended_atomics                              0x400000 (1.0.0)
                                                  cl_khr_byte_addressable_store                                    0x400000 (1.0.0)
                                                  cl_nv_pragma_unroll                                                     0 (0.0.0)
                                                  cl_arm_core_id                                                   0x800000 (2.0.0)
                                                  cl_ext_atomic_counters_32                                        0x1400000 (5.0.0)
                                                  cl_khr_initialize_memory                                         0x400000 (1.0.0)
                                                  cl_arm_integer_dot_product_int8                                  0xc00000 (3.0.0)
                                                  cl_arm_integer_dot_product_accumulate_int8                       0xc00000 (3.0.0)
                                                  cl_arm_integer_dot_product_accumulate_int16                      0xc00000 (3.0.0)
                                                  cl_arm_integer_dot_product_accumulate_saturate_int8              0xc00000 (3.0.0)
                                                  cl_khr_expect_assume                                             0x400000 (1.0.0)
                                                  cl_khr_il_program                                                0x400000 (1.0.0)
                                                  cl_khr_spir                                                      0x400000 (1.0.0)
                                                  cl_khr_create_command_queue                                      0x400000 (1.0.0)
                                                  cl_altera_device_temperature                                            0 (0.0.0)
                                                  cl_altera_live_object_tracking                                          0 (0.0.0)
                                                  cl_khr_icd                                                       0x400000 (1.0.0)
                                                  cl_khr_extended_versioning                                       0x400000 (1.0.0)
                                                  cl_khr_spirv_no_integer_wrap_decoration                                 0 (0.0.0)
                                                  cl_khr_suggested_local_work_size                                 0x400000 (1.0.0)
                                                  cl_vc4cl_performance_counters                                           0 (0.0.0)

NULL platform behavior
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  OpenCL for the Raspberry Pi VideoCore IV GPU
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   Success [VC4CL]
  clCreateContext(NULL, ...) [default]            Success [VC4CL]
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  Success (1)
    Platform Name                                 OpenCL for the Raspberry Pi VideoCore IV GPU
    Device Name                                   VideoCore IV GPU
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  Success (1)
    Platform Name                                 OpenCL for the Raspberry Pi VideoCore IV GPU
    Device Name                                   VideoCore IV GPU
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  Success (1)
    Platform Name                                 OpenCL for the Raspberry Pi VideoCore IV GPU
    Device Name                                   VideoCore IV GPU

ICD loader properties
  ICD loader Name                                 OpenCL ICD Loader
  ICD loader Vendor                               OCL Icd free software
  ICD loader Version                              2.3.1
  ICD loader Profile                              OpenCL 3.0

つづく…🤪

$ ll /dev/vcio
$ ll /dev/vchiq
$ ll /dev/mem

  • hardware/raspberry_pi/dietpi/opencl_on_videocore_iv_gpu.txt
  • 最終更新: 2024/04/26 07:30
  • by ともやん