blob: 4c3a370bc047c2731ce295585eef523fa81bb72f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
id = 1536
title = "Test programs that use the vextractbm, vextracthm, vextractwm, or vextractdm instructions fail on qemu-ppc64 (but not qemu-ppc64le)"
state = "closed"
created_at = "2023-03-07T18:45:48.516Z"
closed_at = "2023-05-06T07:10:19.487Z"
labels = ["accel: TCG", "target: ppc"]
url = "https://gitlab.com/qemu-project/qemu/-/issues/1536"
host-os = "Ubuntu 22.04"
host-arch = "x86_64"
qemu-version = "7.2.0"
guest-os = "Ubuntu 22.04"
guest-arch = "ppc64"
description = """Some of the test programs that use the vextractbm, vextracthm, vextractwm, or vextractdm instructions fail on qemu-ppc64 (but not qemu-ppc64le)."""
reproduce = """1. Download the vsx_mask_extract_runnable_test_030723.c test program from https://gist.githubusercontent.com/johnplatts/db0e9f6683e85e9288fde5c031b3c0e5/raw/ccfb8170f3e613398750830451eebb362875493d/vsx_mask_extract_runnable_test_030723.c.
2. Install the ppc64 gcc cross-compiler and required libraries, which can be done using the ```sudo apt install build-essential gdb-multiarch g++-12-powerpc64-linux-gnu binutils-powerpc64-linux-gnu binutils-powerpc64-linux-gnu-dbg libc6-ppc64-cross libstdc++6-ppc64-cross``` command on Ubuntu 22.04.
3. Compile the vsx_mask_extract_runnable_test_030723.c test program downloaded in step 1 using the ```powerpc64-linux-gnu-gcc-12``` cross-compiler with the ```-mcpu=power10``` option.
4. Execute the program compiled in step 3 using the ```QEMU_LD_PREFIX=/usr/powerpc64-linux-gnu qemu-ppc64 -cpu power10 ./vsx_mask_extract_runnable_test_030723``` command.
The issue can also be reproduced by compiling Google Highway and running its unit tests as follows:
1. Clone the Google Highway git repository by running the ```git clone https://github.com/google/highway.git google_highway``` command.
2. Create a ```hwy_ppcbe10_build``` directory inside of the ```google_highway``` directory created in step #1.
3. In the ```hwy_ppc10be_build``` directory created in the previous step, execute the following commands:
- ```CC=powerpc64-linux-gnu-gcc-12 CXX=powerpc64-linux-gnu-g++-12 cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER_TARGET="powerpc64-linux-gnu" -DCMAKE_CXX_COMPILER_TARGET="powerpc64-linux-gnu" -DCMAKE_CROSSCOMPILING=true -DCMAKE_CROSSCOMPILING_EMULATOR='/usr/local/bin/qemu-ppc64;-cpu;power10' -DCMAKE_C_FLAGS='-mcpu=power10 -DHWY_DISABLED_TARGETS=6918373452571213824' -DCMAKE_CXX_FLAGS='-mcpu=power10 -DHWY_DISABLED_TARGETS=6918373452571213824'```
- ```QEMU_LD_PREFIX=/usr/powerpc64-linux-gnu make```
- ```QEMU_LD_PREFIX=/usr/powerpc64-linux-gnu ctest -j```"""
additional = "n/a"
|