https://bugs.llvm.org/show_bug.cgi?id=42202

            Bug ID: 42202
           Summary: [mca] modelling decoder unit throttling
           Product: tools
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: llvm-mca
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected],
                    [email protected]

This is two-fold issue:

* Instructions that generate two macro-ops are called double instructions.
  The decoders in the Piledriver, Steamroller, and Excavator can handle four
  single instructions (1-1-1-1) or one double instruction and two single
  (2-1-1) or two double instructions (2-2) in one clock cycle. The Bulldozer
  can handle (1-1-1-1) and (2-1-1), but not (2-2).

I.e. e.g. this is incorrect: https://godbolt.org/z/pT2Tgz

* Instructions that generate more than two macro-ops are using microcode.
  The decoders cannot do anything else while microcode is generated.
  This means that a decoder can stop decoding for several clock cycles
  after meeting an instruction that generates more than two macro-ops. 

Interestingly, this seems to be already handled? https://godbolt.org/z/HUJH1R

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to