Register locations can change throughout an EBB. Make sure the emit_inst() function considers this when encoding instructions and update the register diversion tracker.
16 lines
554 B
Plaintext
16 lines
554 B
Plaintext
; Test tracking of register moves.
|
|
test binemit
|
|
isa riscv
|
|
|
|
function %regmoves(i32 link [%x1]) -> i32 link [%x1] {
|
|
ebb0(v9999: i32):
|
|
[-,%x10] v1 = iconst.i32 1
|
|
[-,%x7] v2 = iadd_imm v1, 1000 ; bin: 3e850393
|
|
regmove v1, %x10 -> %x11 ; bin: 00050593
|
|
[-,%x7] v3 = iadd_imm v1, 1000 ; bin: 3e858393
|
|
regmove v1, %x11 -> %x10 ; bin: 00058513
|
|
[-,%x7] v4 = iadd_imm v1, 1000 ; bin: 3e850393
|
|
|
|
return v9999
|
|
}
|