From 27d42336aa473314cc40732868942ec12aba57d4 Mon Sep 17 00:00:00 2001 From: uslstenn Date: Wed, 24 Jun 2026 18:49:47 +0300 Subject: [PATCH 1/6] Typing & Copy-paste refactoring --- src/uScope/converter.py | 27 ++++++++++----------------- src/uScope/main.py | 6 ++---- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/src/uScope/converter.py b/src/uScope/converter.py index 033982f..2a62699 100644 --- a/src/uScope/converter.py +++ b/src/uScope/converter.py @@ -1,4 +1,4 @@ -from typing import Dict, List, Tuple +from typing import Dict, List, Optional, Tuple from tqdm import tqdm @@ -37,7 +37,7 @@ def __init__( self.stage_managers: Dict[PipelineStage, StageLaneManager] = {} self.func_units_managers: Dict[str, StageLaneManager] = {} - self.store_lane_manager: StageLaneManager = None + self.store_lane_manager: Optional[StageLaneManager] = None def convert(self, progress: bool = True) -> List[dict]: self._add_metadata() @@ -123,13 +123,14 @@ def _assign_lane_for_func_units( ) -> Tuple[int, int]: return self.func_units_managers[unit_name].assign_lane(start_time, end_time) + def _cname_for(self, instr: Instruction) -> str: + if instr.is_squashed: + return self.config.get_squashed_cname() + return self.config.get_color_for_instr(instr) + def _add_pipeline_stage_events(self, instr: Instruction): mnemonic = instr.mnemonic - cname = ( - self.config.get_squashed_cname() - if instr.is_squashed - else self.config.get_color_for_instr(instr) - ) + cname = self._cname_for(instr) active = [ (st, instr.stages[st]) @@ -181,11 +182,7 @@ def _add_execution_unit_events(self, instr: Instruction): pid, tid = self._assign_lane_for_func_units(unit, issue, complete) dur = complete - issue - cname = ( - self.config.get_squashed_cname() - if instr.is_squashed - else self.config.get_color_for_instr(instr) - ) + cname = self._cname_for(instr) self.duration_events.append( DurationEvent( @@ -242,11 +239,7 @@ def _add_store_completion_event(self, instr: Instruction): _, tid = self.store_lane_manager.assign_lane(retire_tick, store_tick) dur = store_tick - retire_tick - cname = ( - self.config.get_squashed_cname() - if instr.is_squashed - else self.config.get_color_for_instr(instr) - ) + cname = self._cname_for(instr) self.duration_events.append( DurationEvent( diff --git a/src/uScope/main.py b/src/uScope/main.py index a3776fd..053b95a 100644 --- a/src/uScope/main.py +++ b/src/uScope/main.py @@ -22,6 +22,7 @@ def main(): ) parser.add_argument( "--input-file", '-i', + required=True, help="Path to the input trace file (e.g., trace.out)" ) parser.add_argument( @@ -103,10 +104,7 @@ def main(): if args.output_file: output_file = args.output_file else: - if input_file.endswith('.out'): - output_file = input_file[:-4] + '.json' - else: - output_file = input_file + '.json' + output_file = str(Path(input_file).with_suffix('.json')) if args.gzip and not output_file.endswith('.gz'): output_file += '.gz' From 89a33ab3efc892260529127decd674a510453fa7 Mon Sep 17 00:00:00 2001 From: uslstenn Date: Thu, 25 Jun 2026 18:49:30 +0300 Subject: [PATCH 2/6] Colors updated Invalid cname was deleted --- src/uScope/configs/colors.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/uScope/configs/colors.json b/src/uScope/configs/colors.json index 58315c0..d8ca7f9 100644 --- a/src/uScope/configs/colors.json +++ b/src/uScope/configs/colors.json @@ -8,8 +8,7 @@ "IntMultDiv": [ "rail_animation", "cq_build_attempt_failed", - "terrible", - "head_dump_child_node_arrow" + "terrible" ], "FP_ALU": [ "good", @@ -38,7 +37,6 @@ "Matrix_Unit": [ "bad", "terrible", - "head_dump_child_node_arrow", "thread_state_uninterruptible" ], "System_Unit": [ From 15fed72f01d1c4622f3c7d4278c0a4b9fac8583a Mon Sep 17 00:00:00 2001 From: uslstenn Date: Thu, 25 Jun 2026 18:56:19 +0300 Subject: [PATCH 3/6] Introduced multicore tracings * CoreId was proposed to support mutlicore execution * Output was updated --- src/uScope/O3.py | 1 + src/uScope/main.py | 74 ++++++++++++++++++++++++++++++++------------ src/uScope/parser.py | 20 +++++++----- 3 files changed, 68 insertions(+), 27 deletions(-) diff --git a/src/uScope/O3.py b/src/uScope/O3.py index 2297f63..9e0db5c 100644 --- a/src/uScope/O3.py +++ b/src/uScope/O3.py @@ -36,6 +36,7 @@ class Instruction: stages: Dict[PipelineStage, int] stage_order: List[PipelineStage] store_tick: int = 0 + core_id: int = 0 @property def mnemonic(self): diff --git a/src/uScope/main.py b/src/uScope/main.py index 053b95a..c69d9a9 100644 --- a/src/uScope/main.py +++ b/src/uScope/main.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import argparse +import os import sys import json import logging @@ -16,6 +17,32 @@ logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") logger = logging.getLogger(__name__) + +def _make_output_path(output_dir: str, input_stem: str, core_id: int, gzip_enabled: bool) -> str: + output = str(Path(output_dir) / f"{input_stem}_{core_id}.json") + if gzip_enabled: + output += '.gz' + return output + + +def _convert_and_dump( + trace_parser: PipeViewParser, + config, + args, + output_file: str, + progress: bool, +): + converter = ChromeTracingConverter( + trace_parser, config, + args.exclude_exec, args.exclude_pipeline, + args.only_committed, args.store_completions, + ) + events = converter.convert(progress=progress) + logger.info(f"Writing {output_file}") + with (gzip.open if args.gzip else open)(output_file, 'wt', encoding='utf-8') as f: + json.dump(events, f, indent=2) + return len(events) + def main(): parser = argparse.ArgumentParser( description="Convert gem5 O3PipeView trace to Perfetto / Chrome Tracing JSON format." @@ -26,8 +53,9 @@ def main(): help="Path to the input trace file (e.g., trace.out)" ) parser.add_argument( - "--output-file", "-o", - help="Output JSON file name. If not specified, it will be derived from input_file" + "--output-dir", "-o", + default=".", + help="Output directory for JSON traces. Defaults to current directory." ) parser.add_argument( "--config-path", "-c", @@ -100,19 +128,14 @@ def main(): logging.getLogger().setLevel(logging.WARNING) input_file = args.input_file - - if args.output_file: - output_file = args.output_file - else: - output_file = str(Path(input_file).with_suffix('.json')) - - if args.gzip and not output_file.endswith('.gz'): - output_file += '.gz' + output_dir = args.output_dir try: if not Path(input_file).exists(): raise FileNotFoundError(f"Input file not found: {input_file}") + os.makedirs(output_dir, exist_ok=True) + logger.info(f"Parsing {input_file}") trace_parser = PipeViewParser() trace_parser.parse_file(input_file) @@ -121,18 +144,29 @@ def main(): raise ValueError("No instructions with valid timestamps found") logger.info(f"Loading configuration from {args.config_path if args.config_path else 'default location'}") - config = load_config(args.config_path) - converter = ChromeTracingConverter(trace_parser, config, args.exclude_exec, args.exclude_pipeline, args.only_committed, args.store_completions) - events = converter.convert(progress=not args.quiet) - - logger.info(f"Writing {output_file}") - - with (gzip.open if args.gzip else open)(output_file, 'wt', encoding='utf-8') as f: - json.dump(events, f, indent=2) - - logger.info(f"Total events: {len(events)}") + all_instructions = trace_parser.instructions + core_ids = trace_parser.get_core_ids() + input_stem = Path(input_file).stem + progress = not args.quiet + + if len(core_ids) == 1: + core_id = core_ids[0] + core_output = _make_output_path(output_dir, input_stem, core_id, args.gzip) + total = _convert_and_dump(trace_parser, config, args, core_output, progress) + logger.info(f"Total events: {total}") + else: + logger.info(f"Detected {len(core_ids)} cores: {core_ids}") + for core_id in core_ids: + trace_parser.instructions = { + seq: instr + for seq, instr in all_instructions.items() + if instr.core_id == core_id + } + core_output = _make_output_path(output_dir, input_stem, core_id, args.gzip) + total = _convert_and_dump(trace_parser, config, args, core_output, progress) + logger.info(f"Core {core_id}: {total} events") except ValueError as e: logging.error(f"Value error: {e}") diff --git a/src/uScope/parser.py b/src/uScope/parser.py index dd128fa..96b0354 100644 --- a/src/uScope/parser.py +++ b/src/uScope/parser.py @@ -6,6 +6,7 @@ class PipeViewParser: def __init__(self): self.instructions = {} + self.current_core_id = None self.current_seq_num = None self.current_instr = None self.stage_map = {f"{stage}": stage for stage in PipelineStage.order()} @@ -18,21 +19,24 @@ def parse_file(self, filename: str): self.parse_line(line) if self.current_instr is not None: - self.instructions[self.current_seq_num] = self.current_instr + self.instructions[(self.current_core_id, self.current_seq_num)] = self.current_instr self.instructions = { - seq: instr - for seq, instr in self.instructions.items() + key: instr + for key, instr in self.instructions.items() if any(tick > 0 for tick in instr.stages.values()) } + def get_core_ids(self): + return sorted(set(instr.core_id for instr in self.instructions.values())) + @staticmethod def _parse_fetch_line(rest: str): parts = rest.split(":", 5) if len(parts) != 6: return None - tick_str, pc, _, seq_str, disasm, opclass = parts - return int(tick_str), pc, int(seq_str), disasm.strip(), opclass.strip() + tick_str, pc, core_id_str, seq_str, disasm, opclass = parts + return int(tick_str), pc, int(core_id_str), int(seq_str), disasm.strip(), opclass.strip() @staticmethod def _parse_stage_line(rest: str): @@ -62,11 +66,12 @@ def parse_line(self, line: str): result = self._parse_fetch_line(rest[6:]) if result is None: return - tick, pc, seq_num, disasm, opclass = result + tick, pc, core_id, seq_num, disasm, opclass = result if self.current_instr is not None: - self.instructions[self.current_seq_num] = self.current_instr + self.instructions[(self.current_core_id, self.current_seq_num)] = self.current_instr + self.current_core_id = core_id self.current_seq_num = seq_num self.current_instr = Instruction( seq_num=seq_num, @@ -75,6 +80,7 @@ def parse_line(self, line: str): opclass=opclass, stages={}, stage_order=[], + core_id=core_id, ) self.current_instr.stages[PipelineStage.FETCH] = tick From c18aa3c76cffe3977ddeaa5239235cc4f6b3d14e Mon Sep 17 00:00:00 2001 From: uslstenn Date: Thu, 25 Jun 2026 18:56:31 +0300 Subject: [PATCH 4/6] Tests were updated --- tests/conftest.py | 2 +- tests/test_main.py | 6 ++++-- tests/test_parser.py | 6 +++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index fdd1bed..7dd6425 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -40,7 +40,7 @@ def minimal_parser() -> PipeViewParser: PipelineStage.RETIRE, ], ) - parser.instructions = {1: instr} + parser.instructions = {(0, 1): instr} return parser diff --git a/tests/test_main.py b/tests/test_main.py index 810b461..b707689 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -20,15 +20,17 @@ def test_main_basic(tmp_path: Path, monkeypatch): """ input_file.write_text(content) - output_file = tmp_path.joinpath("output.json") + output_dir = tmp_path.joinpath("output") + output_dir.mkdir() monkeypatch.setattr( sys, "argv", - ["uscope", "--input-file", str(input_file), "--output-file", str(output_file)], + ["uscope", "--input-file", str(input_file), "--output-dir", str(output_dir)], ) main() + output_file = output_dir.joinpath("trace_0.json") assert output_file.exists() data = json.loads(output_file.read_text()) assert isinstance(data, list) diff --git a/tests/test_parser.py b/tests/test_parser.py index dffc25e..4cad3e9 100644 --- a/tests/test_parser.py +++ b/tests/test_parser.py @@ -36,11 +36,11 @@ def assert_instruction( assert instr.stages[stage] == expected, f"Stage {stage} value mismatch" -def assert_instructions(parser, expected, stage_order): +def assert_instructions(parser, expected, stage_order, core_id=0): assert len(parser.instructions) == len(expected) for seq_num, (pc, disasm, opclass, stages) in expected.items(): assert_instruction( - instr=parser.instructions[seq_num], + instr=parser.instructions[(core_id, seq_num)], seq_num=seq_num, pc=pc, disasm=disasm, @@ -168,7 +168,7 @@ def test_parse_missing_stages(trace_with_missing_stages): ), } assert_instructions(parser, expected, expected_order) - assert PipelineStage.DISPATCH not in parser.instructions[1].stages + assert PipelineStage.DISPATCH not in parser.instructions[(0, 1)].stages def test_parse_empty_lines(trace_with_empty_lines): From e0886ca9f1a461dba97ce379da49ac1de9ecc9de Mon Sep 17 00:00:00 2001 From: uslstenn Date: Fri, 26 Jun 2026 14:54:14 +0300 Subject: [PATCH 5/6] [example,infra] Reference example was updated with new UI --- .github/workflows/python-ci.yml | 6 +- examples/reference/reference.S | 2 + examples/reference/reference.json.gz | Bin 22620 -> 0 bytes examples/reference/reference.out | 1413 ++++++++++++------------ examples/reference/reference_0.json.gz | Bin 0 -> 22504 bytes 5 files changed, 736 insertions(+), 685 deletions(-) delete mode 100644 examples/reference/reference.json.gz create mode 100644 examples/reference/reference_0.json.gz diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml index bd6aef1..d8b48d7 100644 --- a/.github/workflows/python-ci.yml +++ b/.github/workflows/python-ci.yml @@ -36,12 +36,12 @@ jobs: - name: Run conversion on reference example run: | uScope --input-file examples/reference/reference.out \ - --output-file reference.json + --output-dir res/ - name: Compare output with reference run: | - gunzip -c examples/reference/reference.json.gz > expected.json - diff -u reference.json expected.json + gunzip -c examples/reference/reference_0.json.gz > expected.json + diff -u reference_0.json expected.json - name: Upload coverage to Codecov uses: codecov/codecov-action@v4 diff --git a/examples/reference/reference.S b/examples/reference/reference.S index e5283c2..ebf5e69 100644 --- a/examples/reference/reference.S +++ b/examples/reference/reference.S @@ -1,3 +1,5 @@ +.option norvc + .section .data .align 4 int_a: .word 10, 20 diff --git a/examples/reference/reference.json.gz b/examples/reference/reference.json.gz deleted file mode 100644 index 83b6b6bdc726694341d3594821e078d2341efaee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22620 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

&v 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 QT#yoRQ?2f3rce<55A_$^1ONa4 diff --git a/examples/reference/reference.out b/examples/reference/reference.out index f17a05a..fad7124 100644 --- a/examples/reference/reference.out +++ b/examples/reference/reference.out @@ -12,7 +12,7 @@ O3PipeView:dispatch:80500 O3PipeView:issue:80500 O3PipeView:complete:81000 O3PipeView:retire:137000:store:0 -O3PipeView:fetch:78500:0x00010148:0:2:ld a0, 548(a0):MemRead +O3PipeView:fetch:78500:0x00010148:0:2:ld a0, 532(a0):MemRead O3PipeView:decode:79000 O3PipeView:rename:79500 O3PipeView:dispatch:80500 @@ -33,14 +33,14 @@ O3PipeView:dispatch:80500 O3PipeView:issue:80500 O3PipeView:complete:81000 O3PipeView:retire:141500:store:0 -O3PipeView:fetch:78500:0x00010150:0:4:ld a1, 548(a1):MemRead +O3PipeView:fetch:78500:0x00010150:0:4:ld a1, 532(a1):MemRead O3PipeView:decode:79000 O3PipeView:rename:79500 O3PipeView:dispatch:80500 O3PipeView:issue:81000 O3PipeView:complete:81500 O3PipeView:retire:141000:store:0 -O3PipeView:fetch:78500:0x00010158:0:6:ld a2, 548(a2):MemRead +O3PipeView:fetch:78500:0x00010158:0:6:ld a2, 532(a2):MemRead O3PipeView:decode:79000 O3PipeView:rename:79500 O3PipeView:dispatch:80500 @@ -54,1284 +54,1333 @@ O3PipeView:dispatch:80500 O3PipeView:issue:136000 O3PipeView:complete:136500 O3PipeView:retire:189000:store:0 -O3PipeView:fetch:79000:0x00010164:0:9:lw a5, 0(a1):MemRead +O3PipeView:fetch:79000:0x0001017c:0:15:addi a0, a0, 4:IntAlu O3PipeView:decode:79500 O3PipeView:rename:80000 O3PipeView:dispatch:81000 +O3PipeView:issue:136000 +O3PipeView:complete:136500 +O3PipeView:retire:194000:store:0 +O3PipeView:fetch:130000:0x00010180:0:16:addi a1, a1, 4:IntAlu +O3PipeView:decode:130500 +O3PipeView:rename:131000 +O3PipeView:dispatch:132000 O3PipeView:issue:140000 O3PipeView:complete:140500 -O3PipeView:retire:193500:store:0 -O3PipeView:fetch:130000:0x00010194:0:21:auipc a0, 1:IntAlu +O3PipeView:retire:194000:store:0 +O3PipeView:fetch:130000:0x00010184:0:17:addi a2, a2, 4:IntAlu +O3PipeView:decode:130500 +O3PipeView:rename:131000 +O3PipeView:dispatch:132000 +O3PipeView:issue:140500 +O3PipeView:complete:141000 +O3PipeView:retire:194000:store:0 +O3PipeView:fetch:130000:0x00010190:0:20:auipc a0, 1:IntAlu O3PipeView:decode:130500 O3PipeView:rename:131000 O3PipeView:dispatch:132000 O3PipeView:issue:132000 O3PipeView:complete:132500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:130000:0x00010198:0:22:ld a0, 468(a0):MemRead +O3PipeView:fetch:130000:0x00010194:0:21:ld a0, 456(a0):MemRead O3PipeView:decode:130500 O3PipeView:rename:131000 O3PipeView:dispatch:132000 O3PipeView:issue:132500 O3PipeView:complete:133000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:130000:0x0001019c:0:23:auipc a1, 1:IntAlu +O3PipeView:fetch:130000:0x00010198:0:22:auipc a1, 1:IntAlu O3PipeView:decode:130500 O3PipeView:rename:131000 O3PipeView:dispatch:132000 O3PipeView:issue:132000 O3PipeView:complete:132500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:130500:0x000101a0:0:24:ld a1, 468(a1):MemRead +O3PipeView:fetch:130000:0x0001019c:0:23:ld a1, 456(a1):MemRead +O3PipeView:decode:130500 +O3PipeView:rename:131000 +O3PipeView:dispatch:132000 +O3PipeView:issue:132500 +O3PipeView:complete:133000 +O3PipeView:retire:0:store:0 +O3PipeView:fetch:130500:0x000101a0:0:24:addi a3, zero, 2:IntAlu O3PipeView:decode:131000 O3PipeView:rename:131500 O3PipeView:dispatch:132500 O3PipeView:issue:132500 O3PipeView:complete:133000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:130500:0x000101a4:0:25:addi a3, zero, 2:IntAlu +O3PipeView:fetch:130500:0x000101a4:0:25:lw a4, 0(a0):MemRead O3PipeView:decode:131000 O3PipeView:rename:131500 O3PipeView:dispatch:132500 -O3PipeView:issue:132500 -O3PipeView:complete:133000 +O3PipeView:issue:0 +O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:130500:0x000101a8:0:26:lw a4, 0(a0):MemRead +O3PipeView:fetch:130500:0x000101a8:0:26:lw a5, 0(a1):MemRead O3PipeView:decode:131000 O3PipeView:rename:131500 O3PipeView:dispatch:132500 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:130500:0x000101ac:0:27:lw a5, 0(a1):MemRead +O3PipeView:fetch:130500:0x000101ac:0:27:mul a6, a4, a5:IntMult O3PipeView:decode:131000 O3PipeView:rename:131500 O3PipeView:dispatch:132500 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:130500:0x000101b0:0:28:mul a6, a4, a5:IntMult +O3PipeView:fetch:130500:0x000101b0:0:28:div a7, a4, a5:IntDiv O3PipeView:decode:131000 O3PipeView:rename:131500 O3PipeView:dispatch:132500 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:130500:0x000101b4:0:29:div a7, a4, a5:IntDiv +O3PipeView:fetch:130500:0x000101b4:0:29:sw s2, 0(a2):MemWrite O3PipeView:decode:131000 O3PipeView:rename:131500 O3PipeView:dispatch:132500 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:130500:0x000101b8:0:30:add s2, a6, a7:IntAlu +O3PipeView:fetch:130500:0x000101b8:0:30:addi a0, a0, 4:IntAlu O3PipeView:decode:131000 O3PipeView:rename:131500 O3PipeView:dispatch:132500 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:130500:0x000101bc:0:31:sw s2, 0(a2):MemWrite +O3PipeView:fetch:130500:0x000101bc:0:31:addi a1, a1, 4:IntAlu O3PipeView:decode:131000 O3PipeView:rename:131500 O3PipeView:dispatch:132500 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:130000:0x00010180:0:16:addi a0, a0, 4:IntAlu -O3PipeView:decode:130500 -O3PipeView:rename:131000 -O3PipeView:dispatch:132000 -O3PipeView:issue:136000 -O3PipeView:complete:136500 -O3PipeView:retire:195000:store:0 -O3PipeView:fetch:130000:0x00010184:0:17:addi a1, a1, 4:IntAlu -O3PipeView:decode:130500 -O3PipeView:rename:131000 -O3PipeView:dispatch:132000 -O3PipeView:issue:140000 -O3PipeView:complete:140500 -O3PipeView:retire:195000:store:0 -O3PipeView:fetch:130000:0x00010188:0:18:addi a2, a2, 4:IntAlu -O3PipeView:decode:130500 -O3PipeView:rename:131000 -O3PipeView:dispatch:132000 -O3PipeView:issue:140500 -O3PipeView:complete:141000 -O3PipeView:retire:195000:store:0 -O3PipeView:fetch:130000:0x0001018c:0:19:addi a3, a3, -1:IntAlu +O3PipeView:fetch:130000:0x00010188:0:18:addi a3, a3, -1:IntAlu O3PipeView:decode:130500 O3PipeView:rename:131000 O3PipeView:dispatch:132000 O3PipeView:issue:132000 O3PipeView:complete:132500 -O3PipeView:retire:195000:store:0 -O3PipeView:fetch:130000:0x00010190:0:20:bne a3, zero, -48:IntAlu +O3PipeView:retire:194500:store:0 +O3PipeView:fetch:130000:0x0001018c:0:19:bne a3, zero, -44:IntAlu O3PipeView:decode:130500 O3PipeView:rename:131000 O3PipeView:dispatch:132000 O3PipeView:issue:132500 O3PipeView:complete:133000 -O3PipeView:retire:195000:store:0 +O3PipeView:retire:194500:store:0 O3PipeView:fetch:135500:0x00010160:0:32:lw a4, 0(a0):MemRead O3PipeView:decode:136000 O3PipeView:rename:136500 O3PipeView:dispatch:137500 O3PipeView:issue:137500 O3PipeView:complete:138000 -O3PipeView:retire:195000:store:0 +O3PipeView:retire:194500:store:0 O3PipeView:fetch:135500:0x00010164:0:33:lw a5, 0(a1):MemRead O3PipeView:decode:136000 O3PipeView:rename:136500 O3PipeView:dispatch:137500 O3PipeView:issue:140500 O3PipeView:complete:141000 -O3PipeView:retire:195000:store:0 -O3PipeView:fetch:79000:0x00010174:0:13:or s3, a4, a5:IntAlu -O3PipeView:decode:79500 -O3PipeView:rename:80000 -O3PipeView:dispatch:81000 -O3PipeView:issue:192500 -O3PipeView:complete:193000 -O3PipeView:retire:194000:store:0 -O3PipeView:fetch:79000:0x00010170:0:12:and s2, a4, a5:IntAlu -O3PipeView:decode:79500 -O3PipeView:rename:80000 -O3PipeView:dispatch:81000 -O3PipeView:issue:192500 -O3PipeView:complete:193000 -O3PipeView:retire:194000:store:0 -O3PipeView:fetch:79000:0x0001016c:0:11:sub a7, a4, a5:IntAlu -O3PipeView:decode:79500 -O3PipeView:rename:80000 -O3PipeView:dispatch:81000 -O3PipeView:issue:192500 -O3PipeView:complete:193000 -O3PipeView:retire:194000:store:0 -O3PipeView:fetch:79000:0x00010168:0:10:add a6, a4, a5:IntAlu +O3PipeView:retire:194500:store:0 +O3PipeView:fetch:79000:0x00010164:0:9:lw a5, 0(a1):MemRead O3PipeView:decode:79500 O3PipeView:rename:80000 O3PipeView:dispatch:81000 -O3PipeView:issue:192500 -O3PipeView:complete:193000 -O3PipeView:retire:194000:store:0 -O3PipeView:fetch:135500:0x00010168:0:34:add a6, a4, a5:IntAlu -O3PipeView:decode:136000 -O3PipeView:rename:136500 -O3PipeView:dispatch:137500 -O3PipeView:issue:192500 -O3PipeView:complete:193000 -O3PipeView:retire:195500:store:0 -O3PipeView:fetch:135500:0x0001016c:0:35:sub a7, a4, a5:IntAlu +O3PipeView:issue:140000 +O3PipeView:complete:140500 +O3PipeView:retire:193500:store:0 +O3PipeView:fetch:135500:0x0001017c:0:39:addi a0, a0, 4:IntAlu O3PipeView:decode:136000 O3PipeView:rename:136500 O3PipeView:dispatch:137500 -O3PipeView:issue:192500 -O3PipeView:complete:193000 -O3PipeView:retire:195500:store:0 -O3PipeView:fetch:136500:0x00010180:0:40:addi a0, a0, 4:IntAlu -O3PipeView:decode:137000 -O3PipeView:rename:137500 -O3PipeView:dispatch:138500 -O3PipeView:issue:138500 -O3PipeView:complete:139000 -O3PipeView:retire:195500:store:0 -O3PipeView:fetch:136500:0x00010184:0:41:addi a1, a1, 4:IntAlu +O3PipeView:issue:137500 +O3PipeView:complete:138000 +O3PipeView:retire:195000:store:0 +O3PipeView:fetch:136500:0x00010180:0:40:addi a1, a1, 4:IntAlu O3PipeView:decode:137000 O3PipeView:rename:137500 O3PipeView:dispatch:138500 O3PipeView:issue:140500 O3PipeView:complete:141000 -O3PipeView:retire:195500:store:0 -O3PipeView:fetch:135500:0x00010178:0:38:add s4, a6, a7:IntAlu -O3PipeView:decode:136000 -O3PipeView:rename:136500 -O3PipeView:dispatch:137500 -O3PipeView:issue:193000 -O3PipeView:complete:193500 -O3PipeView:retire:195500:store:0 -O3PipeView:fetch:135500:0x00010174:0:37:or s3, a4, a5:IntAlu -O3PipeView:decode:136000 -O3PipeView:rename:136500 -O3PipeView:dispatch:137500 -O3PipeView:issue:193000 -O3PipeView:complete:193500 -O3PipeView:retire:195500:store:0 -O3PipeView:fetch:135500:0x00010170:0:36:and s2, a4, a5:IntAlu -O3PipeView:decode:136000 -O3PipeView:rename:136500 -O3PipeView:dispatch:137500 -O3PipeView:issue:193000 -O3PipeView:complete:193500 -O3PipeView:retire:195500:store:0 -O3PipeView:fetch:79000:0x00010178:0:14:add s4, a6, a7:IntAlu -O3PipeView:decode:79500 -O3PipeView:rename:80000 -O3PipeView:dispatch:81000 -O3PipeView:issue:193000 -O3PipeView:complete:193500 -O3PipeView:retire:194500:store:0 -O3PipeView:fetch:136500:0x00010188:0:42:addi a2, a2, 4:IntAlu +O3PipeView:retire:195000:store:0 +O3PipeView:fetch:136500:0x00010184:0:41:addi a2, a2, 4:IntAlu O3PipeView:decode:137000 O3PipeView:rename:137500 O3PipeView:dispatch:138500 O3PipeView:issue:141000 O3PipeView:complete:141500 -O3PipeView:retire:196000:store:0 -O3PipeView:fetch:136500:0x0001018c:0:43:addi a3, a3, -1:IntAlu +O3PipeView:retire:195000:store:0 +O3PipeView:fetch:136500:0x00010188:0:42:addi a3, a3, -1:IntAlu O3PipeView:decode:137000 O3PipeView:rename:137500 O3PipeView:dispatch:138500 O3PipeView:issue:138500 O3PipeView:complete:139000 -O3PipeView:retire:196000:store:0 -O3PipeView:fetch:136500:0x00010190:0:44:bne a3, zero, -48:IntAlu +O3PipeView:retire:195000:store:0 +O3PipeView:fetch:136500:0x0001018c:0:43:bne a3, zero, -44:IntAlu O3PipeView:decode:137000 O3PipeView:rename:137500 O3PipeView:dispatch:138500 O3PipeView:issue:139000 O3PipeView:complete:139500 -O3PipeView:retire:196000:store:0 -O3PipeView:fetch:136500:0x00010194:0:45:auipc a0, 1:IntAlu +O3PipeView:retire:195000:store:0 +O3PipeView:fetch:136500:0x00010190:0:44:auipc a0, 1:IntAlu O3PipeView:decode:137000 O3PipeView:rename:137500 O3PipeView:dispatch:138500 O3PipeView:issue:138500 O3PipeView:complete:139000 -O3PipeView:retire:196000:store:0 -O3PipeView:fetch:136500:0x00010198:0:46:ld a0, 468(a0):MemRead +O3PipeView:retire:195000:store:0 +O3PipeView:fetch:136500:0x00010194:0:45:ld a0, 456(a0):MemRead O3PipeView:decode:137000 O3PipeView:rename:137500 O3PipeView:dispatch:138500 O3PipeView:issue:139000 O3PipeView:complete:139500 -O3PipeView:retire:196000:store:0 -O3PipeView:fetch:136500:0x0001019c:0:47:auipc a1, 1:IntAlu +O3PipeView:retire:195000:store:0 +O3PipeView:fetch:135500:0x0001016c:0:35:sub a7, a4, a5:IntAlu +O3PipeView:decode:136000 +O3PipeView:rename:136500 +O3PipeView:dispatch:137500 +O3PipeView:issue:192500 +O3PipeView:complete:193000 +O3PipeView:retire:194500:store:0 +O3PipeView:fetch:135500:0x00010168:0:34:add a6, a4, a5:IntAlu +O3PipeView:decode:136000 +O3PipeView:rename:136500 +O3PipeView:dispatch:137500 +O3PipeView:issue:192500 +O3PipeView:complete:193000 +O3PipeView:retire:194500:store:0 +O3PipeView:fetch:79000:0x00010174:0:13:or s3, a4, a5:IntAlu +O3PipeView:decode:79500 +O3PipeView:rename:80000 +O3PipeView:dispatch:81000 +O3PipeView:issue:192500 +O3PipeView:complete:193000 +O3PipeView:retire:194000:store:0 +O3PipeView:fetch:79000:0x00010170:0:12:and s2, a4, a5:IntAlu +O3PipeView:decode:79500 +O3PipeView:rename:80000 +O3PipeView:dispatch:81000 +O3PipeView:issue:192500 +O3PipeView:complete:193000 +O3PipeView:retire:194000:store:0 +O3PipeView:fetch:79000:0x0001016c:0:11:sub a7, a4, a5:IntAlu +O3PipeView:decode:79500 +O3PipeView:rename:80000 +O3PipeView:dispatch:81000 +O3PipeView:issue:192500 +O3PipeView:complete:193000 +O3PipeView:retire:194000:store:0 +O3PipeView:fetch:79000:0x00010168:0:10:add a6, a4, a5:IntAlu +O3PipeView:decode:79500 +O3PipeView:rename:80000 +O3PipeView:dispatch:81000 +O3PipeView:issue:192500 +O3PipeView:complete:193000 +O3PipeView:retire:194000:store:0 +O3PipeView:fetch:136500:0x00010198:0:46:auipc a1, 1:IntAlu O3PipeView:decode:137000 O3PipeView:rename:137500 O3PipeView:dispatch:138500 O3PipeView:issue:138500 O3PipeView:complete:139000 -O3PipeView:retire:196000:store:0 -O3PipeView:fetch:137000:0x000101a0:0:48:ld a1, 468(a1):MemRead -O3PipeView:decode:137500 -O3PipeView:rename:138000 -O3PipeView:dispatch:139000 +O3PipeView:retire:195500:store:0 +O3PipeView:fetch:136500:0x0001019c:0:47:ld a1, 456(a1):MemRead +O3PipeView:decode:137000 +O3PipeView:rename:137500 +O3PipeView:dispatch:138500 O3PipeView:issue:139000 O3PipeView:complete:139500 -O3PipeView:retire:196000:store:0 -O3PipeView:fetch:137000:0x000101a4:0:49:addi a3, zero, 2:IntAlu +O3PipeView:retire:195500:store:0 +O3PipeView:fetch:137000:0x000101a0:0:48:addi a3, zero, 2:IntAlu O3PipeView:decode:137500 O3PipeView:rename:138000 O3PipeView:dispatch:139000 O3PipeView:issue:139000 O3PipeView:complete:139500 -O3PipeView:retire:196000:store:0 -O3PipeView:fetch:79000:0x0001017c:0:15:sw s4, 0(a2):MemWrite -O3PipeView:decode:79500 -O3PipeView:rename:80000 -O3PipeView:dispatch:81000 -O3PipeView:issue:193500 -O3PipeView:complete:194000 -O3PipeView:retire:195000:store:197000 -O3PipeView:fetch:137000:0x000101a8:0:50:lw a4, 0(a0):MemRead +O3PipeView:retire:195500:store:0 +O3PipeView:fetch:137000:0x000101a4:0:49:lw a4, 0(a0):MemRead O3PipeView:decode:137500 O3PipeView:rename:138000 O3PipeView:dispatch:139000 O3PipeView:issue:140500 O3PipeView:complete:141000 -O3PipeView:retire:196500:store:0 -O3PipeView:fetch:137000:0x000101ac:0:51:lw a5, 0(a1):MemRead +O3PipeView:retire:195500:store:0 +O3PipeView:fetch:137000:0x000101a8:0:50:lw a5, 0(a1):MemRead O3PipeView:decode:137500 O3PipeView:rename:138000 O3PipeView:dispatch:139000 O3PipeView:issue:141000 O3PipeView:complete:141500 -O3PipeView:retire:196500:store:0 -O3PipeView:fetch:137000:0x000101b0:0:52:mul a6, a4, a5:IntMult +O3PipeView:retire:195500:store:0 +O3PipeView:fetch:135500:0x00010174:0:37:or s3, a4, a5:IntAlu +O3PipeView:decode:136000 +O3PipeView:rename:136500 +O3PipeView:dispatch:137500 +O3PipeView:issue:193000 +O3PipeView:complete:193500 +O3PipeView:retire:194500:store:0 +O3PipeView:fetch:135500:0x00010170:0:36:and s2, a4, a5:IntAlu +O3PipeView:decode:136000 +O3PipeView:rename:136500 +O3PipeView:dispatch:137500 +O3PipeView:issue:193000 +O3PipeView:complete:193500 +O3PipeView:retire:194500:store:0 +O3PipeView:fetch:137000:0x000101ac:0:51:mul a6, a4, a5:IntMult O3PipeView:decode:137500 O3PipeView:rename:138000 O3PipeView:dispatch:139000 O3PipeView:issue:192500 O3PipeView:complete:194000 -O3PipeView:retire:196500:store:0 -O3PipeView:fetch:135500:0x0001017c:0:39:sw s4, 0(a2):MemWrite -O3PipeView:decode:136000 -O3PipeView:rename:136500 -O3PipeView:dispatch:137500 -O3PipeView:issue:193500 -O3PipeView:complete:194000 -O3PipeView:retire:195500:store:197500 -O3PipeView:fetch:182500:0x000101d0:0:60:auipc a0, 1:IntAlu +O3PipeView:retire:195500:store:0 +O3PipeView:fetch:182500:0x000101c8:0:58:auipc a0, 1:IntAlu O3PipeView:decode:183000 O3PipeView:rename:183500 O3PipeView:dispatch:184500 O3PipeView:issue:184500 O3PipeView:complete:185000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:182500:0x000101d8:0:62:auipc a1, 1:IntAlu +O3PipeView:fetch:182500:0x000101cc:0:59:ld a0, 424(a0):MemRead +O3PipeView:decode:183000 +O3PipeView:rename:183500 +O3PipeView:dispatch:184500 +O3PipeView:issue:185000 +O3PipeView:complete:185500 +O3PipeView:retire:0:store:0 +O3PipeView:fetch:182500:0x000101d0:0:60:auipc a1, 1:IntAlu O3PipeView:decode:183000 O3PipeView:rename:183500 O3PipeView:dispatch:184500 O3PipeView:issue:184500 O3PipeView:complete:185000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:183000:0x000101e0:0:64:auipc a2, 1:IntAlu +O3PipeView:fetch:182500:0x000101d4:0:61:ld a1, 424(a1):MemRead +O3PipeView:decode:183000 +O3PipeView:rename:183500 +O3PipeView:dispatch:184500 +O3PipeView:issue:185000 +O3PipeView:complete:185500 +O3PipeView:retire:0:store:0 +O3PipeView:fetch:182500:0x000101d8:0:62:auipc a2, 1:IntAlu +O3PipeView:decode:183000 +O3PipeView:rename:183500 +O3PipeView:dispatch:184500 +O3PipeView:issue:184500 +O3PipeView:complete:185000 +O3PipeView:retire:0:store:0 +O3PipeView:fetch:183000:0x000101e0:0:64:addi a3, zero, 2:IntAlu O3PipeView:decode:183500 O3PipeView:rename:184000 O3PipeView:dispatch:185000 O3PipeView:issue:185000 O3PipeView:complete:185500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:183000:0x000101e8:0:66:addi a3, zero, 2:IntAlu +O3PipeView:fetch:183000:0x000101e4:0:65:flw ft0, 0(a0):FloatMemRead O3PipeView:decode:183500 O3PipeView:rename:184000 O3PipeView:dispatch:185000 -O3PipeView:issue:185000 -O3PipeView:complete:185500 +O3PipeView:issue:0 +O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:183000:0x000101ec:0:67:flw ft0, 0(a0):FloatMemRead +O3PipeView:fetch:183000:0x000101e8:0:66:flw ft1, 0(a1):FloatMemRead O3PipeView:decode:183500 O3PipeView:rename:184000 O3PipeView:dispatch:185000 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:183000:0x000101f0:0:68:flw ft1, 0(a1):FloatMemRead +O3PipeView:fetch:183000:0x000101ec:0:67:fadd_s ft2, ft0, ft1:FloatAdd O3PipeView:decode:183500 O3PipeView:rename:184000 O3PipeView:dispatch:185000 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:183000:0x000101f4:0:69:fadd_s ft2, ft0, ft1:FloatAdd +O3PipeView:fetch:183000:0x000101f0:0:68:fsub_s ft3, ft0, ft1:FloatAdd O3PipeView:decode:183500 O3PipeView:rename:184000 O3PipeView:dispatch:185000 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:183000:0x000101f8:0:70:fsub_s ft3, ft0, ft1:FloatAdd +O3PipeView:fetch:183000:0x000101f4:0:69:feq_s a4, ft0, ft1:FloatCmp O3PipeView:decode:183500 O3PipeView:rename:184000 O3PipeView:dispatch:185000 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:183000:0x000101fc:0:71:feq_s a4, ft0, ft1:FloatCmp +O3PipeView:fetch:183000:0x000101f8:0:70:fsw ft2, 0(a2):FloatMemWrite O3PipeView:decode:183500 O3PipeView:rename:184000 O3PipeView:dispatch:185000 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:182500:0x000101c0:0:56:addi a0, a0, 4:IntAlu -O3PipeView:decode:183000 -O3PipeView:rename:183500 -O3PipeView:dispatch:184500 -O3PipeView:issue:184500 -O3PipeView:complete:185000 -O3PipeView:retire:204500:store:0 -O3PipeView:fetch:182500:0x000101c4:0:57:addi a1, a1, 4:IntAlu -O3PipeView:decode:183000 -O3PipeView:rename:183500 -O3PipeView:dispatch:184500 -O3PipeView:issue:184500 -O3PipeView:complete:185000 -O3PipeView:retire:204500:store:0 -O3PipeView:fetch:182500:0x000101c8:0:58:addi a3, a3, -1:IntAlu +O3PipeView:fetch:183000:0x000101fc:0:71:addi a2, a2, 4:IntAlu +O3PipeView:decode:183500 +O3PipeView:rename:184000 +O3PipeView:dispatch:185000 +O3PipeView:issue:0 +O3PipeView:complete:0 +O3PipeView:retire:0:store:0 +O3PipeView:fetch:137000:0x000101b8:0:54:addi a0, a0, 4:IntAlu +O3PipeView:decode:137500 +O3PipeView:rename:138000 +O3PipeView:dispatch:139000 +O3PipeView:issue:140500 +O3PipeView:complete:141000 +O3PipeView:retire:203000:store:0 +O3PipeView:fetch:137000:0x000101bc:0:55:addi a1, a1, 4:IntAlu +O3PipeView:decode:137500 +O3PipeView:rename:138000 +O3PipeView:dispatch:139000 +O3PipeView:issue:141000 +O3PipeView:complete:141500 +O3PipeView:retire:203000:store:0 +O3PipeView:fetch:182500:0x000101c0:0:56:addi a3, a3, -1:IntAlu O3PipeView:decode:183000 O3PipeView:rename:183500 O3PipeView:dispatch:184500 O3PipeView:issue:184500 O3PipeView:complete:185000 -O3PipeView:retire:204500:store:0 -O3PipeView:fetch:182500:0x000101cc:0:59:bne a3, zero, -36:IntAlu +O3PipeView:retire:203000:store:0 +O3PipeView:fetch:182500:0x000101c4:0:57:bne a3, zero, -32:IntAlu O3PipeView:decode:183000 O3PipeView:rename:183500 O3PipeView:dispatch:184500 O3PipeView:issue:185000 O3PipeView:complete:185500 -O3PipeView:retire:204500:store:0 -O3PipeView:fetch:188000:0x000101a8:0:72:lw a4, 0(a0):MemRead +O3PipeView:retire:203000:store:0 +O3PipeView:fetch:188000:0x000101a4:0:72:lw a4, 0(a0):MemRead O3PipeView:decode:188500 O3PipeView:rename:189000 O3PipeView:dispatch:190000 O3PipeView:issue:190000 O3PipeView:complete:190500 -O3PipeView:retire:204500:store:0 -O3PipeView:fetch:188000:0x000101ac:0:73:lw a5, 0(a1):MemRead +O3PipeView:retire:203000:store:0 +O3PipeView:fetch:188000:0x000101a8:0:73:lw a5, 0(a1):MemRead O3PipeView:decode:188500 O3PipeView:rename:189000 O3PipeView:dispatch:190000 O3PipeView:issue:190000 O3PipeView:complete:190500 -O3PipeView:retire:204500:store:0 -O3PipeView:fetch:188000:0x000101b0:0:74:mul a6, a4, a5:IntMult +O3PipeView:retire:203000:store:0 +O3PipeView:fetch:188000:0x000101ac:0:74:mul a6, a4, a5:IntMult O3PipeView:decode:188500 O3PipeView:rename:189000 O3PipeView:dispatch:190000 O3PipeView:issue:193500 O3PipeView:complete:195000 -O3PipeView:retire:204500:store:0 -O3PipeView:fetch:137000:0x000101b4:0:53:div a7, a4, a5:IntDiv -O3PipeView:decode:137500 -O3PipeView:rename:138000 -O3PipeView:dispatch:139000 -O3PipeView:issue:192500 -O3PipeView:complete:202500 O3PipeView:retire:203500:store:0 -O3PipeView:fetch:137000:0x000101b8:0:54:add s2, a6, a7:IntAlu -O3PipeView:decode:137500 -O3PipeView:rename:138000 -O3PipeView:dispatch:139000 -O3PipeView:issue:202500 -O3PipeView:complete:203000 -O3PipeView:retire:204000:store:0 -O3PipeView:fetch:137000:0x000101bc:0:55:sw s2, 0(a2):MemWrite +O3PipeView:fetch:137000:0x000101b0:0:52:div a7, a4, a5:IntDiv O3PipeView:decode:137500 O3PipeView:rename:138000 O3PipeView:dispatch:139000 -O3PipeView:issue:203000 -O3PipeView:complete:203500 -O3PipeView:retire:204500:store:206500 -O3PipeView:fetch:189000:0x000101c0:0:78:addi a0, a0, 4:IntAlu +O3PipeView:issue:192500 +O3PipeView:complete:202000 +O3PipeView:retire:203000:store:0 +O3PipeView:fetch:188000:0x000101b8:0:77:addi a0, a0, 4:IntAlu +O3PipeView:decode:188500 +O3PipeView:rename:189000 +O3PipeView:dispatch:190000 +O3PipeView:issue:190000 +O3PipeView:complete:190500 +O3PipeView:retire:205000:store:0 +O3PipeView:fetch:188000:0x000101bc:0:78:addi a1, a1, 4:IntAlu +O3PipeView:decode:188500 +O3PipeView:rename:189000 +O3PipeView:dispatch:190000 +O3PipeView:issue:190000 +O3PipeView:complete:190500 +O3PipeView:retire:205000:store:0 +O3PipeView:fetch:189000:0x000101c0:0:79:addi a3, a3, -1:IntAlu O3PipeView:decode:189500 O3PipeView:rename:190000 O3PipeView:dispatch:191000 O3PipeView:issue:191000 O3PipeView:complete:191500 -O3PipeView:retire:206000:store:0 -O3PipeView:fetch:189000:0x000101c4:0:79:addi a1, a1, 4:IntAlu +O3PipeView:retire:205000:store:0 +O3PipeView:fetch:189000:0x000101c4:0:80:bne a3, zero, -32:IntAlu +O3PipeView:decode:189500 +O3PipeView:rename:190000 +O3PipeView:dispatch:191000 +O3PipeView:issue:191500 +O3PipeView:complete:192000 +O3PipeView:retire:205000:store:0 +O3PipeView:fetch:189000:0x000101c8:0:81:auipc a0, 1:IntAlu O3PipeView:decode:189500 O3PipeView:rename:190000 O3PipeView:dispatch:191000 O3PipeView:issue:191000 O3PipeView:complete:191500 -O3PipeView:retire:206000:store:0 -O3PipeView:fetch:189000:0x000101c8:0:80:addi a3, a3, -1:IntAlu +O3PipeView:retire:205000:store:0 +O3PipeView:fetch:189000:0x000101cc:0:82:ld a0, 424(a0):MemRead +O3PipeView:decode:189500 +O3PipeView:rename:190000 +O3PipeView:dispatch:191000 +O3PipeView:issue:191500 +O3PipeView:complete:192000 +O3PipeView:retire:205000:store:0 +O3PipeView:fetch:189000:0x000101d0:0:83:auipc a1, 1:IntAlu O3PipeView:decode:189500 O3PipeView:rename:190000 O3PipeView:dispatch:191000 O3PipeView:issue:191000 O3PipeView:complete:191500 -O3PipeView:retire:206000:store:0 -O3PipeView:fetch:189000:0x000101cc:0:81:bne a3, zero, -36:IntAlu +O3PipeView:retire:205500:store:0 +O3PipeView:fetch:189000:0x000101d4:0:84:ld a1, 424(a1):MemRead O3PipeView:decode:189500 O3PipeView:rename:190000 O3PipeView:dispatch:191000 O3PipeView:issue:191500 O3PipeView:complete:192000 -O3PipeView:retire:206000:store:0 -O3PipeView:fetch:189000:0x000101d0:0:82:auipc a0, 1:IntAlu +O3PipeView:retire:205500:store:0 +O3PipeView:fetch:189000:0x000101d8:0:85:auipc a2, 1:IntAlu O3PipeView:decode:189500 O3PipeView:rename:190000 O3PipeView:dispatch:191000 O3PipeView:issue:191000 O3PipeView:complete:191500 -O3PipeView:retire:206000:store:0 -O3PipeView:fetch:188000:0x000101b4:0:75:div a7, a4, a5:IntDiv +O3PipeView:retire:205500:store:0 +O3PipeView:fetch:188000:0x000101b0:0:75:div a7, a4, a5:IntDiv O3PipeView:decode:188500 O3PipeView:rename:189000 O3PipeView:dispatch:190000 O3PipeView:issue:194000 O3PipeView:complete:204000 O3PipeView:retire:205000:store:0 -O3PipeView:fetch:188000:0x000101b8:0:76:add s2, a6, a7:IntAlu -O3PipeView:decode:188500 -O3PipeView:rename:189000 -O3PipeView:dispatch:190000 -O3PipeView:issue:204000 -O3PipeView:complete:204500 -O3PipeView:retire:205500:store:0 -O3PipeView:fetch:188000:0x000101bc:0:77:sw s2, 0(a2):MemWrite -O3PipeView:decode:188500 -O3PipeView:rename:189000 -O3PipeView:dispatch:190000 -O3PipeView:issue:204500 -O3PipeView:complete:205000 -O3PipeView:retire:206000:store:208000 -O3PipeView:fetch:182500:0x000101d4:0:61:ld a0, 432(a0):MemRead +O3PipeView:fetch:182500:0x000101dc:0:63:ld a2, 424(a2):MemRead O3PipeView:decode:183000 O3PipeView:rename:183500 O3PipeView:dispatch:184500 O3PipeView:issue:185000 O3PipeView:complete:185500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:189000:0x000101d8:0:84:auipc a1, 1:IntAlu -O3PipeView:decode:189500 -O3PipeView:rename:190000 -O3PipeView:dispatch:191000 -O3PipeView:issue:191000 -O3PipeView:complete:191500 -O3PipeView:retire:241500:store:0 -O3PipeView:fetch:189000:0x000101d4:0:83:ld a0, 432(a0):MemRead -O3PipeView:decode:189500 -O3PipeView:rename:190000 -O3PipeView:dispatch:191000 -O3PipeView:issue:191500 -O3PipeView:complete:192000 -O3PipeView:retire:241500:store:0 -O3PipeView:fetch:182500:0x000101dc:0:63:ld a1, 432(a1):MemRead -O3PipeView:decode:183000 -O3PipeView:rename:183500 -O3PipeView:dispatch:184500 -O3PipeView:issue:185000 -O3PipeView:complete:185500 -O3PipeView:retire:0:store:0 -O3PipeView:fetch:183000:0x000101e4:0:65:ld a2, 432(a2):MemRead -O3PipeView:decode:183500 -O3PipeView:rename:184000 -O3PipeView:dispatch:185000 -O3PipeView:issue:185500 -O3PipeView:complete:186000 -O3PipeView:retire:0:store:0 -O3PipeView:fetch:189500:0x000101e0:0:86:auipc a2, 1:IntAlu +O3PipeView:fetch:189500:0x000101e0:0:87:addi a3, zero, 2:IntAlu O3PipeView:decode:190000 O3PipeView:rename:190500 O3PipeView:dispatch:191500 O3PipeView:issue:191500 O3PipeView:complete:192000 -O3PipeView:retire:245500:store:0 -O3PipeView:fetch:189500:0x000101e8:0:88:addi a3, zero, 2:IntAlu -O3PipeView:decode:190000 -O3PipeView:rename:190500 -O3PipeView:dispatch:191500 +O3PipeView:retire:241500:store:0 +O3PipeView:fetch:189000:0x000101dc:0:86:ld a2, 424(a2):MemRead +O3PipeView:decode:189500 +O3PipeView:rename:190000 +O3PipeView:dispatch:191000 O3PipeView:issue:191500 O3PipeView:complete:192000 -O3PipeView:retire:245500:store:0 -O3PipeView:fetch:189500:0x000101ec:0:89:flw ft0, 0(a0):FloatMemRead +O3PipeView:retire:241500:store:0 +O3PipeView:fetch:189500:0x000101e4:0:88:flw ft0, 0(a0):FloatMemRead O3PipeView:decode:190000 O3PipeView:rename:190500 O3PipeView:dispatch:191500 -O3PipeView:issue:240500 -O3PipeView:complete:241000 -O3PipeView:retire:245500:store:0 -O3PipeView:fetch:189500:0x000101e4:0:87:ld a2, 432(a2):MemRead +O3PipeView:issue:193500 +O3PipeView:complete:194000 +O3PipeView:retire:246000:store:0 +O3PipeView:fetch:79000:0x00010178:0:14:sw s4, 0(a2):MemWrite +O3PipeView:decode:79500 +O3PipeView:rename:80000 +O3PipeView:dispatch:81000 +O3PipeView:issue:140500 +O3PipeView:complete:141000 +O3PipeView:retire:194000:store:249001 +O3PipeView:fetch:135500:0x00010178:0:38:sw s4, 0(a2):MemWrite +O3PipeView:decode:136000 +O3PipeView:rename:136500 +O3PipeView:dispatch:137500 +O3PipeView:issue:141000 +O3PipeView:complete:141500 +O3PipeView:retire:195000:store:249002 +O3PipeView:fetch:137000:0x000101b4:0:53:sw s2, 0(a2):MemWrite +O3PipeView:decode:137500 +O3PipeView:rename:138000 +O3PipeView:dispatch:139000 +O3PipeView:issue:193500 +O3PipeView:complete:194000 +O3PipeView:retire:203000:store:249003 +O3PipeView:fetch:188000:0x000101b4:0:76:sw s2, 0(a2):MemWrite +O3PipeView:decode:188500 +O3PipeView:rename:189000 +O3PipeView:dispatch:190000 +O3PipeView:issue:193500 +O3PipeView:complete:194000 +O3PipeView:retire:205000:store:249004 +O3PipeView:fetch:189500:0x000101e8:0:89:flw ft1, 0(a1):FloatMemRead O3PipeView:decode:190000 -O3PipeView:rename:190500 -O3PipeView:dispatch:191500 -O3PipeView:issue:192000 -O3PipeView:complete:192500 -O3PipeView:retire:245500:store:0 -O3PipeView:fetch:189000:0x000101dc:0:85:ld a1, 432(a1):MemRead -O3PipeView:decode:189500 -O3PipeView:rename:190000 -O3PipeView:dispatch:191000 -O3PipeView:issue:191500 -O3PipeView:complete:192000 -O3PipeView:retire:245500:store:0 -O3PipeView:fetch:189500:0x000101f0:0:90:flw ft1, 0(a1):FloatMemRead +O3PipeView:rename:190500 +O3PipeView:dispatch:191500 +O3PipeView:issue:193500 +O3PipeView:complete:194000 +O3PipeView:retire:250000:store:0 +O3PipeView:fetch:189500:0x000101fc:0:94:addi a2, a2, 4:IntAlu O3PipeView:decode:190000 O3PipeView:rename:190500 O3PipeView:dispatch:191500 -O3PipeView:issue:244500 -O3PipeView:complete:245000 -O3PipeView:retire:247000:store:0 -O3PipeView:fetch:234500:0x00010204:0:95:addi a2, a2, 4:IntAlu +O3PipeView:issue:240500 +O3PipeView:complete:241000 +O3PipeView:retire:251500:store:0 +O3PipeView:fetch:234500:0x00010204:0:96:addi a2, a2, 4:IntAlu +O3PipeView:decode:235000 +O3PipeView:rename:235500 +O3PipeView:dispatch:236500 +O3PipeView:issue:241000 +O3PipeView:complete:241500 +O3PipeView:retire:251500:store:0 +O3PipeView:fetch:234500:0x00010208:0:97:addi a0, a0, 4:IntAlu O3PipeView:decode:235000 O3PipeView:rename:235500 O3PipeView:dispatch:236500 -O3PipeView:issue:244500 -O3PipeView:complete:245000 -O3PipeView:retire:248500:store:0 -O3PipeView:fetch:234500:0x0001020c:0:97:addi a2, a2, 4:IntAlu +O3PipeView:issue:236500 +O3PipeView:complete:237000 +O3PipeView:retire:251500:store:0 +O3PipeView:fetch:234500:0x0001020c:0:98:addi a1, a1, 4:IntAlu O3PipeView:decode:235000 O3PipeView:rename:235500 O3PipeView:dispatch:236500 -O3PipeView:issue:245000 -O3PipeView:complete:245500 -O3PipeView:retire:248500:store:0 -O3PipeView:fetch:234500:0x00010210:0:98:addi a0, a0, 4:IntAlu +O3PipeView:issue:236500 +O3PipeView:complete:237000 +O3PipeView:retire:251500:store:0 +O3PipeView:fetch:234500:0x00010210:0:99:addi a3, a3, -1:IntAlu O3PipeView:decode:235000 O3PipeView:rename:235500 O3PipeView:dispatch:236500 -O3PipeView:issue:240500 -O3PipeView:complete:241000 -O3PipeView:retire:248500:store:0 -O3PipeView:fetch:234500:0x00010214:0:99:addi a1, a1, 4:IntAlu +O3PipeView:issue:236500 +O3PipeView:complete:237000 +O3PipeView:retire:251500:store:0 +O3PipeView:fetch:234500:0x00010214:0:100:bne a3, zero, -48:IntAlu O3PipeView:decode:235000 O3PipeView:rename:235500 O3PipeView:dispatch:236500 -O3PipeView:issue:244500 -O3PipeView:complete:245000 -O3PipeView:retire:248500:store:0 -O3PipeView:fetch:234500:0x00010218:0:100:addi a3, a3, -1:IntAlu +O3PipeView:issue:237000 +O3PipeView:complete:237500 +O3PipeView:retire:251500:store:0 +O3PipeView:fetch:234500:0x00010218:0:101:auipc a0, 1:IntAlu O3PipeView:decode:235000 O3PipeView:rename:235500 O3PipeView:dispatch:236500 O3PipeView:issue:236500 O3PipeView:complete:237000 -O3PipeView:retire:248500:store:0 -O3PipeView:fetch:234500:0x0001021c:0:101:bne a3, zero, -48:IntAlu +O3PipeView:retire:0:store:0 +O3PipeView:fetch:234500:0x0001021c:0:102:ld a0, 344(a0):MemRead O3PipeView:decode:235000 O3PipeView:rename:235500 O3PipeView:dispatch:236500 O3PipeView:issue:237000 O3PipeView:complete:237500 -O3PipeView:retire:248500:store:0 -O3PipeView:fetch:235000:0x00010220:0:102:auipc a0, 1:IntAlu +O3PipeView:retire:0:store:0 +O3PipeView:fetch:235000:0x00010220:0:103:auipc a1, 1:IntAlu O3PipeView:decode:235500 O3PipeView:rename:236000 O3PipeView:dispatch:237000 O3PipeView:issue:237000 O3PipeView:complete:237500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:235000:0x00010224:0:103:ld a0, 352(a0):MemRead +O3PipeView:fetch:235000:0x00010224:0:104:ld a1, 344(a1):MemRead O3PipeView:decode:235500 O3PipeView:rename:236000 O3PipeView:dispatch:237000 O3PipeView:issue:237500 O3PipeView:complete:238000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:235000:0x00010228:0:104:auipc a1, 1:IntAlu +O3PipeView:fetch:235000:0x00010228:0:105:auipc a2, 1:IntAlu O3PipeView:decode:235500 O3PipeView:rename:236000 O3PipeView:dispatch:237000 O3PipeView:issue:237000 O3PipeView:complete:237500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:235000:0x0001022c:0:105:ld a1, 352(a1):MemRead +O3PipeView:fetch:235000:0x0001022c:0:106:ld a2, 344(a2):MemRead O3PipeView:decode:235500 O3PipeView:rename:236000 O3PipeView:dispatch:237000 O3PipeView:issue:237500 O3PipeView:complete:238000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:235000:0x00010230:0:106:auipc a2, 1:IntAlu +O3PipeView:fetch:235000:0x00010230:0:107:addi a3, zero, 2:IntAlu O3PipeView:decode:235500 O3PipeView:rename:236000 O3PipeView:dispatch:237000 O3PipeView:issue:237000 O3PipeView:complete:237500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:235000:0x00010234:0:107:ld a2, 352(a2):MemRead +O3PipeView:fetch:235000:0x00010234:0:108:flw ft0, 0(a0):FloatMemRead O3PipeView:decode:235500 O3PipeView:rename:236000 O3PipeView:dispatch:237000 -O3PipeView:issue:237500 -O3PipeView:complete:238000 +O3PipeView:issue:0 +O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:235000:0x00010238:0:108:addi a3, zero, 2:IntAlu +O3PipeView:fetch:235000:0x00010238:0:109:flw ft1, 0(a1):FloatMemRead O3PipeView:decode:235500 O3PipeView:rename:236000 O3PipeView:dispatch:237000 -O3PipeView:issue:237000 -O3PipeView:complete:237500 +O3PipeView:issue:0 +O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:235000:0x0001023c:0:109:flw ft0, 0(a0):FloatMemRead +O3PipeView:fetch:235000:0x0001023c:0:110:fmul_s ft2, ft0, ft1:FloatMult O3PipeView:decode:235500 O3PipeView:rename:236000 O3PipeView:dispatch:237000 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:240000:0x000101ec:0:110:flw ft0, 0(a0):FloatMemRead +O3PipeView:fetch:240000:0x000101e4:0:111:flw ft0, 0(a0):FloatMemRead O3PipeView:decode:240500 O3PipeView:rename:241000 O3PipeView:dispatch:242000 O3PipeView:issue:242000 O3PipeView:complete:242500 -O3PipeView:retire:249000:store:0 -O3PipeView:fetch:240000:0x000101f0:0:111:flw ft1, 0(a1):FloatMemRead +O3PipeView:retire:252000:store:0 +O3PipeView:fetch:240000:0x000101e8:0:112:flw ft1, 0(a1):FloatMemRead O3PipeView:decode:240500 O3PipeView:rename:241000 O3PipeView:dispatch:242000 -O3PipeView:issue:245000 -O3PipeView:complete:245500 -O3PipeView:retire:249000:store:0 -O3PipeView:fetch:241000:0x00010204:0:116:addi a2, a2, 4:IntAlu -O3PipeView:decode:241500 -O3PipeView:rename:242000 -O3PipeView:dispatch:243000 -O3PipeView:issue:245500 -O3PipeView:complete:246000 -O3PipeView:retire:249000:store:0 -O3PipeView:fetch:189500:0x000101f4:0:91:fadd_s ft2, ft0, ft1:FloatAdd +O3PipeView:issue:242000 +O3PipeView:complete:242500 +O3PipeView:retire:252000:store:0 +O3PipeView:fetch:240000:0x000101fc:0:117:addi a2, a2, 4:IntAlu +O3PipeView:decode:240500 +O3PipeView:rename:241000 +O3PipeView:dispatch:242000 +O3PipeView:issue:242000 +O3PipeView:complete:242500 +O3PipeView:retire:252000:store:0 +O3PipeView:fetch:189500:0x000101ec:0:90:fadd_s ft2, ft0, ft1:FloatAdd O3PipeView:decode:190000 O3PipeView:rename:190500 O3PipeView:dispatch:191500 -O3PipeView:issue:246000 -O3PipeView:complete:247000 -O3PipeView:retire:248000:store:0 -O3PipeView:fetch:189500:0x000101f8:0:92:fsub_s ft3, ft0, ft1:FloatAdd +O3PipeView:issue:249000 +O3PipeView:complete:250000 +O3PipeView:retire:251000:store:0 +O3PipeView:fetch:189500:0x000101f0:0:91:fsub_s ft3, ft0, ft1:FloatAdd O3PipeView:decode:190000 O3PipeView:rename:190500 O3PipeView:dispatch:191500 -O3PipeView:issue:246000 -O3PipeView:complete:247000 -O3PipeView:retire:248000:store:0 -O3PipeView:fetch:189500:0x000101fc:0:93:feq_s a4, ft0, ft1:FloatCmp +O3PipeView:issue:249000 +O3PipeView:complete:250000 +O3PipeView:retire:251000:store:0 +O3PipeView:fetch:189500:0x000101f4:0:92:feq_s a4, ft0, ft1:FloatCmp O3PipeView:decode:190000 O3PipeView:rename:190500 O3PipeView:dispatch:191500 -O3PipeView:issue:246000 -O3PipeView:complete:247000 -O3PipeView:retire:248000:store:0 -O3PipeView:fetch:241000:0x0001020c:0:118:addi a2, a2, 4:IntAlu +O3PipeView:issue:249000 +O3PipeView:complete:250000 +O3PipeView:retire:251000:store:0 +O3PipeView:fetch:241000:0x00010204:0:119:addi a2, a2, 4:IntAlu O3PipeView:decode:241500 O3PipeView:rename:242000 O3PipeView:dispatch:243000 -O3PipeView:issue:246000 -O3PipeView:complete:246500 -O3PipeView:retire:249500:store:0 -O3PipeView:fetch:241000:0x00010210:0:119:addi a0, a0, 4:IntAlu +O3PipeView:issue:243000 +O3PipeView:complete:243500 +O3PipeView:retire:252500:store:0 +O3PipeView:fetch:241000:0x00010208:0:120:addi a0, a0, 4:IntAlu O3PipeView:decode:241500 O3PipeView:rename:242000 O3PipeView:dispatch:243000 O3PipeView:issue:243000 O3PipeView:complete:243500 -O3PipeView:retire:249500:store:0 -O3PipeView:fetch:241000:0x00010214:0:120:addi a1, a1, 4:IntAlu +O3PipeView:retire:252500:store:0 +O3PipeView:fetch:241000:0x0001020c:0:121:addi a1, a1, 4:IntAlu O3PipeView:decode:241500 O3PipeView:rename:242000 O3PipeView:dispatch:243000 -O3PipeView:issue:245000 -O3PipeView:complete:245500 -O3PipeView:retire:249500:store:0 -O3PipeView:fetch:241000:0x00010218:0:121:addi a3, a3, -1:IntAlu +O3PipeView:issue:243000 +O3PipeView:complete:243500 +O3PipeView:retire:252500:store:0 +O3PipeView:fetch:241000:0x00010210:0:122:addi a3, a3, -1:IntAlu O3PipeView:decode:241500 O3PipeView:rename:242000 O3PipeView:dispatch:243000 O3PipeView:issue:243000 O3PipeView:complete:243500 -O3PipeView:retire:249500:store:0 -O3PipeView:fetch:241000:0x0001021c:0:122:bne a3, zero, -48:IntAlu +O3PipeView:retire:252500:store:0 +O3PipeView:fetch:241000:0x00010214:0:123:bne a3, zero, -48:IntAlu O3PipeView:decode:241500 O3PipeView:rename:242000 O3PipeView:dispatch:243000 O3PipeView:issue:243500 O3PipeView:complete:244000 -O3PipeView:retire:249500:store:0 -O3PipeView:fetch:241500:0x00010220:0:123:auipc a0, 1:IntAlu -O3PipeView:decode:242000 -O3PipeView:rename:242500 -O3PipeView:dispatch:243500 +O3PipeView:retire:252500:store:0 +O3PipeView:fetch:241000:0x00010218:0:124:auipc a0, 1:IntAlu +O3PipeView:decode:241500 +O3PipeView:rename:242000 +O3PipeView:dispatch:243000 +O3PipeView:issue:243000 +O3PipeView:complete:243500 +O3PipeView:retire:252500:store:0 +O3PipeView:fetch:241000:0x0001021c:0:125:ld a0, 344(a0):MemRead +O3PipeView:decode:241500 +O3PipeView:rename:242000 +O3PipeView:dispatch:243000 O3PipeView:issue:243500 O3PipeView:complete:244000 -O3PipeView:retire:249500:store:0 -O3PipeView:fetch:241500:0x00010224:0:124:ld a0, 352(a0):MemRead -O3PipeView:decode:242000 -O3PipeView:rename:242500 -O3PipeView:dispatch:243500 -O3PipeView:issue:244000 -O3PipeView:complete:244500 -O3PipeView:retire:249500:store:0 -O3PipeView:fetch:241500:0x00010228:0:125:auipc a1, 1:IntAlu +O3PipeView:retire:252500:store:0 +O3PipeView:fetch:241500:0x00010220:0:126:auipc a1, 1:IntAlu O3PipeView:decode:242000 O3PipeView:rename:242500 O3PipeView:dispatch:243500 O3PipeView:issue:243500 O3PipeView:complete:244000 -O3PipeView:retire:249500:store:0 -O3PipeView:fetch:240000:0x000101f4:0:112:fadd_s ft2, ft0, ft1:FloatAdd +O3PipeView:retire:252500:store:0 +O3PipeView:fetch:240000:0x000101ec:0:113:fadd_s ft2, ft0, ft1:FloatAdd O3PipeView:decode:240500 O3PipeView:rename:241000 O3PipeView:dispatch:242000 -O3PipeView:issue:246500 -O3PipeView:complete:247500 -O3PipeView:retire:249000:store:0 -O3PipeView:fetch:240000:0x000101f8:0:113:fsub_s ft3, ft0, ft1:FloatAdd +O3PipeView:issue:249500 +O3PipeView:complete:250500 +O3PipeView:retire:252000:store:0 +O3PipeView:fetch:240000:0x000101f0:0:114:fsub_s ft3, ft0, ft1:FloatAdd O3PipeView:decode:240500 O3PipeView:rename:241000 O3PipeView:dispatch:242000 -O3PipeView:issue:246500 -O3PipeView:complete:247500 -O3PipeView:retire:249000:store:0 -O3PipeView:fetch:240000:0x000101fc:0:114:feq_s a4, ft0, ft1:FloatCmp +O3PipeView:issue:249500 +O3PipeView:complete:250500 +O3PipeView:retire:252000:store:0 +O3PipeView:fetch:240000:0x000101f4:0:115:feq_s a4, ft0, ft1:FloatCmp O3PipeView:decode:240500 O3PipeView:rename:241000 O3PipeView:dispatch:242000 -O3PipeView:issue:246500 -O3PipeView:complete:247500 -O3PipeView:retire:249000:store:0 -O3PipeView:fetch:241500:0x0001022c:0:126:ld a1, 352(a1):MemRead +O3PipeView:issue:249500 +O3PipeView:complete:250500 +O3PipeView:retire:252000:store:0 +O3PipeView:fetch:189500:0x000101f8:0:93:fsw ft2, 0(a2):FloatMemWrite +O3PipeView:decode:190000 +O3PipeView:rename:190500 +O3PipeView:dispatch:191500 +O3PipeView:issue:250000 +O3PipeView:complete:250500 +O3PipeView:retire:251500:store:253500 +O3PipeView:fetch:241500:0x00010224:0:127:ld a1, 344(a1):MemRead O3PipeView:decode:242000 O3PipeView:rename:242500 O3PipeView:dispatch:243500 O3PipeView:issue:244000 O3PipeView:complete:244500 -O3PipeView:retire:250000:store:0 -O3PipeView:fetch:241500:0x00010230:0:127:auipc a2, 1:IntAlu +O3PipeView:retire:253000:store:0 +O3PipeView:fetch:241500:0x00010228:0:128:auipc a2, 1:IntAlu O3PipeView:decode:242000 O3PipeView:rename:242500 O3PipeView:dispatch:243500 O3PipeView:issue:243500 O3PipeView:complete:244000 -O3PipeView:retire:250000:store:0 -O3PipeView:fetch:241500:0x00010234:0:128:ld a2, 352(a2):MemRead +O3PipeView:retire:253000:store:0 +O3PipeView:fetch:241500:0x0001022c:0:129:ld a2, 344(a2):MemRead O3PipeView:decode:242000 O3PipeView:rename:242500 O3PipeView:dispatch:243500 O3PipeView:issue:244000 O3PipeView:complete:244500 -O3PipeView:retire:250000:store:0 -O3PipeView:fetch:241500:0x00010238:0:129:addi a3, zero, 2:IntAlu +O3PipeView:retire:253000:store:0 +O3PipeView:fetch:241500:0x00010230:0:130:addi a3, zero, 2:IntAlu O3PipeView:decode:242000 O3PipeView:rename:242500 O3PipeView:dispatch:243500 O3PipeView:issue:243500 O3PipeView:complete:244000 -O3PipeView:retire:250000:store:0 -O3PipeView:fetch:241500:0x0001023c:0:130:flw ft0, 0(a0):FloatMemRead +O3PipeView:retire:253000:store:0 +O3PipeView:fetch:241500:0x00010234:0:131:flw ft0, 0(a0):FloatMemRead O3PipeView:decode:242000 O3PipeView:rename:242500 O3PipeView:dispatch:243500 O3PipeView:issue:245500 O3PipeView:complete:246000 -O3PipeView:retire:250000:store:0 -O3PipeView:fetch:286500:0x00010240:0:131:flw ft1, 0(a1):FloatMemRead -O3PipeView:decode:287000 -O3PipeView:rename:287500 -O3PipeView:dispatch:288500 -O3PipeView:issue:288500 -O3PipeView:complete:289000 -O3PipeView:retire:291000:store:0 -O3PipeView:fetch:286500:0x00010244:0:132:fmul_s ft2, ft0, ft1:FloatMult -O3PipeView:decode:287000 -O3PipeView:rename:287500 -O3PipeView:dispatch:288500 -O3PipeView:issue:290000 -O3PipeView:complete:292000 -O3PipeView:retire:293000:store:0 -O3PipeView:fetch:286500:0x00010250:0:135:addi a2, a2, 4:IntAlu +O3PipeView:retire:253000:store:0 +O3PipeView:fetch:241500:0x00010238:0:132:flw ft1, 0(a1):FloatMemRead +O3PipeView:decode:242000 +O3PipeView:rename:242500 +O3PipeView:dispatch:243500 +O3PipeView:issue:245500 +O3PipeView:complete:246000 +O3PipeView:retire:253000:store:0 +O3PipeView:fetch:234500:0x00010200:0:95:fsw ft3, 0(a2):FloatMemWrite +O3PipeView:decode:235000 +O3PipeView:rename:235500 +O3PipeView:dispatch:236500 +O3PipeView:issue:250000 +O3PipeView:complete:250500 +O3PipeView:retire:251500:store:253501 +O3PipeView:fetch:240000:0x000101f8:0:116:fsw ft2, 0(a2):FloatMemWrite +O3PipeView:decode:240500 +O3PipeView:rename:241000 +O3PipeView:dispatch:242000 +O3PipeView:issue:250500 +O3PipeView:complete:251000 +O3PipeView:retire:252000:store:254000 +O3PipeView:fetch:241000:0x00010200:0:118:fsw ft3, 0(a2):FloatMemWrite +O3PipeView:decode:241500 +O3PipeView:rename:242000 +O3PipeView:dispatch:243000 +O3PipeView:issue:250500 +O3PipeView:complete:251000 +O3PipeView:retire:252000:store:254001 +O3PipeView:fetch:241500:0x0001023c:0:133:fmul_s ft2, ft0, ft1:FloatMult +O3PipeView:decode:242000 +O3PipeView:rename:242500 +O3PipeView:dispatch:243500 +O3PipeView:issue:250500 +O3PipeView:complete:252500 +O3PipeView:retire:253500:store:0 +O3PipeView:fetch:286500:0x00010248:0:136:addi a2, a2, 4:IntAlu O3PipeView:decode:287000 O3PipeView:rename:287500 O3PipeView:dispatch:288500 O3PipeView:issue:288500 O3PipeView:complete:289000 -O3PipeView:retire:297000:store:0 -O3PipeView:fetch:287000:0x0001026c:0:142:auipc a0, 1:IntAlu +O3PipeView:retire:295500:store:0 +O3PipeView:fetch:287000:0x00010264:0:143:auipc a0, 1:IntAlu O3PipeView:decode:287500 O3PipeView:rename:288000 O3PipeView:dispatch:289000 O3PipeView:issue:289000 O3PipeView:complete:289500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:287000:0x00010270:0:143:ld a0, 300(a0):MemRead +O3PipeView:fetch:287000:0x00010268:0:144:ld a0, 292(a0):MemRead O3PipeView:decode:287500 O3PipeView:rename:288000 O3PipeView:dispatch:289000 O3PipeView:issue:289500 O3PipeView:complete:290000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:287000:0x00010274:0:144:auipc a1, 1:IntAlu +O3PipeView:fetch:287000:0x0001026c:0:145:auipc a1, 1:IntAlu O3PipeView:decode:287500 O3PipeView:rename:288000 O3PipeView:dispatch:289000 O3PipeView:issue:289000 O3PipeView:complete:289500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:287000:0x00010278:0:145:ld a1, 300(a1):MemRead +O3PipeView:fetch:287000:0x00010270:0:146:ld a1, 292(a1):MemRead O3PipeView:decode:287500 O3PipeView:rename:288000 O3PipeView:dispatch:289000 O3PipeView:issue:289500 O3PipeView:complete:290000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:287000:0x0001027c:0:146:auipc a2, 1:IntAlu +O3PipeView:fetch:287000:0x00010274:0:147:auipc a2, 1:IntAlu O3PipeView:decode:287500 O3PipeView:rename:288000 O3PipeView:dispatch:289000 O3PipeView:issue:289000 O3PipeView:complete:289500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:286500:0x00010258:0:137:addi a2, a2, 4:IntAlu +O3PipeView:fetch:287000:0x00010278:0:148:ld a2, 292(a2):MemRead +O3PipeView:decode:287500 +O3PipeView:rename:288000 +O3PipeView:dispatch:289000 +O3PipeView:issue:289500 +O3PipeView:complete:290000 +O3PipeView:retire:0:store:0 +O3PipeView:fetch:287000:0x0001027c:0:149:addi t0, zero, 4:IntAlu +O3PipeView:decode:287500 +O3PipeView:rename:288000 +O3PipeView:dispatch:289000 +O3PipeView:issue:289000 +O3PipeView:complete:289500 +O3PipeView:retire:0:store:0 +O3PipeView:fetch:286500:0x00010250:0:138:addi a2, a2, 4:IntAlu O3PipeView:decode:287000 O3PipeView:rename:287500 O3PipeView:dispatch:288500 O3PipeView:issue:289000 O3PipeView:complete:289500 -O3PipeView:retire:297500:store:0 -O3PipeView:fetch:286500:0x0001025c:0:138:addi a0, a0, 4:IntAlu +O3PipeView:retire:296000:store:0 +O3PipeView:fetch:286500:0x00010254:0:139:addi a0, a0, 4:IntAlu O3PipeView:decode:287000 O3PipeView:rename:287500 O3PipeView:dispatch:288500 O3PipeView:issue:288500 O3PipeView:complete:289000 -O3PipeView:retire:297500:store:0 -O3PipeView:fetch:287000:0x00010260:0:139:addi a1, a1, 4:IntAlu -O3PipeView:decode:287500 -O3PipeView:rename:288000 -O3PipeView:dispatch:289000 -O3PipeView:issue:289000 -O3PipeView:complete:289500 -O3PipeView:retire:297500:store:0 -O3PipeView:fetch:287000:0x00010264:0:140:addi a3, a3, -1:IntAlu +O3PipeView:retire:296000:store:0 +O3PipeView:fetch:286500:0x00010258:0:140:addi a1, a1, 4:IntAlu +O3PipeView:decode:287000 +O3PipeView:rename:287500 +O3PipeView:dispatch:288500 +O3PipeView:issue:288500 +O3PipeView:complete:289000 +O3PipeView:retire:296000:store:0 +O3PipeView:fetch:286500:0x0001025c:0:141:addi a3, a3, -1:IntAlu +O3PipeView:decode:287000 +O3PipeView:rename:287500 +O3PipeView:dispatch:288500 +O3PipeView:issue:288500 +O3PipeView:complete:289000 +O3PipeView:retire:296000:store:0 +O3PipeView:fetch:287000:0x00010260:0:142:bne a3, zero, -44:IntAlu O3PipeView:decode:287500 O3PipeView:rename:288000 O3PipeView:dispatch:289000 O3PipeView:issue:289000 O3PipeView:complete:289500 -O3PipeView:retire:297500:store:0 -O3PipeView:fetch:287000:0x00010268:0:141:bne a3, zero, -44:IntAlu -O3PipeView:decode:287500 -O3PipeView:rename:288000 -O3PipeView:dispatch:289000 -O3PipeView:issue:289500 -O3PipeView:complete:290000 -O3PipeView:retire:297500:store:0 -O3PipeView:fetch:286500:0x00010248:0:133:fdiv_s ft3, ft0, ft1:FloatDiv +O3PipeView:retire:296000:store:0 +O3PipeView:fetch:286500:0x00010240:0:134:fdiv_s ft3, ft0, ft1:FloatDiv +O3PipeView:decode:287000 +O3PipeView:rename:287500 +O3PipeView:dispatch:288500 +O3PipeView:issue:288500 +O3PipeView:complete:294500 +O3PipeView:retire:295500:store:0 +O3PipeView:fetch:286500:0x00010244:0:135:fsw ft2, 0(a2):FloatMemWrite +O3PipeView:decode:287000 +O3PipeView:rename:287500 +O3PipeView:dispatch:288500 +O3PipeView:issue:288500 +O3PipeView:complete:289000 +O3PipeView:retire:295500:store:297503 +O3PipeView:fetch:286500:0x0001024c:0:137:fsw ft3, 0(a2):FloatMemWrite O3PipeView:decode:287000 O3PipeView:rename:287500 O3PipeView:dispatch:288500 -O3PipeView:issue:290000 -O3PipeView:complete:296000 -O3PipeView:retire:297000:store:0 -O3PipeView:fetch:292500:0x0001023c:0:147:flw ft0, 0(a0):FloatMemRead -O3PipeView:decode:293000 -O3PipeView:rename:293500 -O3PipeView:dispatch:294500 O3PipeView:issue:294500 O3PipeView:complete:295000 -O3PipeView:retire:297500:store:0 -O3PipeView:fetch:293500:0x00010240:0:148:flw ft1, 0(a1):FloatMemRead -O3PipeView:decode:294000 -O3PipeView:rename:294500 -O3PipeView:dispatch:295500 +O3PipeView:retire:296000:store:298000 +O3PipeView:fetch:292000:0x00010234:0:150:flw ft0, 0(a0):FloatMemRead +O3PipeView:decode:292500 +O3PipeView:rename:293000 +O3PipeView:dispatch:294000 +O3PipeView:issue:294000 +O3PipeView:complete:294500 +O3PipeView:retire:296500:store:0 +O3PipeView:fetch:292000:0x00010238:0:151:flw ft1, 0(a1):FloatMemRead +O3PipeView:decode:292500 +O3PipeView:rename:293000 +O3PipeView:dispatch:294000 +O3PipeView:issue:294000 +O3PipeView:complete:294500 +O3PipeView:retire:297000:store:0 +O3PipeView:fetch:292000:0x0001023c:0:152:fmul_s ft2, ft0, ft1:FloatMult +O3PipeView:decode:292500 +O3PipeView:rename:293000 +O3PipeView:dispatch:294000 +O3PipeView:issue:296000 +O3PipeView:complete:298000 +O3PipeView:retire:299000:store:0 +O3PipeView:fetch:293000:0x00010248:0:155:addi a2, a2, 4:IntAlu +O3PipeView:decode:293500 +O3PipeView:rename:294000 +O3PipeView:dispatch:295000 +O3PipeView:issue:295000 +O3PipeView:complete:295500 +O3PipeView:retire:303000:store:0 +O3PipeView:fetch:293000:0x00010250:0:157:addi a2, a2, 4:IntAlu +O3PipeView:decode:293500 +O3PipeView:rename:294000 +O3PipeView:dispatch:295000 O3PipeView:issue:295500 O3PipeView:complete:296000 -O3PipeView:retire:298000:store:0 -O3PipeView:fetch:234500:0x00010200:0:94:fsw ft2, 0(a2):FloatMemWrite -O3PipeView:decode:235000 -O3PipeView:rename:235500 -O3PipeView:dispatch:236500 -O3PipeView:issue:247000 -O3PipeView:complete:247500 -O3PipeView:retire:248500:store:301000 -O3PipeView:fetch:293500:0x00010244:0:149:fmul_s ft2, ft0, ft1:FloatMult +O3PipeView:retire:303500:store:0 +O3PipeView:fetch:293000:0x00010254:0:158:addi a0, a0, 4:IntAlu +O3PipeView:decode:293500 +O3PipeView:rename:294000 +O3PipeView:dispatch:295000 +O3PipeView:issue:295000 +O3PipeView:complete:295500 +O3PipeView:retire:303500:store:0 +O3PipeView:fetch:293000:0x00010258:0:159:addi a1, a1, 4:IntAlu +O3PipeView:decode:293500 +O3PipeView:rename:294000 +O3PipeView:dispatch:295000 +O3PipeView:issue:295000 +O3PipeView:complete:295500 +O3PipeView:retire:303500:store:0 +O3PipeView:fetch:293000:0x0001025c:0:160:addi a3, a3, -1:IntAlu +O3PipeView:decode:293500 +O3PipeView:rename:294000 +O3PipeView:dispatch:295000 +O3PipeView:issue:295000 +O3PipeView:complete:295500 +O3PipeView:retire:303500:store:0 +O3PipeView:fetch:293500:0x00010260:0:161:bne a3, zero, -44:IntAlu O3PipeView:decode:294000 O3PipeView:rename:294500 O3PipeView:dispatch:295500 -O3PipeView:issue:297000 -O3PipeView:complete:299000 -O3PipeView:retire:300000:store:0 -O3PipeView:fetch:293500:0x00010250:0:152:addi a2, a2, 4:IntAlu +O3PipeView:issue:295500 +O3PipeView:complete:296000 +O3PipeView:retire:303500:store:0 +O3PipeView:fetch:293500:0x00010264:0:162:auipc a0, 1:IntAlu O3PipeView:decode:294000 O3PipeView:rename:294500 O3PipeView:dispatch:295500 O3PipeView:issue:295500 O3PipeView:complete:296000 -O3PipeView:retire:304000:store:0 -O3PipeView:fetch:234500:0x00010208:0:96:fsw ft3, 0(a2):FloatMemWrite -O3PipeView:decode:235000 -O3PipeView:rename:235500 -O3PipeView:dispatch:236500 -O3PipeView:issue:247000 -O3PipeView:complete:247500 -O3PipeView:retire:248500:store:305000 -O3PipeView:fetch:293500:0x00010258:0:154:addi a2, a2, 4:IntAlu +O3PipeView:retire:303500:store:0 +O3PipeView:fetch:293500:0x00010268:0:163:ld a0, 292(a0):MemRead O3PipeView:decode:294000 O3PipeView:rename:294500 O3PipeView:dispatch:295500 O3PipeView:issue:296000 O3PipeView:complete:296500 -O3PipeView:retire:304500:store:0 -O3PipeView:fetch:293500:0x0001025c:0:155:addi a0, a0, 4:IntAlu +O3PipeView:retire:303500:store:0 +O3PipeView:fetch:293500:0x0001026c:0:164:auipc a1, 1:IntAlu O3PipeView:decode:294000 O3PipeView:rename:294500 O3PipeView:dispatch:295500 O3PipeView:issue:295500 O3PipeView:complete:296000 -O3PipeView:retire:304500:store:0 -O3PipeView:fetch:294000:0x00010260:0:156:addi a1, a1, 4:IntAlu -O3PipeView:decode:294500 -O3PipeView:rename:295000 -O3PipeView:dispatch:296000 -O3PipeView:issue:296000 -O3PipeView:complete:296500 -O3PipeView:retire:304500:store:0 -O3PipeView:fetch:294000:0x00010264:0:157:addi a3, a3, -1:IntAlu -O3PipeView:decode:294500 -O3PipeView:rename:295000 -O3PipeView:dispatch:296000 -O3PipeView:issue:296000 -O3PipeView:complete:296500 -O3PipeView:retire:304500:store:0 -O3PipeView:fetch:294000:0x00010268:0:158:bne a3, zero, -44:IntAlu -O3PipeView:decode:294500 -O3PipeView:rename:295000 -O3PipeView:dispatch:296000 -O3PipeView:issue:296500 -O3PipeView:complete:297000 -O3PipeView:retire:304500:store:0 -O3PipeView:fetch:294000:0x0001026c:0:159:auipc a0, 1:IntAlu -O3PipeView:decode:294500 -O3PipeView:rename:295000 -O3PipeView:dispatch:296000 -O3PipeView:issue:296000 -O3PipeView:complete:296500 -O3PipeView:retire:304500:store:0 -O3PipeView:fetch:294000:0x00010270:0:160:ld a0, 300(a0):MemRead -O3PipeView:decode:294500 -O3PipeView:rename:295000 -O3PipeView:dispatch:296000 -O3PipeView:issue:296500 -O3PipeView:complete:297000 -O3PipeView:retire:304500:store:0 -O3PipeView:fetch:241000:0x00010200:0:115:fsw ft2, 0(a2):FloatMemWrite -O3PipeView:decode:241500 -O3PipeView:rename:242000 -O3PipeView:dispatch:243000 -O3PipeView:issue:247500 -O3PipeView:complete:248000 -O3PipeView:retire:249000:store:305001 -O3PipeView:fetch:286500:0x0001024c:0:134:fsw ft2, 0(a2):FloatMemWrite -O3PipeView:decode:287000 -O3PipeView:rename:287500 -O3PipeView:dispatch:288500 -O3PipeView:issue:292000 -O3PipeView:complete:292500 -O3PipeView:retire:297000:store:301001 -O3PipeView:fetch:241000:0x00010208:0:117:fsw ft3, 0(a2):FloatMemWrite -O3PipeView:decode:241500 -O3PipeView:rename:242000 -O3PipeView:dispatch:243000 -O3PipeView:issue:247500 -O3PipeView:complete:248000 -O3PipeView:retire:249000:store:305002 -O3PipeView:fetch:286500:0x00010254:0:136:fsw ft3, 0(a2):FloatMemWrite -O3PipeView:decode:287000 -O3PipeView:rename:287500 -O3PipeView:dispatch:288500 -O3PipeView:issue:296000 -O3PipeView:complete:296500 -O3PipeView:retire:297500:store:305003 -O3PipeView:fetch:294000:0x00010274:0:161:auipc a1, 1:IntAlu -O3PipeView:decode:294500 -O3PipeView:rename:295000 -O3PipeView:dispatch:296000 -O3PipeView:issue:296000 -O3PipeView:complete:296500 -O3PipeView:retire:305000:store:0 -O3PipeView:fetch:294000:0x00010278:0:162:ld a1, 300(a1):MemRead -O3PipeView:decode:294500 -O3PipeView:rename:295000 -O3PipeView:dispatch:296000 -O3PipeView:issue:296500 -O3PipeView:complete:297000 -O3PipeView:retire:305000:store:0 -O3PipeView:fetch:294000:0x0001027c:0:163:auipc a2, 1:IntAlu -O3PipeView:decode:294500 -O3PipeView:rename:295000 -O3PipeView:dispatch:296000 +O3PipeView:retire:304000:store:0 +O3PipeView:fetch:293500:0x00010270:0:165:ld a1, 292(a1):MemRead +O3PipeView:decode:294000 +O3PipeView:rename:294500 +O3PipeView:dispatch:295500 O3PipeView:issue:296000 O3PipeView:complete:296500 -O3PipeView:retire:305000:store:0 -O3PipeView:fetch:293500:0x00010248:0:150:fdiv_s ft3, ft0, ft1:FloatDiv +O3PipeView:retire:304000:store:0 +O3PipeView:fetch:293500:0x00010274:0:166:auipc a2, 1:IntAlu O3PipeView:decode:294000 O3PipeView:rename:294500 O3PipeView:dispatch:295500 -O3PipeView:issue:297000 -O3PipeView:complete:303000 +O3PipeView:issue:295500 +O3PipeView:complete:296000 O3PipeView:retire:304000:store:0 -O3PipeView:fetch:293500:0x0001024c:0:151:fsw ft2, 0(a2):FloatMemWrite +O3PipeView:fetch:293500:0x00010278:0:167:ld a2, 292(a2):MemRead O3PipeView:decode:294000 O3PipeView:rename:294500 O3PipeView:dispatch:295500 -O3PipeView:issue:299000 -O3PipeView:complete:299500 -O3PipeView:retire:304000:store:306000 -O3PipeView:fetch:293500:0x00010254:0:153:fsw ft3, 0(a2):FloatMemWrite +O3PipeView:issue:296000 +O3PipeView:complete:296500 +O3PipeView:retire:304000:store:0 +O3PipeView:fetch:293500:0x0001027c:0:168:addi t0, zero, 4:IntAlu O3PipeView:decode:294000 O3PipeView:rename:294500 O3PipeView:dispatch:295500 -O3PipeView:issue:303000 -O3PipeView:complete:303500 -O3PipeView:retire:304500:store:306500 -O3PipeView:fetch:339500:0x000102be:0:182:c_addi4spn s0, sp, 0:IntAlu -O3PipeView:decode:340000 -O3PipeView:rename:340500 +O3PipeView:issue:295500 +O3PipeView:complete:296000 +O3PipeView:retire:304000:store:0 +O3PipeView:fetch:293000:0x00010240:0:153:fdiv_s ft3, ft0, ft1:FloatDiv +O3PipeView:decode:293500 +O3PipeView:rename:294000 +O3PipeView:dispatch:295000 +O3PipeView:issue:296000 +O3PipeView:complete:302000 +O3PipeView:retire:303000:store:0 +O3PipeView:fetch:293000:0x00010244:0:154:fsw ft2, 0(a2):FloatMemWrite +O3PipeView:decode:293500 +O3PipeView:rename:294000 +O3PipeView:dispatch:295000 +O3PipeView:issue:298000 +O3PipeView:complete:298500 +O3PipeView:retire:303000:store:305000 +O3PipeView:fetch:293000:0x0001024c:0:156:fsw ft3, 0(a2):FloatMemWrite +O3PipeView:decode:293500 +O3PipeView:rename:294000 +O3PipeView:dispatch:295000 +O3PipeView:issue:302000 +O3PipeView:complete:302500 +O3PipeView:retire:303500:store:305500 +O3PipeView:fetch:339000:0x000102b4:0:184:c_addi4spn s0, sp, 0:IntAlu +O3PipeView:decode:339500 +O3PipeView:rename:340000 O3PipeView:dispatch:0 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:339500:0x000102bc:0:181:c_addi4spn s0, sp, 0:IntAlu -O3PipeView:decode:340000 -O3PipeView:rename:340500 +O3PipeView:fetch:339000:0x000102b2:0:183:c_addi4spn s0, sp, 0:IntAlu +O3PipeView:decode:339500 +O3PipeView:rename:340000 O3PipeView:dispatch:0 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:339500:0x000102ba:0:180:c_addi4spn s0, sp, 0:IntAlu -O3PipeView:decode:340000 -O3PipeView:rename:340500 +O3PipeView:fetch:339000:0x000102b0:0:182:c_addi4spn s0, sp, 0:IntAlu +O3PipeView:decode:339500 +O3PipeView:rename:340000 O3PipeView:dispatch:0 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:339000:0x000102b8:0:179:c_addi4spn s0, sp, 0:IntAlu +O3PipeView:fetch:339000:0x000102ae:0:181:c_addi4spn s0, sp, 0:IntAlu O3PipeView:decode:339500 O3PipeView:rename:340000 O3PipeView:dispatch:0 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:339000:0x000102b6:0:178:c_addi4spn s0, sp, 0:IntAlu +O3PipeView:fetch:339000:0x000102ac:0:180:c_addi4spn s0, sp, 0:IntAlu O3PipeView:decode:339500 O3PipeView:rename:340000 O3PipeView:dispatch:0 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:339000:0x000102b4:0:177:c_addi4spn s0, sp, 0:IntAlu -O3PipeView:decode:339500 -O3PipeView:rename:340000 +O3PipeView:fetch:339500:0x000102be:0:189:c_addi4spn s0, sp, 0:IntAlu +O3PipeView:decode:340000 +O3PipeView:rename:340500 O3PipeView:dispatch:0 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:339000:0x000102a0:0:172:addi a2, a2, 32:IntAlu -O3PipeView:decode:339500 -O3PipeView:rename:340000 -O3PipeView:dispatch:341000 -O3PipeView:issue:342000 +O3PipeView:fetch:339500:0x000102bc:0:188:c_addi4spn s0, sp, 0:IntAlu +O3PipeView:decode:340000 +O3PipeView:rename:340500 +O3PipeView:dispatch:0 +O3PipeView:issue:0 +O3PipeView:complete:0 +O3PipeView:retire:0:store:0 +O3PipeView:fetch:339500:0x000102ba:0:187:c_addi4spn s0, sp, 0:IntAlu +O3PipeView:decode:340000 +O3PipeView:rename:340500 +O3PipeView:dispatch:0 +O3PipeView:issue:0 +O3PipeView:complete:0 +O3PipeView:retire:0:store:0 +O3PipeView:fetch:339500:0x000102b8:0:186:c_addi4spn s0, sp, 0:IntAlu +O3PipeView:decode:340000 +O3PipeView:rename:340500 +O3PipeView:dispatch:0 +O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:339000:0x000102b0:0:176:ecall:No_OpClass +O3PipeView:fetch:339500:0x000102b6:0:185:c_addi4spn s0, sp, 0:IntAlu +O3PipeView:decode:340000 +O3PipeView:rename:340500 +O3PipeView:dispatch:0 +O3PipeView:issue:0 +O3PipeView:complete:0 +O3PipeView:retire:0:store:0 +O3PipeView:fetch:339000:0x000102a8:0:179:ecall:No_OpClass O3PipeView:decode:339500 O3PipeView:rename:340000 O3PipeView:dispatch:341000 O3PipeView:issue:0 O3PipeView:complete:0 O3PipeView:retire:0:store:0 -O3PipeView:fetch:338500:0x0001029c:0:171:vnop:No_OpClass +O3PipeView:fetch:338500:0x0001029c:0:176:vnop:No_OpClass O3PipeView:decode:339000 O3PipeView:rename:339500 O3PipeView:dispatch:340500 O3PipeView:issue:340500 O3PipeView:complete:341000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:338500:0x00010298:0:170:vnop:No_OpClass +O3PipeView:fetch:338500:0x00010298:0:175:addi a2, a2, 32:IntAlu O3PipeView:decode:339000 O3PipeView:rename:339500 O3PipeView:dispatch:340500 O3PipeView:issue:340500 O3PipeView:complete:341000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:338500:0x00010294:0:169:vnop:No_OpClass +O3PipeView:fetch:338500:0x00010294:0:174:vnop:No_OpClass O3PipeView:decode:339000 O3PipeView:rename:339500 O3PipeView:dispatch:340500 O3PipeView:issue:340500 O3PipeView:complete:341000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:338500:0x00010290:0:168:vnop:No_OpClass +O3PipeView:fetch:338500:0x00010290:0:173:vnop:No_OpClass O3PipeView:decode:339000 O3PipeView:rename:339500 O3PipeView:dispatch:340500 O3PipeView:issue:340500 O3PipeView:complete:341000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:338500:0x0001028c:0:167:vnop:No_OpClass +O3PipeView:fetch:338500:0x0001028c:0:172:vnop:No_OpClass O3PipeView:decode:339000 O3PipeView:rename:339500 O3PipeView:dispatch:340500 O3PipeView:issue:340500 O3PipeView:complete:341000 O3PipeView:retire:0:store:0 -O3PipeView:fetch:338500:0x00010284:0:165:addi t0, zero, 4:IntAlu +O3PipeView:fetch:338500:0x00010288:0:171:vnop:No_OpClass +O3PipeView:decode:339000 +O3PipeView:rename:339500 +O3PipeView:dispatch:340500 +O3PipeView:issue:340500 +O3PipeView:complete:341000 +O3PipeView:retire:0:store:0 +O3PipeView:fetch:338500:0x00010284:0:170:vnop:No_OpClass O3PipeView:decode:339000 O3PipeView:rename:339500 O3PipeView:dispatch:340500 O3PipeView:issue:340500 O3PipeView:complete:341000 -O3PipeView:retire:343000:store:0 -O3PipeView:fetch:339000:0x000102ac:0:175:addi a7, zero, 93:IntAlu -O3PipeView:decode:339500 -O3PipeView:rename:340000 -O3PipeView:dispatch:341000 -O3PipeView:issue:341000 -O3PipeView:complete:341500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:339000:0x000102a8:0:174:addi a0, zero, 0:IntAlu +O3PipeView:fetch:338500:0x00010280:0:169:vsetvli t0, t0, e32, m1, ta, ma:SimdConfig +O3PipeView:decode:339000 +O3PipeView:rename:339500 +O3PipeView:dispatch:340500 +O3PipeView:issue:340500 +O3PipeView:complete:341000 +O3PipeView:retire:342500:store:0 +O3PipeView:fetch:339000:0x000102a4:0:178:addi a7, zero, 93:IntAlu O3PipeView:decode:339500 O3PipeView:rename:340000 O3PipeView:dispatch:341000 O3PipeView:issue:341000 O3PipeView:complete:341500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:339000:0x000102a4:0:173:vnop:No_OpClass +O3PipeView:fetch:339000:0x000102a0:0:177:addi a0, zero, 0:IntAlu O3PipeView:decode:339500 O3PipeView:rename:340000 O3PipeView:dispatch:341000 O3PipeView:issue:341000 O3PipeView:complete:341500 O3PipeView:retire:0:store:0 -O3PipeView:fetch:338500:0x00010288:0:166:vsetvli t0, t0, e32, m1, ta, ma:SimdConfig -O3PipeView:decode:339000 -O3PipeView:rename:339500 -O3PipeView:dispatch:340500 -O3PipeView:issue:341000 -O3PipeView:complete:341500 -O3PipeView:retire:343000:store:0 -O3PipeView:fetch:338500:0x00010280:0:164:ld a2, 300(a2):MemRead -O3PipeView:decode:339000 -O3PipeView:rename:339500 -O3PipeView:dispatch:340500 -O3PipeView:issue:340500 -O3PipeView:complete:341000 -O3PipeView:retire:343000:store:0 -O3PipeView:fetch:344000:0x0001028c:0:183:vle32_v_micro v1, 0(a0), zero:SimdUnitStrideLoad -O3PipeView:decode:344500 -O3PipeView:rename:345000 -O3PipeView:dispatch:346000 -O3PipeView:issue:346000 -O3PipeView:complete:346500 -O3PipeView:retire:348500:store:0 -O3PipeView:fetch:344000:0x000102a0:0:188:addi a2, a2, 32:IntAlu -O3PipeView:decode:344500 -O3PipeView:rename:345000 -O3PipeView:dispatch:346000 -O3PipeView:issue:346000 -O3PipeView:complete:346500 -O3PipeView:retire:350000:store:0 -O3PipeView:fetch:344000:0x000102a8:0:190:addi a0, zero, 0:IntAlu -O3PipeView:decode:344500 -O3PipeView:rename:345000 -O3PipeView:dispatch:346000 -O3PipeView:issue:346000 -O3PipeView:complete:346500 -O3PipeView:retire:350000:store:0 -O3PipeView:fetch:344500:0x000102ac:0:191:addi a7, zero, 93:IntAlu -O3PipeView:decode:345500 -O3PipeView:rename:346000 -O3PipeView:dispatch:347000 -O3PipeView:issue:347000 -O3PipeView:complete:347500 -O3PipeView:retire:350000:store:0 -O3PipeView:fetch:344000:0x00010290:0:184:vle32_v_micro v2, 0(a1), zero:SimdUnitStrideLoad -O3PipeView:decode:344500 -O3PipeView:rename:345000 -O3PipeView:dispatch:346000 -O3PipeView:issue:346000 -O3PipeView:complete:346500 -O3PipeView:retire:349000:store:0 -O3PipeView:fetch:344000:0x00010298:0:186:vmul_vv_micro v4, v1, v2:SimdMult -O3PipeView:decode:344500 -O3PipeView:rename:345000 -O3PipeView:dispatch:346000 -O3PipeView:issue:348000 -O3PipeView:complete:348500 -O3PipeView:retire:349500:store:0 -O3PipeView:fetch:344000:0x00010294:0:185:vadd_vv_micro v3, v1, v2:SimdAdd -O3PipeView:decode:344500 -O3PipeView:rename:345000 -O3PipeView:dispatch:346000 -O3PipeView:issue:348000 -O3PipeView:complete:348500 -O3PipeView:retire:349500:store:0 -O3PipeView:fetch:344000:0x0001029c:0:187:vse32_v_micro v3, 0(a2):SimdUnitStrideStore -O3PipeView:decode:344500 -O3PipeView:rename:345000 -O3PipeView:dispatch:346000 -O3PipeView:issue:348500 -O3PipeView:complete:349000 -O3PipeView:retire:350000:store:352000 -O3PipeView:fetch:344000:0x000102a4:0:189:vse32_v_micro v4, 0(a2):SimdUnitStrideStore -O3PipeView:decode:344500 -O3PipeView:rename:345000 -O3PipeView:dispatch:346000 -O3PipeView:issue:348500 -O3PipeView:complete:349000 -O3PipeView:retire:350000:store:352001 +O3PipeView:fetch:343500:0x00010284:0:190:vle32_v_micro v1, 0(a0), zero:SimdUnitStrideLoad +O3PipeView:decode:344000 +O3PipeView:rename:344500 +O3PipeView:dispatch:345500 +O3PipeView:issue:345500 +O3PipeView:complete:346000 +O3PipeView:retire:398000:store:0 +O3PipeView:fetch:343500:0x00010298:0:195:addi a2, a2, 32:IntAlu +O3PipeView:decode:344000 +O3PipeView:rename:344500 +O3PipeView:dispatch:345500 +O3PipeView:issue:345500 +O3PipeView:complete:346000 +O3PipeView:retire:403000:store:0 +O3PipeView:fetch:343500:0x000102a0:0:197:addi a0, zero, 0:IntAlu +O3PipeView:decode:344000 +O3PipeView:rename:344500 +O3PipeView:dispatch:345500 +O3PipeView:issue:345500 +O3PipeView:complete:346000 +O3PipeView:retire:403000:store:0 +O3PipeView:fetch:344000:0x000102a4:0:198:addi a7, zero, 93:IntAlu +O3PipeView:decode:345000 +O3PipeView:rename:345500 +O3PipeView:dispatch:346500 +O3PipeView:issue:346500 +O3PipeView:complete:347000 +O3PipeView:retire:403000:store:0 +O3PipeView:fetch:343500:0x00010288:0:191:vle32_v_micro v2, 0(a1), zero:SimdUnitStrideLoad +O3PipeView:decode:344000 +O3PipeView:rename:344500 +O3PipeView:dispatch:345500 +O3PipeView:issue:345500 +O3PipeView:complete:346000 +O3PipeView:retire:402000:store:0 +O3PipeView:fetch:343500:0x00010290:0:193:vmul_vv_micro v4, v1, v2:SimdMult +O3PipeView:decode:344000 +O3PipeView:rename:344500 +O3PipeView:dispatch:345500 +O3PipeView:issue:401000 +O3PipeView:complete:401500 +O3PipeView:retire:402500:store:0 +O3PipeView:fetch:343500:0x0001028c:0:192:vadd_vv_micro v3, v1, v2:SimdAdd +O3PipeView:decode:344000 +O3PipeView:rename:344500 +O3PipeView:dispatch:345500 +O3PipeView:issue:401000 +O3PipeView:complete:401500 +O3PipeView:retire:402500:store:0 +O3PipeView:fetch:343500:0x00010294:0:194:vse32_v_micro v3, 0(a2):SimdUnitStrideStore +O3PipeView:decode:344000 +O3PipeView:rename:344500 +O3PipeView:dispatch:345500 +O3PipeView:issue:401500 +O3PipeView:complete:402000 +O3PipeView:retire:403000:store:405000 +O3PipeView:fetch:343500:0x0001029c:0:196:vse32_v_micro v4, 0(a2):SimdUnitStrideStore +O3PipeView:decode:344000 +O3PipeView:rename:344500 +O3PipeView:dispatch:345500 +O3PipeView:issue:401500 +O3PipeView:complete:402000 +O3PipeView:retire:403000:store:405001 diff --git a/examples/reference/reference_0.json.gz b/examples/reference/reference_0.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..f54119f4dca8fd749d52356337e0591136ce071c GIT binary patch literal 22504 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 Date: Fri, 26 Jun 2026 14:57:23 +0300 Subject: [PATCH 6/6] CI fix --- .github/workflows/python-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml index d8b48d7..a3d510d 100644 --- a/.github/workflows/python-ci.yml +++ b/.github/workflows/python-ci.yml @@ -41,7 +41,7 @@ jobs: - name: Compare output with reference run: | gunzip -c examples/reference/reference_0.json.gz > expected.json - diff -u reference_0.json expected.json + diff -u res/reference_0.json expected.json - name: Upload coverage to Codecov uses: codecov/codecov-action@v4