Skip to content

FMA regression on windows on master (CPU:9600KF) #43386

@N5N3

Description

@N5N3

The detection seems incorrect? (I think 9600KF has native FMA support?)
On 1.7.0

julia> versioninfo()
Julia Version 1.7.0
Commit 3bf9d17731 (2021-11-30 12:12 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i5-9600KF CPU @ 3.70GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake)
Environment:
  JULIA_CUDA_VERSION = 11.4.0

julia> @code_native fma(1.0,1.0,1.0)
        .text
; ┌ @ floatfuncs.jl:347 within `fma`
        pushq   %rbp
        movq    %rsp, %rbp
; │┌ @ floatfuncs.jl:336 within `fma_llvm`
        vfmadd213sd     %xmm2, %xmm1, %xmm0     # xmm0 = (xmm1 * xmm0) + xmm2
; │└
        popq    %rbp
        retq
        nopl    (%rax,%rax)

on master

julia> versioninfo()
Julia Version 1.8.0-DEV.1090
Commit d16f4806e9 (2021-12-01 10:54 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i5-9600KF CPU @ 3.70GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake)
Environment:
  JULIA_CUDA_VERSION = 11.4.0

julia> @code_native fma(1.0,1.0,1.0)
        .text
        .file   "fma"
        .globl  julia_fma_552                   # -- Begin function julia_fma_552
        .p2align        4, 0x90
        .type   julia_fma_552,@function
julia_fma_552:                          # @julia_fma_552
; ┌ @ floatfuncs.jl:416 within `fma`
        .cfi_startproc
# %bb.0:                                # %L5
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset %rbp, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register %rbp
        subq    $32, %rsp
        movabsq $j_fma_emulated_554, %rax
        callq   *%rax
        addq    $32, %rsp
        popq    %rbp
        retq
.Lfunc_end0:
        .size   julia_fma_552, .Lfunc_end0-julia_fma_552
        .cfi_endproc
; └
                                        # -- End function
        .section        ".note.GNU-stack","",@progbits

Metadata

Metadata

Assignees

No one assigned

    Labels

    system:windowsAffects only WindowsupstreamThe issue is with an upstream dependency, e.g. LLVM

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions