Visual C++에서 128 비트 본질 내장 함수가 실제로 있는지 궁금합니다.Visual C++ 128 비트 본질 내장
MUL x64 어셈블러 명령어와 잘 일치하는 _umul128()이라는 64x64 = 128 비트 곱셈 내장 함수가 있습니다.
본질적으로 128/64 = 64 비트 나눗셈 내장 함수 (DIV 명령어 모델링)가 있다고 가정했지만 비주얼 C++이나 인텔 C++에는없는 것으로 보입니다. 적어도 나열되어 있지는 않습니다. intrin.h.
누군가가이를 확인할 수 있습니까? 나는 컴파일러 실행 파일의 함수 이름에 대해 grep'ing을 시도했지만 처음에는 _umul128을 찾을 수 없었으므로 잘못된 지점을 찾았습니다.
업데이트 : 적어도 Visual C++ 2010의 c1.dll에서 "umul128"이라는 패턴을 발견했습니다. 다른 모든 intrinsics는 그 주위에 나열되지만 불행히도 "udiv128"또는 이와 비슷한 것은 아닙니다 :(그래서 그들은 실제로 그것을 구현하는 것을 "잊어 버린"것처럼 보입니다.
분명히하기 위해서 : 저는 128 비트 데이터 타입을 찾고있을뿐만 아니라, 128 비트 스칼라 int를 64 비트로 나눌 수있는 방법을 찾고 있습니다. 어느 쪽 내장 함수 또는 기본 128 비트 정수 지원이 내 문제를 해결할 것입니다. ++ C에서 int로.
에디를 t : 대답은 '아니오', 거기에 내가 전문가는 오전없는 비주얼 스튜디오 2010 또는 2012
CRT의 일부가 아닙니다. 그것은 내재적이며, 프로세서는 무료입니다. 그러나 64 비트 모드에서만 가능합니다. 당신이 128 조금 가공업자를 얻을 때까지 div를위한 공짜 물건 없음. 엄청나게 방대한 양의 pow (2, 128)를 감안할 때 임의 정밀도 라이브러리를 찾아야합니다. 주변에 많은 사람들이 있어요. –
@TreeMonkie : VS에서 __int18을 지원하지 않습니다. http://stackoverflow.com/questions/6759592/how-to-enable-int128-on-visual-studio – cxxl
@Hans : 죄송합니다, 이해가 안됩니다. 64 비트 모드가 아니라 내장 함수가 아닙니다. 그리고 임의의 정밀도 라이브러리를 쓰려면 * 필요합니다. – cxxl