fragment_downloaded_cb({"url":"opcodes.html#table-of-opcodes","fragment":"Table of Opcodes\nIn the pseudo code of the above table, abs() indicates absolute value, clamp() indicates that any values outside the destination range are set to the nearest value in the destination range, and sign() evaluates to -1 for values less than 0, 1 for values greater than 0, and 0 for 0.\n\n\n\n Opcode\n Dest Size\n Src 1 Size\n Src 2 Size\n Description\n Pseudo Code\n\n\n\n\n absb\n 1\n 1\n\n absolute value\n (a < 0) ? -a : a\n\n\n addb\n 1\n 1\n 1\n add\n a + b\n\n\n addssb\n 1\n 1\n 1\n add with signed saturate\n clamp(a + b)\n\n\n addusb\n 1\n 1\n 1\n add with unsigned saturate\n clamp(a + b)\n\n\n andb\n 1\n 1\n 1\n bitwise AND\n a & b\n\n\n andnb\n 1\n 1\n 1\n bitwise AND NOT\n a & (~b)\n\n\n avgsb\n 1\n 1\n 1\n signed average\n (a + b + 1)>>1\n\n\n avgub\n 1\n 1\n 1\n unsigned average\n (a + b + 1)>>1\n\n\n cmpeqb\n 1\n 1\n 1\n compare equal\n (a == b) ? (~0) : 0\n\n\n cmpgtsb\n 1\n 1\n 1\n compare greater than\n (a > b) ? (~0) : 0\n\n\n copyb\n 1\n 1\n\n copy\n a\n\n\n loadb\n 1\n 1\n\n load from memory\n array[i]\n\n\n loadoffb\n 1\n 1\n 4S\n load from memory with offset\n array[i+offset]\n\n\n loadupdb\n 1\n 1\n\n load upsampled duplicate\n array[i>>1]\n\n\n loadupib\n 1\n 1\n\n load upsampled interpolate\n (array[i>>1] + array[(i+1)>>1] + 1)>>1\n\n\n loadpb\n 1\n 1\n\n load parameter or constant\n scalar\n\n\n ldresnearb\n 1\n 1\n 4S\n load, nearest neighbor resampled\n array[(b+c*i)>>8]\n\n\n ldresnearl\n 4\n 4\n 4S\n load, nearest neighbor resampled\n array[(b+c*i)>>8]\n\n\n ldreslinb\n 1\n 1\n 4S\n load, bilinear resampled\n special\n\n\n ldreslinl\n 4\n 4\n 4S\n load, bilinear resampled\n special\n\n\n maxsb\n 1\n 1\n 1\n signed maximum\n (a > b) ? a : b\n\n\n maxub\n 1\n 1\n 1\n unsigned maximum\n (a > b) ? a : b\n\n\n minsb\n 1\n 1\n 1\n signed minimum\n (a < b) ? a : b\n\n\n minub\n 1\n 1\n 1\n unsigned minimum\n (a < b) ? a : b\n\n\n mullb\n 1\n 1\n 1\n low bits of multiply\n a * b\n\n\n mulhsb\n 1\n 1\n 1\n high bits of signed multiply\n (a * b) >> 8\n\n\n mulhub\n 1\n 1\n 1\n high bits of unsigned multiply\n (a * b) >> 8\n\n\n orb\n 1\n 1\n 1\n bitwise or\n a | b\n\n\n shlb\n 1\n 1\n 1S\n shift left\n a << b\n\n\n shrsb\n 1\n 1\n 1S\n signed shift right\n a >> b\n\n\n shrub\n 1\n 1\n 1S\n unsigned shift right\n a >> b\n\n\n signb\n 1\n 1\n\n sign\n sign(a)\n\n\n storeb\n 1\n 1\n\n store to memory\n special\n\n\n subb\n 1\n 1\n 1\n subtract\n a - b\n\n\n subssb\n 1\n 1\n 1\n subtract with signed saturate\n clamp(a - b)\n\n\n subusb\n 1\n 1\n 1\n subtract with unsigned saturate\n clamp(a - b)\n\n\n xorb\n 1\n 1\n 1\n bitwise XOR\n a ^ b\n\n\n absw\n 2\n 2\n\n absolute value\n (a < 0) ? -a : a\n\n\n addw\n 2\n 2\n 2\n add\n a + b\n\n\n addssw\n 2\n 2\n 2\n add with signed saturate\n clamp(a + b)\n\n\n addusw\n 2\n 2\n 2\n add with unsigned saturate\n clamp(a + b)\n\n\n andw\n 2\n 2\n 2\n bitwise AND\n a & b\n\n\n andnw\n 2\n 2\n 2\n bitwise AND NOT\n a & (~b)\n\n\n avgsw\n 2\n 2\n 2\n signed average\n (a + b + 1)>>1\n\n\n avguw\n 2\n 2\n 2\n unsigned average\n (a + b + 1)>>1\n\n\n cmpeqw\n 2\n 2\n 2\n compare equal\n (a == b) ? (~0) : 0\n\n\n cmpgtsw\n 2\n 2\n 2\n compare greater than\n (a > b) ? (~0) : 0\n\n\n copyw\n 2\n 2\n\n copy\n a\n\n\n div255w\n 2\n 2\n\n divide by 255\n a/255\n\n\n divluw\n 2\n 2\n 2\n saturated unsigned divide 16-bit by 8-bit\n clamp(a/(b & 255),0,255)\n\n\n loadw\n 2\n 2\n\n load from memory\n array[i]\n\n\n loadoffw\n 2\n 2\n 4S\n load from memory with offset\n array[i+offset]\n\n\n loadpw\n 2\n 2\n\n load parameter or constant\n scalar\n\n\n maxsw\n 2\n 2\n 2\n signed maximum\n (a > b) ? a : b\n\n\n maxuw\n 2\n 2\n 2\n unsigned maximum\n (a > b) ? a : b\n\n\n minsw\n 2\n 2\n 2\n signed minimum\n (a < b) ? a : b\n\n\n minuw\n 2\n 2\n 2\n unsigned minimum\n (a < b) ? a : b\n\n\n mullw\n 2\n 2\n 2\n low bits of multiply\n a * b\n\n\n mulhsw\n 2\n 2\n 2\n high bits of signed multiply\n (a * b) >> 16\n\n\n mulhuw\n 2\n 2\n 2\n high bits of unsigned multiply\n (a * b) >> 16\n\n\n orw\n 2\n 2\n 2\n bitwise or\n a | b\n\n\n shlw\n 2\n 2\n 2S\n shift left\n a << b\n\n\n shrsw\n 2\n 2\n 2S\n signed shift right\n a >> b\n\n\n shruw\n 2\n 2\n 2S\n unsigned shift right\n a >> b\n\n\n signw\n 2\n 2\n\n sign\n sign(a)\n\n\n storew\n 2\n 2\n\n store to memory\n special\n\n\n subw\n 2\n 2\n 2\n subtract\n a - b\n\n\n subssw\n 2\n 2\n 2\n subtract with signed saturate\n clamp(a - b)\n\n\n subusw\n 2\n 2\n 2\n subtract with unsigned saturate\n clamp(a - b)\n\n\n xorw\n 2\n 2\n 2\n bitwise XOR\n a ^ b\n\n\n absl\n 4\n 4\n\n absolute value\n (a < 0) ? -a : a\n\n\n addl\n 4\n 4\n 4\n add\n a + b\n\n\n addssl\n 4\n 4\n 4\n add with signed saturate\n clamp(a + b)\n\n\n addusl\n 4\n 4\n 4\n add with unsigned saturate\n clamp(a + b)\n\n\n andl\n 4\n 4\n 4\n bitwise AND\n a & b\n\n\n andnl\n 4\n 4\n 4\n bitwise AND NOT\n a & (~b)\n\n\n avgsl\n 4\n 4\n 4\n signed average\n (a + b + 1)>>1\n\n\n avgul\n 4\n 4\n 4\n unsigned average\n (a + b + 1)>>1\n\n\n cmpeql\n 4\n 4\n 4\n compare equal\n (a == b) ? (~0) : 0\n\n\n cmpgtsl\n 4\n 4\n 4\n compare greater than\n (a > b) ? (~0) : 0\n\n\n copyl\n 4\n 4\n\n copy\n a\n\n\n loadl\n 4\n 4\n\n load from memory\n array[i]\n\n\n loadoffl\n 4\n 4\n 4S\n load from memory with offset\n array[i+offset]\n\n\n loadpl\n 4\n 4\n\n load parameter or constant\n scalar\n\n\n maxsl\n 4\n 4\n 4\n signed maximum\n (a > b) ? a : b\n\n\n maxul\n 4\n 4\n 4\n unsigned maximum\n (a > b) ? a : b\n\n\n minsl\n 4\n 4\n 4\n signed minimum\n (a < b) ? a : b\n\n\n minul\n 4\n 4\n 4\n unsigned minimum\n (a < b) ? a : b\n\n\n mulll\n 4\n 4\n 4\n low bits of multiply\n a * b\n\n\n mulhsl\n 4\n 4\n 4\n high bits of signed multiply\n (a * b) >> 32\n\n\n mulhul\n 4\n 4\n 4\n high bits of unsigned multiply\n (a * b) >> 32\n\n\n orl\n 4\n 4\n 4\n bitwise or\n a | b\n\n\n shll\n 4\n 4\n 4S\n shift left\n a << b\n\n\n shrsl\n 4\n 4\n 4S\n signed shift right\n a >> b\n\n\n shrul\n 4\n 4\n 4S\n unsigned shift right\n a >> b\n\n\n signl\n 4\n 4\n\n sign\n sign(a)\n\n\n storel\n 4\n 4\n\n store to memory\n special\n\n\n subl\n 4\n 4\n 4\n subtract\n a - b\n\n\n subssl\n 4\n 4\n 4\n subtract with signed saturate\n clamp(a - b)\n\n\n subusl\n 4\n 4\n 4\n subtract with unsigned saturate\n clamp(a - b)\n\n\n xorl\n 4\n 4\n 4\n bitwise XOR\n a ^ b\n\n\n loadq\n 8\n 8\n\n load from memory\n array[i]\n\n\n loadpq\n 8\n 8\n\n load parameter or constant\n scalar\n\n\n storeq\n 8\n 8\n\n store to memory\n special\n\n\n splatw3q\n 8\n 8\n\n duplicates high 16-bits to lower 48 bits\n special\n\n\n copyq\n 8\n 8\n\n\n\n\n\n cmpeqq\n 8\n 8\n 8\n\n\n\n\n cmpgtsq\n 8\n 8\n 8\n\n\n\n\n andq\n 8\n 8\n 8\n\n\n\n\n andnq\n 8\n 8\n 8\n\n\n\n\n orq\n 8\n 8\n 8\n\n\n\n\n xorq\n 8\n 8\n 8\n\n\n\n\n addq\n 8\n 8\n 8\n\n\n\n\n subq\n 8\n 8\n 8\n\n\n\n\n shlq\n 8\n 8\n 8S\n\n\n\n\n shrsq\n 8\n 8\n 8S\n\n\n\n\n shruq\n 8\n 8\n 8S\n\n\n\n\n convsbw\n 2\n 1\n\n convert signed to wider\n a\n\n\n convubw\n 2\n 1\n\n convert unsigned to wider\n a\n\n\n splatbw\n 2\n 1\n\n duplicates 8 bits to both halfs of 16 bits\n special\n\n\n splatbl\n 4\n 1\n\n duplicates 8 bits to all parts of 32 bits\n special\n\n\n convswl\n 4\n 2\n\n convert signed to wider\n a\n\n\n convuwl\n 4\n 2\n\n convert unsigned to wider\n a\n\n\n convslq\n 8\n 4\n\n convert signed to wider\n a\n\n\n convulq\n 8\n 4\n\n convert unsigned to wider\n a\n\n\n convwb\n 1\n 2\n\n convert signed to narrower\n a\n\n\n convhwb\n 1\n 2\n\n shift and convert\n a>>8\n\n\n convssswb\n 1\n 2\n\n convert signed to signed with saturation\n clamp(a)\n\n\n convsuswb\n 1\n 2\n\n convert signed to unsigned with saturation\n clamp(a)\n\n\n convusswb\n 1\n 2\n\n convert unsigned to signed with saturation\n clamp(a)\n\n\n convuuswb\n 1\n 2\n\n convert unsigned to unsigned with saturation\n clamp(a)\n\n\n convlw\n 2\n 4\n\n convert signed to narrower\n a\n\n\n convhlw\n 2\n 4\n\n shift and convert\n a>>16\n\n\n convssslw\n 2\n 4\n\n convert signed to signed with saturation\n clamp(a)\n\n\n convsuslw\n 2\n 4\n\n convert signed to unsigned with saturation\n clamp(a)\n\n\n convusslw\n 2\n 4\n\n convert unsigned to signed with saturation\n clamp(a)\n\n\n convuuslw\n 2\n 4\n\n convert unsigned to unsigned with saturation\n clamp(a)\n\n\n convql\n 4\n 8\n\n convert signed to narrower\n a\n\n\n convsssql\n 4\n 8\n\n convert signed to signed with saturation\n clamp(a)\n\n\n convsusql\n 4\n 8\n\n convert signed to unsigned with saturation\n clamp(a)\n\n\n convussql\n 4\n 8\n\n convert unsigned to signed with saturation\n clamp(a)\n\n\n convuusql\n 4\n 8\n\n convert unsigned to unsigned with saturation\n clamp(a)\n\n\n mulsbw\n 2\n 1\n 1\n multiply signed to wider\n a * b\n\n\n mulubw\n 2\n 1\n 1\n multiply unsigned to wider\n a * b\n\n\n mulswl\n 4\n 2\n 2\n multiply signed to wider\n a * b\n\n\n muluwl\n 4\n 2\n 2\n multiply unsigned to wider\n a * b\n\n\n mulslq\n 8\n 4\n 4\n multiply signed to wider\n a * b\n\n\n mululq\n 8\n 4\n 4\n multiply unsigned to wider\n a * b\n\n\n accw\n 2\n 2\n\n accumulate\n += a\n\n\n accl\n 4\n 4\n\n accumulate\n += a\n\n\n accsadubl\n 4\n 1\n 1\n accumulate absolute difference\n += abs(a - b)\n\n\n swapw\n 2\n 2\n\n endianness byte swap\n special\n\n\n swapl\n 4\n 4\n\n endianness byte swap\n special\n\n\n swapwl\n 4\n 4\n\n endianness word swap\n special\n\n\n swapq\n 8\n 8\n\n endianness byte swap\n special\n\n\n swaplq\n 8\n 8\n\n endianness long word swap\n special\n\n\n select0wb\n 1\n 2\n\n select first half\n special\n\n\n select1wb\n 1\n 2\n\n select second half\n special\n\n\n select0lw\n 2\n 4\n\n select first half\n special\n\n\n select1lw\n 2\n 4\n\n select second half\n special\n\n\n select0ql\n 4\n 8\n\n select first half\n special\n\n\n select1ql\n 4\n 8\n\n select second half\n special\n\n\n mergelq\n 8\n 4\n 4\n merge words\n special\n\n\n mergewl\n 4\n 2\n 2\n merge halfwords\n special\n\n\n mergebw\n 2\n 1\n 1\n merge bytes\n special\n\n\n splitql\n 4\n 8\n\n split first/second long words\n special\n\n\n splitlw\n 2\n 4\n\n split first/second words\n special\n\n\n splitwb\n 1\n 2\n\n split first/second bytes\n special\n\n\n addf\n 4\n 4\n 4\n add\n a + b\n\n\n subf\n 4\n 4\n 4\n subtract\n a - b\n\n\n mulf\n 4\n 4\n 4\n multiply\n a * b\n\n\n divf\n 4\n 4\n 4\n divide\n a / b\n\n\n sqrtf\n 4\n 4\n\n square root\n sqrt(a)\n\n\n maxf\n 4\n 4\n 4\n maximum\n max(a,b)\n\n\n minf\n 4\n 4\n 4\n minimum\n min(a,b)\n\n\n cmpeqf\n 4\n 4\n 4\n compare equal\n (a == b) ? (~0) : 0\n\n\n cmpltf\n 4\n 4\n 4\n compare less than\n (a == b) ? (~0) : 0\n\n\n cmplef\n 4\n 4\n 4\n compare less than or equal\n (a == b) ? (~0) : 0\n\n\n convfl\n 4\n 4\n\n convert float point to integer\n a\n\n\n convlf\n 4\n 4\n\n convert integer to floating point\n a\n\n\n addd\n 8\n 8\n 8\n add\n a + b\n\n\n subd\n 8\n 8\n 8\n subtract\n a - b\n\n\n muld\n 8\n 8\n 8\n multiply\n a * b\n\n\n divd\n 8\n 8\n 8\n divide\n a / b\n\n\n sqrtd\n 8\n 8\n\n square root\n sqrt(a)\n\n\n maxd\n 8\n 8\n 8\n maximum\n max(a,b)\n\n\n mind\n 8\n 8\n 8\n minimum\n min(a,b)\n\n\n cmpeqd\n 8\n 8\n 8\n compare equal\n (a == b) ? (~0) : 0\n\n\n cmpltd\n 8\n 8\n 8\n compare less than\n (a == b) ? (~0) : 0\n\n\n cmpled\n 8\n 8\n 8\n compare less than or equal\n (a == b) ? (~0) : 0\n\n\n convdl\n 4\n 8\n\n convert double point to integer\n a\n\n\n convld\n 8\n 4\n\n convert integer to double point\n a\n\n\n convfd\n 8\n 4\n\n convert float to double\n a\n\n\n convdf\n 4\n 8\n\n convert double to float\n a\n\n\n orf\n 4\n 4\n 4\n bitwise or\n a | b\n\n\n andf\n 4\n 4\n 4\n bitwise and\n a & b\n\n\n convwf\n 4\n 2\n\n\n\n\n\n\n"});