<div dir="ltr">Hopefully fixed in r232927.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 19, 2015 at 7:53 AM, Steven Noonan <span dir="ltr"><<a href="mailto:steven@uplinklabs.net" target="_blank">steven@uplinklabs.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Seems that -march=native doesn't want to detect I'm on a Broadwell host.<br>
<br>
$ clang -v<br>
clang version 3.6.0 (tags/RELEASE_360/final)<br>
Target: x86_64-unknown-linux-gnu<br>
Thread model: posix<br>
<br>
$ cat rsqrt.c<br>
#include <math.h><br>
<br>
float rsqrtf(float f)<br>
{<br>
       return 1.0f / sqrtf(f);<br>
}<br>
<br>
<br>
march=native, note non-VEX encoded SSE instructions:<br>
<br>
$ clang -O3 -march=native -S -o - rsqrt.c | showasm<br>
.LCPI0_0:<br>
rsqrtf:                                 # @rsqrtf<br>
       pushq   %rax<br>
.Ltmp0:<br>
       movaps  %xmm0, %xmm1<br>
       xorps   %xmm0, %xmm0<br>
       sqrtss  %xmm1, %xmm0<br>
       ucomiss %xmm0, %xmm0<br>
       jnp     .LBB0_2<br>
       movaps  %xmm1, %xmm0<br>
       callq   sqrtf<br>
.LBB0_2:                                # %.split<br>
       movss   .LCPI0_0(%rip), %xmm1<br>
       divss   %xmm0, %xmm1<br>
       movaps  %xmm1, %xmm0<br>
       popq    %rax<br>
       retq<br>
.Ltmp1:<br>
<br>
<br>
march=broadwell, note use of VEX encoded instructions:<br>
<br>
$ clang -O3 -march=broadwell -S -o - rsqrt.c | showasm<br>
.LCPI0_0:<br>
rsqrtf:                                 # @rsqrtf<br>
       pushq   %rax<br>
.Ltmp0:<br>
       vmovaps %xmm0, %xmm1<br>
       vxorps  %xmm0, %xmm0, %xmm0<br>
       vsqrtss %xmm1, %xmm0, %xmm0<br>
       vucomiss        %xmm0, %xmm0<br>
       jnp     .LBB0_2<br>
       vmovaps %xmm1, %xmm0<br>
       callq   sqrtf<br>
.LBB0_2:                                # %.split<br>
       vmovss  .LCPI0_0(%rip), %xmm1<br>
       vdivss  %xmm0, %xmm1, %xmm0<br>
       popq    %rax<br>
       retq<br>
.Ltmp1:<br>
<br>
<br>
Host CPU details:<br>
<br>
$ cat /proc/cpuinfo<br>
processor       : 0<br>
vendor_id       : GenuineIntel<br>
cpu family      : 6<br>
model           : 61<br>
model name      : Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz<br>
stepping        : 4<br>
microcode       : 0x1a<br>
cpu MHz         : 2600.000<br>
cache size      : 4096 KB<br>
physical id     : 0<br>
siblings        : 4<br>
core id         : 0<br>
cpu cores       : 2<br>
apicid          : 0<br>
initial apicid  : 0<br>
fpu             : yes<br>
fpu_exception   : yes<br>
cpuid level     : 20<br>
wp              : yes<br>
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge<br>
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe<br>
syscall nx pdpe1gb rdtscp lm c<br>
onstant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc<br>
aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est<br>
tm2 ssse3 fma cx16 xtpr pdcm p<br>
cid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx<br>
f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm<br>
tpr_shadow vnmi flexpriority ep<br>
t vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm<br>
rdseed adx smap xsaveopt<br>
bugs            :<br>
bogomips        : 5187.73<br>
clflush size    : 64<br>
cache_alignment : 64<br>
address sizes   : 39 bits physical, 48 bits virtual<br>
power management:<br>
[...]<br>
<br>
$ ./cpuid -c 0 -d<br>
CPU 0:<br>
CPUID 00000000:00 = 00000014 756e6547 6c65746e 49656e69 | ....GenuntelineI<br>
CPUID 00000001:00 = 000306d4 00100800 7ffafbff bfebfbff | ................<br>
CPUID 00000002:00 = 76036301 00f0b5ff 00000000 00c30000 | .c.v............<br>
CPUID 00000003:00 = 00000000 00000000 00000000 00000000 | ................<br>
CPUID 00000004:00 = 1c004121 01c0003f 0000003f 00000000 | !A..?...?.......<br>
CPUID 00000004:01 = 1c004122 01c0003f 0000003f 00000000 | "A..?...?.......<br>
CPUID 00000004:02 = 1c004143 01c0003f 000001ff 00000000 | CA..?...........<br>
CPUID 00000004:03 = 1c03c163 03c0003f 00000fff 00000006 | c...?...........<br>
CPUID 00000004:04 = 00000000 00000000 00000000 00000000 | ................<br>
CPUID 00000005:00 = 00000040 00000040 00000003 11142120 | @...@....... !..<br>
CPUID 00000006:00 = 00000077 00000002 00000009 00000000 | w...............<br>
CPUID 00000007:00 = 00000000 021c2fbb 00000000 00000000 | ...../..........<br>
CPUID 00000008:00 = 00000000 00000000 00000000 00000000 | ................<br>
CPUID 00000009:00 = 00000000 00000000 00000000 00000000 | ................<br>
CPUID 0000000a:00 = 07300403 00000000 00000000 00000603 | ..0.............<br>
CPUID 0000000b:00 = 00000001 00000002 00000100 00000000 | ................<br>
CPUID 0000000b:01 = 00000004 00000004 00000201 00000000 | ................<br>
CPUID 0000000b:02 = 00000000 00000000 00000002 00000000 | ................<br>
CPUID 0000000c:00 = 00000000 00000001 00000001 00000000 | ................<br>
CPUID 0000000d:00 = 00000007 00000340 00000340 00000000 | ....@...@.......<br>
CPUID 0000000d:01 = 00000001 00000000 00000000 00000000 | ................<br>
CPUID 0000000d:02 = 00000100 00000240 00000000 00000000 | ....@...........<br>
CPUID 0000000e:00 = 00000000 00000000 00000000 00000000 | ................<br>
CPUID 0000000f:00 = 00000000 00000000 00000000 00000000 | ................<br>
CPUID 00000010:00 = 00000000 00000000 00000000 00000000 | ................<br>
CPUID 00000011:00 = 00000000 00000000 00000000 00000000 | ................<br>
CPUID 00000012:00 = 00000000 00000000 00000000 00000000 | ................<br>
CPUID 00000013:00 = 00000000 00000000 00000000 00000000 | ................<br>
CPUID 00000014:00 = 00000000 00000001 00000001 00000000 | ................<br>
CPUID 80000000:00 = 80000008 00000000 00000000 00000000 | ................<br>
CPUID 80000001:00 = 00000000 00000000 00000121 2c100800 | ........!......,<br>
CPUID 80000002:00 = 65746e49 2952286c 726f4320 4d542865 | Intel(R) Core(TM<br>
CPUID 80000003:00 = 37692029 3036352d 43205530 40205550 | ) i7-5600U CPU @<br>
CPUID 80000004:00 = 362e3220 7a484730 00000000 00000000 |  2.60GHz........<br>
CPUID 80000005:00 = 00000000 00000000 00000000 00000000 | ................<br>
CPUID 80000006:00 = 00000000 00000000 01006040 00000000 | ........@`......<br>
CPUID 80000007:00 = 00000000 00000000 00000000 00000100 | ................<br>
CPUID 80000008:00 = 00003027 00000000 00000000 00000000 | '0..............<br>
<br>
Ideas?<br>
<br>
- Steven<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">~Craig</div>
</div>