You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
llvmpasses: force vector width for compatibility with non-x86 hosts. (JuliaLang#56300)
The pipeline-prints test currently fails when running on an
aarch64-macos device:
```
/Users/tim/Julia/src/julia/test/llvmpasses/pipeline-prints.ll:309:23: error: AFTERVECTORIZATION: expected string not found in input
; AFTERVECTORIZATION: vector.body
^
<stdin>:2:40: note: scanning from here
; *** IR Dump Before AfterVectorizationMarkerPass on julia_f_199 ***
^
<stdin>:47:27: note: possible intended match here
; *** IR Dump Before AfterVectorizationMarkerPass on jfptr_f_200 ***
^
Input file: <stdin>
Check file: /Users/tim/Julia/src/julia/test/llvmpasses/pipeline-prints.ll
-dump-input=help explains the following input dump.
Input was:
<<<<<<
1: opt: WARNING: failed to create target machine for 'x86_64-unknown-linux-gnu': unable to get target for 'x86_64-unknown-linux-gnu', see --version and --triple.
2: ; *** IR Dump Before AfterVectorizationMarkerPass on julia_f_199 ***
check:309'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
3: define i64 @julia_f_199(ptr addrspace(10) noundef nonnull align 16 dereferenceable(40) %0) #0 !dbg !4 {
check:309'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4: top:
check:309'0 ~~~~~
5: %1 = call ptr @julia.get_pgcstack()
check:309'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6: %ptls_field = getelementptr inbounds ptr, ptr %1, i64 2
check:309'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7: %ptls_load45 = load ptr, ptr %ptls_field, align 8, !tbaa !8
check:309'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.
.
.
42:
check:309'0 ~
43: L41: ; preds = %L41.loopexit, %L17, %top
check:309'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44: %value_phi10 = phi i64 [ 0, %top ], [ %7, %L17 ], [ %.lcssa, %L41.loopexit ]
check:309'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45: ret i64 %value_phi10, !dbg !52
check:309'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46: }
check:309'0 ~~
47: ; *** IR Dump Before AfterVectorizationMarkerPass on jfptr_f_200 ***
check:309'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:309'1 ? possible intended match
48: ; Function Attrs: noinline optnone
check:309'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
49: define nonnull ptr addrspace(10) @jfptr_f_200(ptr addrspace(10) %0, ptr noalias nocapture noundef readonly %1, i32 %2) #1 {
check:309'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
50: top:
check:309'0 ~~~~~
51: %3 = call ptr @julia.get_pgcstack()
check:309'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52: %4 = getelementptr inbounds ptr addrspace(10), ptr %1, i32 0
check:309'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.
.
.
>>>>>>
--
********************
Failed Tests (1):
Julia :: pipeline-prints.ll
```
The problem is that these tests assume x86_64, which fails because the
target isn't available, so it presumably uses the native target which
has different vectorization characteristics:
```
❯ ./usr/tools/opt --load-pass-plugin=libjulia-codegen.dylib -passes='julia' --print-before=AfterVectorization -o /dev/null ../../test/llvmpasses/pipeline-prints.ll
./usr/tools/opt: WARNING: failed to create target machine for 'x86_64-unknown-linux-gnu': unable to get target for 'x86_64-unknown-linux-gnu', see --version and --triple.
```
There's other tests that assume this (e.g. the `fma` cpufeatures one),
but they don't fail, so I've left them as is.
0 commit comments