c_dsp32shiftim_ahh_s.s 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //Original:/testcases/core/c_dsp32shiftim_ahh_s/c_dsp32shiftim_ahh_s.dsp
  2. # mach: bfin
  3. .include "testutils.inc"
  4. start
  5. // Spec Reference: dsp32shiftimm ashift: ashift / ashift saturated
  6. imm32 r0, 0x01230abc;
  7. imm32 r1, 0x12345678;
  8. imm32 r2, 0x23456789;
  9. imm32 r3, 0x3456789a;
  10. imm32 r4, 0x456789ab;
  11. imm32 r5, 0x56789abc;
  12. imm32 r6, 0x6789abcd;
  13. imm32 r7, 0x789abcde;
  14. R0 = R0 << 0 (V , S);
  15. R1 = R1 << 3 (V , S);
  16. R2 = R2 << 5 (V , S);
  17. R3 = R3 << 8 (V , S);
  18. R4 = R4 << 9 (V , S);
  19. R5 = R5 << 15 (V , S);
  20. R6 = R6 << 7 (V , S);
  21. R7 = R7 << 13 (V , S);
  22. CHECKREG r0, 0x01230ABC;
  23. CHECKREG r1, 0x7FFF7FFF;
  24. CHECKREG r2, 0x7FFF7FFF;
  25. CHECKREG r3, 0x7FFF7FFF;
  26. CHECKREG r4, 0x7FFF8000;
  27. CHECKREG r5, 0x7FFF8000;
  28. CHECKREG r6, 0x7FFF8000;
  29. CHECKREG r7, 0x7FFF8000;
  30. imm32 r0, 0x01230000;
  31. imm32 r1, 0x12345678;
  32. imm32 r2, 0x23456789;
  33. imm32 r3, 0x3456789a;
  34. imm32 r4, 0x456789ab;
  35. imm32 r5, 0x56789abc;
  36. imm32 r6, 0x6789abcd;
  37. imm32 r7, 0x789abcde;
  38. R7 = R0 >>> 1 (V, S);
  39. R0 = R1 >>> 8 (V, S);
  40. R1 = R2 >>> 14 (V, S);
  41. R2 = R3 >>> 15 (V, S);
  42. R3 = R4 >>> 11 (V, S);
  43. R4 = R5 >>> 4 (V, S);
  44. R5 = R6 >>> 9 (V, S);
  45. R6 = R7 >>> 6 (V, S);
  46. CHECKREG r0, 0x00120056;
  47. CHECKREG r1, 0x00000001;
  48. CHECKREG r2, 0x00000000;
  49. CHECKREG r3, 0x0008FFF1;
  50. CHECKREG r4, 0x0567F9AB;
  51. CHECKREG r5, 0x0033FFD5;
  52. CHECKREG r6, 0x00020000;
  53. CHECKREG r7, 0x00910000;
  54. pass