[t:/]$ 지식_

bsf 마이크로 명령어

2018/05/30

https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=2811,933,933,4619,933,3164,5254,3307,5198,5231,5233,3643,5487,5331,5278,1383,1383,4728,3172,2317,2317,5187,3612,3575,765,3611,3166,392,392,393,397,394,392,3612,394,392&text=scan

에서는 _bit_scan_forward가 bsf 명령어에 해당하는데, 내 컴에서 gcc 컴파일 하면 tzcntl이 된다. 인텔 컴파일러가 아니라 gcc를 쓰고 있다. O3 빌드하면 문제가 된다. _bit_scan_forward는 int를 파라미터로 취하고 있는데 MSB가 깨진다. 최적화 옵션을 빼니 정상적으로 동작한다. 하하.. gcc builtin을 쓰면 정상 동작한다.

__builtin_ia32_lzcnt_u32

하나만 쓰자.. 섞어 쓰니까 개고생..









[t:/] is not "technology - root". dawnsea, rss