▲neo 2달전 | parent | favorite | on: GN⁺: AVX 비트 논리 삼항 연산 명령어 결함(arnaud-carre.github.io)Hacker News 의견 특정 표현식을 계산하는 간단한 방법이 있음. 예를 들어 (NOT A) OR ((NOT B) XOR (C AND A))를 계산하고 싶다면, _MM_TERNLOG_A, _MM_TERNLOG_B, _MM_TERNLOG_C 상수를 사용하여 표현식을 작성하면 됨 GCC와 Clang에서는 intrinsic 헤더에 정의된 상수를 사용하여 즉시 계산 가능함 MSVC에서는 직접 상수를 정의해야 함 제목이 명령어가 제대로 작동하지 않는다고 말하는 줄 알았으나, 실제로는 작동 방식을 설명하는 것임 하드웨어 매뉴얼을 이해하려고 노력했으나 실패했던 경험이 있음. 나중에 대학에서 계산 논리 과목에서 A+를 받았음 "삼항 논리"는 보통 세 가지 진리값을 가진 논리를 의미하지만, 이 글은 세 입력을 가진 모든 이진 논리 게이트를 처리하는 컴파일러 명령어에 대해 다루고 있음 문서의 예시 함수 "E2"는 3개의 입력을 가진 가장 기본적인 불리언 함수로, A가 B일 때 C를 선택하는 MUX로 불림. 보편적임 FPGA가 임의의 논리 함수를 구현하는 방법과 동일하게, 조회 테이블(LUT)을 사용함 학부 시절 이산 수학 수업에 집중한 것 같음 sandpile.org에서 VPTERNLOG를 찾아보면, 바이트 및 워드 마스킹(AVX512BITALG2)과 관련된 Intel의 과거 계획을 볼 수 있음 Nvidia SASS에도 유사한 명령어(LOP3.LUT)가 있음 비트 연산을 정수로 패킹하는 또 다른 예로 win32의 GDI ROP 코드가 있음
Hacker News 의견
특정 표현식을 계산하는 간단한 방법이 있음. 예를 들어
(NOT A) OR ((NOT B) XOR (C AND A))
를 계산하고 싶다면,_MM_TERNLOG_A
,_MM_TERNLOG_B
,_MM_TERNLOG_C
상수를 사용하여 표현식을 작성하면 됨제목이 명령어가 제대로 작동하지 않는다고 말하는 줄 알았으나, 실제로는 작동 방식을 설명하는 것임
하드웨어 매뉴얼을 이해하려고 노력했으나 실패했던 경험이 있음. 나중에 대학에서 계산 논리 과목에서 A+를 받았음
"삼항 논리"는 보통 세 가지 진리값을 가진 논리를 의미하지만, 이 글은 세 입력을 가진 모든 이진 논리 게이트를 처리하는 컴파일러 명령어에 대해 다루고 있음
문서의 예시 함수 "E2"는 3개의 입력을 가진 가장 기본적인 불리언 함수로, A가 B일 때 C를 선택하는 MUX로 불림. 보편적임
FPGA가 임의의 논리 함수를 구현하는 방법과 동일하게, 조회 테이블(LUT)을 사용함
학부 시절 이산 수학 수업에 집중한 것 같음
sandpile.org에서 VPTERNLOG를 찾아보면, 바이트 및 워드 마스킹(AVX512BITALG2)과 관련된 Intel의 과거 계획을 볼 수 있음
Nvidia SASS에도 유사한 명령어(LOP3.LUT)가 있음
비트 연산을 정수로 패킹하는 또 다른 예로 win32의 GDI ROP 코드가 있음