[LLVMdev] use AVX automatically if present

Hal Finkel hfinkel at anl.gov
Thu May 24 15:10:51 PDT 2012


Henning,

I believe the code that is supposed to do this is in:
lib/Target/X86/X86Subtarget.cpp in
X86Subtarget::AutoDetectSubtargetFeatures()
Is there a bug in that function?

 -Hal

On Thu, 24 May 2012 23:56:48 +0200 (CEST)
Henning Thielemann <llvm at henning-thielemann.de> wrote:

> 
> On Thu, 24 May 2012, Pan, Wei wrote:
> 
> > Very likely AVX is not enabled in your llc. This feature was
> > enabled just recently (late of April).
> 
> I forgot to mention that I am using recent LLVM-3.1 and in principle
> my llc knows about avx as I have shown in the second example. But avx
> does not seem to be used by default.
> 
> 
> On Thu, 24 May 2012, Henning Thielemann wrote:
> 
> > $ llc -o - -mattr avx avx.ll
> >        .file   "avx.ll"
> >        .text
> >        .globl  _fun1
> >        .align  16, 0x90
> >        .type   _fun1, at function
> > _fun1:                                  # @_fun1
> >        .cfi_startproc
> > # BB#0:                                 # %_L1
> >        pushq   %rbp
> > .Ltmp2:
> >        .cfi_def_cfa_offset 16
> > .Ltmp3:
> >        .cfi_offset %rbp, -16
> >        movq    %rsp, %rbp
> > .Ltmp4:
> >        .cfi_def_cfa_register %rbp
> >        vmovaps (%rdi), %ymm0
> >        vaddps  (%rsi), %ymm0, %ymm0
> >        vmovaps %ymm0, (%rdi)
> >        popq    %rbp
> >        vzeroupper
> >        ret
> > .Ltmp5:
> >        .size   _fun1, .Ltmp5-_fun1
> >        .cfi_endproc
> >
> >
> >        .section        ".note.GNU-stack","", at progbits
> >
> >
> >
> >
> > I guess your answer is that I did not specify a target triple.
> > However why is SSE41 automatically detected and AVX is not?
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev



-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-dev mailing list