[PATCH] D75510: [X86][llvm-exegesis] Exploring vector insert/extract

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 3 02:38:09 PST 2020


lebedev.ri created this revision.
lebedev.ri added reviewers: gchatelet, courbet, RKSimon.
lebedev.ri added a project: LLVM.
Herald added subscribers: mstojanovic, tschuett.

This is proof-of-concept, i'm not sure if we want this
so i didn't spend much time on this. If we do i can improve this.

It's not very useful without something like D60000 <https://reviews.llvm.org/D60000>,
but even now i'm seeing somewhat confusing results:

  ---
  mode:            latency
  key:
    instructions:
      - 'PEXTRDrr R9D XMM6 i_0x0'
      - 'MOV64toPQIrr XMM6 R9'
    config:          ''
    register_initial_values:
      - 'XMM6=0x0'
      - 'R9=0x0'
  cpu_name:        bdver2
  llvm_triple:     x86_64-unknown-linux-gnu
  num_repetitions: 10000
  measurements:
    - { key: latency, value: 10.0292, per_snippet_value: 20.0584 }
  error:           ''
  info:            Repeating two instructions
  assembled_snippet: 4883EC10C7042400000000C744240400000000C744240800000000C744240C00000000C5FA6F34244883C41049B9000000000000000066410F3A16F10066490F6EF166410F3A16F10066490F6EF166410F3A16F10066490F6EF166410F3A16F10066490F6EF166410F3A16F10066490F6EF166410F3A16F10066490F6EF166410F3A16F10066490F6EF166410F3A16F10066490F6EF1C3
  ...
  ---
  mode:            latency
  key:
    instructions:
      - 'PEXTRDrr EBP XMM8 i_0x0'
      - 'VMOV64toPQIrr XMM8 RBP'
    config:          ''
    register_initial_values:
      - 'XMM8=0x0'
      - 'RBP=0x0'
  cpu_name:        bdver2
  llvm_triple:     x86_64-unknown-linux-gnu
  num_repetitions: 10000
  measurements:
    - { key: latency, value: 10.0344, per_snippet_value: 20.0688 }
  error:           ''
  info:            Repeating two instructions
  assembled_snippet: 554883EC10C7042400000000C744240400000000C744240800000000C744240C00000000C57A6F04244883C41048BD000000000000000066440F3A16C500C461F96EC566440F3A16C500C461F96EC566440F3A16C500C461F96EC566440F3A16C500C461F96EC566440F3A16C500C461F96EC566440F3A16C500C461F96EC566440F3A16C500C461F96EC566440F3A16C500C461F96EC55DC3
  ...

  ---
  mode:            latency
  key:
    instructions:
      - 'EXTRACTPSrr EDI XMM2 i_0x0'
      - 'VPINSRWrr XMM2 XMM7 EDI i_0x1'
    config:          ''
    register_initial_values:
      - 'XMM2=0x0'
      - 'XMM7=0x0'
  cpu_name:        bdver2
  llvm_triple:     x86_64-unknown-linux-gnu
  num_repetitions: 10000
  measurements:
    - { key: latency, value: 11.0299, per_snippet_value: 22.0598 }
  error:           ''
  info:            Repeating two instructions
  assembled_snippet: 4883EC10C7042400000000C744240400000000C744240800000000C744240C00000000C5FA6F14244883C4104883EC10C7042400000000C744240400000000C744240800000000C744240C00000000C5FA6F3C244883C410660F3A17D700C5C1C4D701660F3A17D700C5C1C4D701660F3A17D700C5C1C4D701660F3A17D700C5C1C4D701660F3A17D700C5C1C4D701660F3A17D700C5C1C4D701660F3A17D700C5C1C4D701660F3A17D700C5C1C4D701C3
  ...
  ---
  mode:            latency
  key:
    instructions:
      - 'EXTRACTPSrr ESI XMM6 i_0x0'
      - 'PINSRDrr XMM6 XMM6 ESI i_0x1'
    config:          ''
    register_initial_values:
      - 'XMM6=0x0'
  cpu_name:        bdver2
  llvm_triple:     x86_64-unknown-linux-gnu
  num_repetitions: 10000
  measurements:
    - { key: latency, value: 11.0328, per_snippet_value: 22.0656 }
  error:           ''
  info:            Repeating two instructions
  assembled_snippet: 4883EC10C7042400000000C744240400000000C744240800000000C744240C00000000C5FA6F34244883C410660F3A17F600660F3A22F601660F3A17F600660F3A22F601660F3A17F600660F3A22F601660F3A17F600660F3A22F601660F3A17F600660F3A22F601660F3A17F600660F3A22F601660F3A17F600660F3A22F601660F3A17F600660F3A22F601C3
  ...

So extraction from 0'th lane isn't actually any faster?


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D75510

Files:
  llvm/tools/llvm-exegesis/lib/X86/Target.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75510.247831.patch
Type: text/x-patch
Size: 4888 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200303/d389ac50/attachment.bin>


More information about the llvm-commits mailing list