メモ置き場 - オンラインジャッジでSSEは使えるか調査

SSE2 (intrinsics)

$\verb|#include<xmmintrin.h>|$ して,$\verb|_mm_loadu_si128|, \verb|_mm_add_epi32|$ などを使ってみたコードをサブミットしてどうなるかを確認.
ローカルでは,cygwin (32bit) gcc version 4.5.3はコンパイルオプション無しではコンパイルできず,cygwin (64bit) gcc version 4.8.3ならコンパイルオプション無しでコンパイルできる.

SSE4.1 (インラインアセンブラ):ただし,破壊するレジスタを指定する

$\verb|paddd|$ などのSSE2の命令と $\verb|pmuludq|$ などのSSE4.1の命令使ってみたコードをサブミットしてどうなるかを確認.
ローカルでは,cygwin (32bit) gcc version 4.5.3はコンパイルオプション無しではコンパイルできず,cygwin (64bit) gcc version 4.8.3ならコンパイルオプション無しでコンパイルできる.
例:$\verb|asm volatile("movdqu %1, %%xmm0;" "movdqu %2, %%xmm1;" "paddd %%xmm1, %%xmm0;" "movdqu %%xmm0, %0;" :"=m"(c) :"m"(a), "m"(b) :"%xmm0", "%xmm1");|$

SSE4.1 (インラインアセンブラ):ただし,破壊するレジスタを指定しない

$\verb|paddd|$ などのSSE2の命令と $\verb|pmuludq|$ などのSSE4.1の命令使ってみたコードをサブミットしてどうなるかを確認.
ローカルでは,cygwin (32bit) gcc version 4.5.3でも,cygwin (64bit) gcc version 4.8.3ならコンパイルオプション無しでコンパイルできる.
例:$\verb|asm volatile("movdqu %1, %%xmm0;" "movdqu %2, %%xmm1;" "paddd %%xmm1, %%xmm0;" "movdqu %%xmm0, %0;" :"=m"(c) :"m"(a), "m"(b) :);|$

(その他)_unlocked系

$\verb|getchar_unlocked|$ および $\verb|putchar_unlocked|$ が使えるかどうか.

(その他)bits/stdc++.h

$\verb|#include<bits/stdc++.h>|$が使えるかどうか.


Current time: 2017年07月22日09時47分14秒
Last modified: 2015年05月30日20時42分40秒 (by laycrs)
Tags: no_tags
トップページに戻る

Logged in as: unknown user (not login)

ログイン: