Closed
Description
On master I get
julia> @fastmath maximum(Float16[1,2,3]; init = Float16(0))
LLVM ERROR: Cannot select: 0xe31218: v16f16 = X86ISD::FMAX nnan ninf nsz arcp contract afn reassoc 0xe4a4b0, 0xe1ddc8, array.jl:938 @[ reduce.jl:60 @[ reduce.jl:48 @[ reduce.jl:44 @[ reducedim.jl:362 @[ reducedim.jl:357 @[ reducedim.jl:357 @[ reducedim.jl:406 @[ reducedim.jl:406 @[ fastmath.jl:380 @[ fastmath.jl:380 ] ] ] ] ] ] ] ] ] ]
0xe4a4b0: v16f16,ch = CopyFromReg 0x91a8d8, Register:v16f16 %10, array.jl:938 @[ reduce.jl:60 @[ reduce.jl:48 @[ reduce.jl:44 @[ reducedim.jl:362 @[ reducedim.jl:357 @[ reducedim.jl:357 @[ reducedim.jl:406 @[ reducedim.jl:406 @[ fastmath.jl:380 @[ fastmath.jl:380 ] ] ] ] ] ] ] ] ] ]
0xe28c10: v16f16 = Register %10
0xe1ddc8: v16f16,ch = CopyFromReg 0x91a8d8, Register:v16f16 %11, array.jl:938 @[ reduce.jl:60 @[ reduce.jl:48 @[ reduce.jl:44 @[ reducedim.jl:362 @[ reducedim.jl:357 @[ reducedim.jl:357 @[ reducedim.jl:406 @[ reducedim.jl:406 @[ fastmath.jl:380 @[ fastmath.jl:380 ] ] ] ] ] ] ] ] ] ]
0xe1e0a0: v16f16 = Register %11
In function: julia_maximum_fast_16
Complete output
julia> @fastmath maximum(Float16[1,2,3]; init = Float16(0))
LLVM ERROR: Cannot select: 0x258e0d8: v16f16 = X86ISD::FMAX nnan ninf nsz arcp contract afn reassoc 0x25a7370, 0x2572848, array.jl:938 @[ reduce.jl:60 @[ reduce.jl:48 @[ reduce.jl:44 @[ reducedim.jl:362 @[ reducedim.jl:357 @[ reducedim.jl:357 @[ reducedim.jl:406 @[ reducedim.jl:406 @[ fastmath.jl:380 @[ fastmath.jl:380 ] ] ] ] ] ] ] ] ] ]
0x25a7370: v16f16,ch = CopyFromReg 0x205e688, Register:v16f16 %10, array.jl:938 @[ reduce.jl:60 @[ reduce.jl:48 @[ reduce.jl:44 @[ reducedim.jl:362 @[ reducedim.jl:357 @[ reducedim.jl:357 @[ reducedim.jl:406 @[ reducedim.jl:406 @[ fastmath.jl:380 @[ fastmath.jl:380 ] ] ] ] ] ] ] ] ] ]
0x2587730: v16f16 = Register %10
0x2572848: v16f16,ch = CopyFromReg 0x205e688, Register:v16f16 %11, array.jl:938 @[ reduce.jl:60 @[ reduce.jl:48 @[ reduce.jl:44 @[ reducedim.jl:362 @[ reducedim.jl:357 @[ reducedim.jl:357 @[ reducedim.jl:406 @[ reducedim.jl:406 @[ fastmath.jl:380 @[ fastmath.jl:380 ] ] ] ] ] ] ] ] ] ]
0x2572b20: v16f16 = Register %11
In function: julia_maximum_fast_19
[92681] signal (6.-6): Aborted
in expression starting at REPL[1]:1
gsignal at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_ZN4llvm18report_fatal_errorERKNS_5TwineEb at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm16SelectionDAGISel15CannotYetSelectEPNS_6SDNodeE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm16SelectionDAGISel16SelectCodeCommonEPNS_6SDNodeEPKhj at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN12_GLOBAL__N_115X86DAGToDAGISel6SelectEPN4llvm6SDNodeE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm16SelectionDAGISel22DoInstructionSelectionEv at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm16SelectionDAGISel17CodeGenAndEmitDAGEv at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm16SelectionDAGISel20SelectAllBasicBlocksERKNS_8FunctionE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm16SelectionDAGISel20runOnMachineFunctionERNS_15MachineFunctionE.part.950 at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN12_GLOBAL__N_115X86DAGToDAGISel20runOnMachineFunctionERN4llvm15MachineFunctionE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm19MachineFunctionPass13runOnFunctionERNS_8FunctionE.part.68 at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm3orc14SimpleCompilerclERNS_6ModuleE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
operator() at /cache/build/default-amdci4-2/julialang/julia-master/src/jitlayers.cpp:1272
_ZN4llvm3orc14IRCompileLayer4emitESt10unique_ptrINS0_29MaterializationResponsibilityESt14default_deleteIS3_EENS0_16ThreadSafeModuleE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm3orc16IRTransformLayer4emitESt10unique_ptrINS0_29MaterializationResponsibilityESt14default_deleteIS3_EENS0_16ThreadSafeModuleE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
emit at /cache/build/default-amdci4-2/julialang/julia-master/src/jitlayers.cpp:690
_ZN4llvm3orc31BasicIRLayerMaterializationUnit11materializeESt10unique_ptrINS0_29MaterializationResponsibilityESt14default_deleteIS3_EE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm3orc19MaterializationTask3runEv at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm6detail18UniqueFunctionBaseIvJSt10unique_ptrINS_3orc4TaskESt14default_deleteIS4_EEEE8CallImplIPFvS7_EEEvPvRS7_ at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession22dispatchOutstandingMUsEv at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession17OL_completeLookupESt10unique_ptrINS0_21InProgressLookupStateESt14default_deleteIS3_EESt10shared_ptrINS0_23AsynchronousSymbolQueryEESt8functionIFvRKNS_8DenseMapIPNS0_8JITDylibENS_8DenseSetINS0_15SymbolStringPtrENS_12DenseMapInfoISF_vEEEENSG_ISD_vEENS_6detail12DenseMapPairISD_SI_EEEEEE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm3orc25InProgressFullLookupState8completeESt10unique_ptrINS0_21InProgressLookupStateESt14default_deleteIS3_EE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession19OL_applyQueryPhase1ESt10unique_ptrINS0_21InProgressLookupStateESt14default_deleteIS3_EENS_5ErrorE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupENS0_10LookupKindERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS8_EENS0_15SymbolLookupSetENS0_11SymbolStateENS_15unique_functionIFvNS_8ExpectedINS_8DenseMapINS0_15SymbolStringPtrENS_18JITEvaluatedSymbolENS_12DenseMapInfoISI_vEENS_6detail12DenseMapPairISI_SJ_EEEEEEEEESt8functionIFvRKNSH_IS6_NS_8DenseSetISI_SL_EENSK_IS6_vEENSN_IS6_SV_EEEEEE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS7_EENS0_15SymbolLookupSetENS0_10LookupKindENS0_11SymbolStateESt8functionIFvRKNS_8DenseMapIS5_NS_8DenseSetINS0_15SymbolStringPtrENS_12DenseMapInfoISI_vEEEENSJ_IS5_vEENS_6detail12DenseMapPairIS5_SL_EEEEEE at /tmp/julia-d2f5bbd7cf/bin/../lib/julia/libLLVM-15jl.so (unknown line)
addModule at /cache/build/default-amdci4-2/julialang/julia-master/src/jitlayers.cpp:1491
jl_add_to_ee at /cache/build/default-amdci4-2/julialang/julia-master/src/jitlayers.cpp:1896
_jl_compile_codeinst at /cache/build/default-amdci4-2/julialang/julia-master/src/jitlayers.cpp:243
jl_generate_fptr_impl at /cache/build/default-amdci4-2/julialang/julia-master/src/jitlayers.cpp:493
jl_compile_method_internal at /cache/build/default-amdci4-2/julialang/julia-master/src/gf.c:2475 [inlined]
jl_compile_method_internal at /cache/build/default-amdci4-2/julialang/julia-master/src/gf.c:2364
_jl_invoke at /cache/build/default-amdci4-2/julialang/julia-master/src/gf.c:2880 [inlined]
ijl_apply_generic at /cache/build/default-amdci4-2/julialang/julia-master/src/gf.c:3070
jl_apply at /cache/build/default-amdci4-2/julialang/julia-master/src/julia.h:1961 [inlined]
do_call at /cache/build/default-amdci4-2/julialang/julia-master/src/interpreter.c:125
eval_value at /cache/build/default-amdci4-2/julialang/julia-master/src/interpreter.c:222
eval_stmt_value at /cache/build/default-amdci4-2/julialang/julia-master/src/interpreter.c:173 [inlined]
eval_body at /cache/build/default-amdci4-2/julialang/julia-master/src/interpreter.c:602
jl_interpret_toplevel_thunk at /cache/build/default-amdci4-2/julialang/julia-master/src/interpreter.c:760
jl_toplevel_eval_flex at /cache/build/default-amdci4-2/julialang/julia-master/src/toplevel.c:911
jl_toplevel_eval_flex at /cache/build/default-amdci4-2/julialang/julia-master/src/toplevel.c:854
ijl_toplevel_eval_in at /cache/build/default-amdci4-2/julialang/julia-master/src/toplevel.c:970
eval at ./boot.jl:383 [inlined]
eval_user_input at /cache/build/default-amdci4-2/julialang/julia-master/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:150
repl_backend_loop at /cache/build/default-amdci4-2/julialang/julia-master/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:246
#start_repl_backend#46 at /cache/build/default-amdci4-2/julialang/julia-master/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:231
start_repl_backend at /cache/build/default-amdci4-2/julialang/julia-master/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:228
_jl_invoke at /cache/build/default-amdci4-2/julialang/julia-master/src/gf.c:2888 [inlined]
ijl_apply_generic at /cache/build/default-amdci4-2/julialang/julia-master/src/gf.c:3070
#run_repl#59 at /cache/build/default-amdci4-2/julialang/julia-master/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:376
run_repl at /cache/build/default-amdci4-2/julialang/julia-master/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:362
jfptr_run_repl_89532.1 at /tmp/julia-d2f5bbd7cf/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/default-amdci4-2/julialang/julia-master/src/gf.c:2888 [inlined]
ijl_apply_generic at /cache/build/default-amdci4-2/julialang/julia-master/src/gf.c:3070
#997 at ./client.jl:421
jfptr_YY.997_82669.1 at /tmp/julia-d2f5bbd7cf/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/default-amdci4-2/julialang/julia-master/src/gf.c:2888 [inlined]
ijl_apply_generic at /cache/build/default-amdci4-2/julialang/julia-master/src/gf.c:3070
jl_apply at /cache/build/default-amdci4-2/julialang/julia-master/src/julia.h:1961 [inlined]
jl_f__call_latest at /cache/build/default-amdci4-2/julialang/julia-master/src/builtins.c:812
#invokelatest#2 at ./essentials.jl:863 [inlined]
invokelatest at ./essentials.jl:860 [inlined]
run_main_repl at ./client.jl:405
exec_options at ./client.jl:322
_start at ./client.jl:541
jfptr__start_82698.1 at /tmp/julia-d2f5bbd7cf/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/default-amdci4-2/julialang/julia-master/src/gf.c:2888 [inlined]
ijl_apply_generic at /cache/build/default-amdci4-2/julialang/julia-master/src/gf.c:3070
jl_apply at /cache/build/default-amdci4-2/julialang/julia-master/src/julia.h:1961 [inlined]
true_main at /cache/build/default-amdci4-2/julialang/julia-master/src/jlapi.c:582
jl_repl_entrypoint at /cache/build/default-amdci4-2/julialang/julia-master/src/jlapi.c:734
main at /cache/build/default-amdci4-2/julialang/julia-master/cli/loader_exe.c:58
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x401098)
Allocations: 2832 (Pool: 2823; Big: 9); GC: 0
Aborted (core dumped)
It works fine with Julia 1.9.0. Float32
and Float64
don't seem to be affected, and without @fastmath
it also works for Float16
.
Julia Version 1.10.0-DEV.1347
Commit d2f5bbd7cfb (2023-05-20 10:45 UTC)
Platform Info:
OS: Linux (x86_64-linux-gnu)
CPU: 4 × Intel(R) Core(TM) i3-10110U CPU @ 2.10GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-15.0.7 (ORCJIT, skylake)
Threads: 1 on 4 virtual cores