xref: /qemu/tests/tcg/xtensa/test_extui.S (revision a2e67072)
1*a2e67072SMax Filippov#include "macros.inc"
27be9d0e6SMax Filippov
37be9d0e6SMax Filippovtest_suite extui
47be9d0e6SMax Filippov
57be9d0e6SMax Filippov.macro test_extui v, shiftimm, maskimm
67be9d0e6SMax Filippov    .if     \shiftimm + \maskimm <= 32
77be9d0e6SMax Filippov    movi    a2, \v
87be9d0e6SMax Filippov    extui   a3, a2, \shiftimm, \maskimm
97be9d0e6SMax Filippov    movi    a4, ((\v) >> (\shiftimm)) & ((1 << (\maskimm)) - 1)
107be9d0e6SMax Filippov    assert  eq, a3, a4
117be9d0e6SMax Filippov    .endif
127be9d0e6SMax Filippov.endm
137be9d0e6SMax Filippov
147be9d0e6SMax Filippovtest extui
157be9d0e6SMax Filippov    .set    shiftimm, 0
167be9d0e6SMax Filippov    .rept   32
177be9d0e6SMax Filippov    .set    maskimm, 1
187be9d0e6SMax Filippov    .rept   16
197be9d0e6SMax Filippov    test_extui 0xc8df1370, shiftimm, maskimm
207be9d0e6SMax Filippov    .set    maskimm, maskimm + 1
217be9d0e6SMax Filippov    .endr
227be9d0e6SMax Filippov    .set    shiftimm, shiftimm + 1
237be9d0e6SMax Filippov    .endr
247be9d0e6SMax Filippovtest_end
257be9d0e6SMax Filippov
267be9d0e6SMax Filippovtest_suite_end
27