For the test_300 unit test, the gold trace is:
tbuffer_load_format_x v9, v0, s[0:3], s6 offen offset:29 format:[BUF_DATA_FORMAT_32,BUF_NUM_FORMAT_UNORM] // 0000001C: E820101D 06000900
t0: V9<=(1)(-2037788549,-5.184e-35f) t1: V9<=(1)(-203778854 ...
Just from the instruction offset of 29, the final address should be something larger or equal to 29 but the gold trace says it is 1.
The RTL corresponding to the address calculation looks correct:
assign out_temp = `BASE_VALUE + scalar_source_b + imm_value0 + (off_en ? {12'b0, vector_source_b} : 48'd0) + (`STRIDE_VALUE * (tid + (idx_en ? vector_source_b : 48'b0)));
And this matches with the equation given in the ISA in 8.1.1.
How is the gold trace able to calculate the address as 1? Is the gold trace wrong here?
For the
test_300unit test, the gold trace is:Just from the instruction offset of 29, the final address should be something larger or equal to 29 but the gold trace says it is 1.
The RTL corresponding to the address calculation looks correct:
And this matches with the equation given in the ISA in 8.1.1.
How is the gold trace able to calculate the address as 1? Is the gold trace wrong here?