[LLVMdev] use AVX automatically if present

Pan, Wei wei.pan at intel.com
Fri May 25 05:54:24 PDT 2012


llc built from the current trunk generates avx code as you expected. I tested that. Avx in llvm3.1 is not enabled by default.

-----Original Message-----
From: Henning Thielemann [mailto:llvm at henning-thielemann.de] 
Sent: Thursday, May 24, 2012 5:57 PM
To: Pan, Wei
Cc: LLVM developer mailing list
Subject: Re: use AVX automatically if present


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?




More information about the llvm-dev mailing list