Fixed Point Vector Operations in [64/128/256]bit Registers
nxb
means n
elements of b
bits each
16x8
means 16
elements of 8
bits each
8x16
means 8
elements of 16
bits each
4x32
means 4
elements of 32
bits each
g++ -g -o FixedPoint FixedPoint.cpp -lstdc++ -mavx
FixedPointVectorOps# ./FixedPoint
r16x8: 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0xff
j16x8: 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0xff
c16x8: 0x02 0x04 0x06 0x08 0x0a 0x0c 0x0e 0x10 0x12 0x14 0x16 0x18 0x1a 0x1c 0x1e 0xfe
vc8x8_a: 0x01 0x01 0x02 0x02 0x03 0x03 0x04 0x04 0x05 0x05 0x06 0x06 0x07 0x07 0x08 0x08
vc8x8_b: 0x09 0x09 0x0a 0x0a 0x0b 0x0b 0x0c 0x0c 0x0d 0x0d 0x0e 0x0e 0x0f 0x0f 0xff 0xff
vc8x8_c: 0x0a 0x0a 0x0c 0x0c 0x0e 0x0e 0x10 0x10 0x12 0x12 0x14 0x14 0x16 0x16 0x07 0x07
r8x16: 0xffff 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006
j8x16: 0xffff 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006
c8x16: 0xfffe 0x0000 0x0002 0x0004 0x0006 0x0008 0x000a 0x000c
c8x16lo: 0x0001 0x0000 0x0001 0x0004 0x0009 0x0010 0x0019 0x0024
c8x16hi: 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
vc4x16_a: 0xffff 0xffff 0x0000 0x0000 0x0001 0x0001 0x0002 0x0002
vc4x16_b: 0x0003 0x0003 0x0004 0x0004 0x0005 0x0005 0x0006 0x0006
vc4x16_c: 0x0002 0x0002 0x0004 0x0004 0x0006 0x0006 0x0008 0x0008
vc8x16lo: 0xfffd 0xfffd 0x0000 0x0000 0x0005 0x0005 0x000c 0x000c
vc8x16hi: 0xffff 0xffff 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
r4x32: 0xfffffffe 0xffffffff 0x00000000 0x00000001
j4x32: 0xfffffffe 0xffffffff 0x00000000 0x00000001
c4x32: 0xfffffffc 0xfffffffe 0x00000000 0x00000002
vc2x32_a: 0xfffffffe 0xfffffffe 0xffffffff 0xffffffff
vc2x32_b: 0x00000000 0x00000000 0x00000001 0x00000001
vc2x32_c: 0xfffffffe 0xfffffffe 0x00000000 0x00000000