test_dsp_r1_shllv_qb.c (700B)
1#include<stdio.h> 2#include<assert.h> 3 4int main() 5{ 6 int rd, rs, rt, dsp; 7 int result, resultdsp; 8 9 rs = 0x03; 10 rt = 0x87654321; 11 result = 0x38281808; 12 resultdsp = 0x01; 13 14 __asm 15 ("shllv.qb %0, %2, %3\n\t" 16 "rddsp %1\n\t" 17 : "=r"(rd), "=r"(dsp) 18 : "r"(rt), "r"(rs) 19 ); 20 dsp = (dsp >> 22) & 0x01; 21 assert(rd == result); 22 23 rs = 0x00; 24 rt = 0x87654321; 25 result = 0x87654321; 26 resultdsp = 0x01; 27 28 __asm 29 ("shllv.qb %0, %2, %3\n\t" 30 "rddsp %1\n\t" 31 : "=r"(rd), "=r"(dsp) 32 : "r"(rt), "r"(rs) 33 ); 34 dsp = (dsp >> 22) & 0x01; 35 assert(rd == result); 36 37 return 0; 38}