# gcc czituje z -march=core2

## SlashBeast

Prosty test:

```
slashbeast@ragnarok ~ % gcc -Q -c -v -march=core2 --help=target -mssse3 > core2

slashbeast@ragnarok ~ % grep sse core2

  -mno-sse4                         [enabled]

  -msse                             [enabled]

  -msse2                            [enabled]

  -msse2avx                         [disabled]

  -msse3                            [enabled]

  -msse4                            [disabled]

  -msse4.1                          [disabled]

  -msse4.2                          [disabled]

  -msse4a                           [disabled]

  -msse5                            [disabled]

  -msseregparm                      [disabled]

  -mssse3                           [enabled]
```

Z -mssse3 dodaje od sse do sse3 i ssse3, bez -mssse3 test:

```
slashbeast@ragnarok ~ % gcc -Q -c -v -march=core2 --help=target > core2

slashbeast@ragnarok ~ % grep sse core2

  -mno-sse4                         [enabled]

  -msse                             [disabled]

  -msse2                            [disabled]

  -msse2avx                         [disabled]

  -msse3                            [disabled]

  -msse4                            [disabled]

  -msse4.1                          [disabled]

  -msse4.2                          [disabled]

  -msse4a                           [disabled]

  -msse5                            [disabled]

  -msseregparm                      [disabled]

  -mssse3                           [disabled]
```

Cos tutaj bardzo nie halo jest.

----------

## lazy_bum

Jako ciekawostkę dodam:

```
tmp (: gcc -Q -c -v -march=native --help=target > native

tmp (: grep sse native 

  -mno-sse4                         [enabled]

  -msse                             [disabled]

  -msse2                            [disabled]

  -msse3                            [disabled]

  -msse4                            [disabled]

  -msse4.1                          [disabled]

  -msse4.2                          [disabled]

  -msse4a                           [disabled]

  -msse5                            [disabled]

  -msseregparm                      [disabled]

  -mssse3                           [disabled]

tmp (: grep model\ name /proc/cpuinfo 

model name   : Pentium(R) Dual-Core  CPU      E5200  @ 2.50GHz

model name   : Pentium(R) Dual-Core  CPU      E5200  @ 2.50GHz
```

----------

## Bialy

I za przeproszeniem kończą się głupie komentarz nt. dlaczego w CFLAGS masz dodane zestawy instrukcji  :Wink: 

----------

## gentoousr

dobrze dodaje flagi przy kompilacji mozna zobaczyc, te wasze sprawdzanie zle pokazuje poprostu;

```
echo | gcc -dM -E - -march=core2
```

  i porownac, u mnie ok

ale jak ktos sie obawia mozna dodac statycznie w cflags.

//edit troche stary ten temat - nie zauwazylem

----------

## SlashBeast

Dobrze, ze odpisales. Temat stary ale wiadomosci w nim zawarte zawsze beda na czasie.

----------

## lsdudi

gdzieś czytałem że wymusznie sse dla programów nienapisanych pod tą optymalizacje powoduje efekt odwrotny od zamierzonego  czyli spadek wydajności więc być może chodzi właśnie o to.

----------

