branch.pcgs 792 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # frv parallel testcase for branching
  2. # mach: fr500 fr550 frv
  3. .include "testutils.inc"
  4. start
  5. .global branch
  6. branch: ; All insns in VLIW execute
  7. setlos.p 1,gr1
  8. setlos 0,gr2
  9. setlos.p 0,gr3
  10. bra ok1
  11. setlos.p 2,gr2
  12. setlos 3,gr3
  13. fail
  14. ok1:
  15. test_gr_immed 1,gr1
  16. test_gr_immed 0,gr2
  17. test_gr_immed 0,gr3
  18. ; 1st branch is taken
  19. bra.p ok5
  20. bra ok4
  21. bra.p ok3
  22. bra ok2
  23. fail
  24. ok2:
  25. fail
  26. ok3:
  27. fail
  28. ok4:
  29. fail
  30. ok5:
  31. ; 1st true branch is taken
  32. set_icc 0x4 1
  33. bne.p icc1,1,ok6
  34. blt icc1,1,ok7
  35. beq.p icc1,1,ok9
  36. ble icc1,1,ok8
  37. fail
  38. ok6:
  39. fail
  40. ok7:
  41. fail
  42. ok8:
  43. fail
  44. ok9:
  45. ; combination of the above
  46. set_icc 0x4 1
  47. setlos.p 4,gr4
  48. setlos.p 0,gr5
  49. bne.p icc1,1,oka
  50. beq icc1,1,okb
  51. setlos 5,gr5
  52. fail
  53. oka:
  54. fail
  55. okb:
  56. test_gr_immed 4,gr4
  57. test_gr_immed 0,gr5
  58. pass