# Install from ports with suporting SSE1-4 MMX



## yuramuv (Apr 25, 2011)

How can I install software from ports with supporting SSE1, SSE2, SSE3, SSE4.1, SSE4.2, MMX, 3D-now and others.
My processor: Intel Core I5 430m.
*cat /proc/cpuinfo* (from linux):


```
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 37
model name      : Intel(R) Core(TM) i5 CPU       M 430  @ 2.27GHz
stepping        : 2
cpu MHz         : 1199.000
cache size      : 3072 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe 
syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 
cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid
bogomips        : 4521.92
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
```


----------



## poh-poh (Apr 25, 2011)

There is no consistent way. Some ports use MMX/SSE options, some group them into one SIMD option, some use MACHINE_CPU which is derived from CPUTYPE and some just autodetect them during configure or build stage. Try setting CPUTYPE?=native in make.conf wich would make gcc(1) use simd instructions supported by your CPU where possible. This means for gcc42 (in /stable/8 base) it'd be -mmmx, -msse, -msse2, -msse3, for gcc42+ (in /head) also -mssse3 and for gcc46 (from ports) also -msse4.1, -msse4.2.

I guess -march=native on Core i5 is similar to -march=corei7.
	
	



```
$ gcc46 -dM -E -march=native -</dev/null | fgrep -i -emmx -esse
#define __SSE4_1__ 1
#define __MMX__ 1
#define __SSE4_2__ 1
#define __SSE2_MATH__ 1
#define __SSE_MATH__ 1
#define __SSE2__ 1
#define __SSSE3__ 1
#define __SSE__ 1
#define __SSE3__ 1
```


----------



## yuramuv (Apr 25, 2011)

*poh-poh* thanks
I must write it in make.conf?

```
-march=corei7
```


```
#define __SSE4_1__ 1
#define __MMX__ 1
#define __SSE4_2__ 1
#define __SSE2_MATH__ 1
#define __SSE_MATH__ 1
#define __SSE2__ 1
#define __SSSE3__ 1
#define __SSE__ 1
#define __SSE3__ 1
```
and it to console

```
$ gcc46 -dM -E -march=native -</dev/null | fgrep -i -emmx -esse
```


----------

