Page MenuHomePhabricator

[P10] [Power PC] Exploiting new load rightmost vector element instructions.
Needs ReviewPublic

Authored by kamaub on Jan 15 2021, 11:57 AM.

Details

Reviewers
lei
stefanp
nemanjai
amyk
Group Reviewers
Restricted Project
Summary

This pull request implements patterns to exploit the load rightmost vector
element instructions for loading element 0 on little endian PowerPC subtargets
into v8i16 and v16i8 vector registers for i16 and i8 data types.

Diff Detail

Unit TestsFailed

TimeTest
60 msx64 windows > Clang.CoverageMapping::branch-constfolded.cpp
Script: -- : 'RUN: at line 3'; c:\ws\w16n2-1\llvm-project\premerge-checks\build\bin\clang.exe -cc1 -internal-isystem c:\ws\w16n2-1\llvm-project\premerge-checks\build\lib\clang\12.0.0\include -nostdsysteminc -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name branch-constfolded.cpp C:\ws\w16n2-1\llvm-project\premerge-checks\clang\test\CoverageMapping\branch-constfolded.cpp | c:\ws\w16n2-1\llvm-project\premerge-checks\build\bin\filecheck.exe C:\ws\w16n2-1\llvm-project\premerge-checks\clang\test\CoverageMapping\branch-constfolded.cpp
60 msx64 windows > Clang.CoverageMapping::branch-macros.cpp
Script: -- : 'RUN: at line 4'; c:\ws\w16n2-1\llvm-project\premerge-checks\build\bin\clang.exe -cc1 -internal-isystem c:\ws\w16n2-1\llvm-project\premerge-checks\build\lib\clang\12.0.0\include -nostdsysteminc -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name branch-macros.cpp C:\ws\w16n2-1\llvm-project\premerge-checks\clang\test\CoverageMapping\branch-macros.cpp | c:\ws\w16n2-1\llvm-project\premerge-checks\build\bin\filecheck.exe C:\ws\w16n2-1\llvm-project\premerge-checks\clang\test\CoverageMapping\branch-macros.cpp
60 msx64 windows > Clang.CoverageMapping::branch-mincounters.cpp
Script: -- : 'RUN: at line 4'; c:\ws\w16n2-1\llvm-project\premerge-checks\build\bin\clang.exe -cc1 -internal-isystem c:\ws\w16n2-1\llvm-project\premerge-checks\build\lib\clang\12.0.0\include -nostdsysteminc -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name branch-logical-mixed.cpp C:\ws\w16n2-1\llvm-project\premerge-checks\clang\test\CoverageMapping\branch-mincounters.cpp | c:\ws\w16n2-1\llvm-project\premerge-checks\build\bin\filecheck.exe C:\ws\w16n2-1\llvm-project\premerge-checks\clang\test\CoverageMapping\branch-mincounters.cpp
60 msx64 windows > Clang.CoverageMapping::branch-templates.cpp
Script: -- : 'RUN: at line 4'; c:\ws\w16n2-1\llvm-project\premerge-checks\build\bin\clang.exe -cc1 -internal-isystem c:\ws\w16n2-1\llvm-project\premerge-checks\build\lib\clang\12.0.0\include -nostdsysteminc -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name branch-templates.cpp C:\ws\w16n2-1\llvm-project\premerge-checks\clang\test\CoverageMapping\branch-templates.cpp | c:\ws\w16n2-1\llvm-project\premerge-checks\build\bin\filecheck.exe C:\ws\w16n2-1\llvm-project\premerge-checks\clang\test\CoverageMapping\branch-templates.cpp
80 msx64 windows > Clang.Profile::branch-logical-mixed.cpp
Script: -- : 'RUN: at line 4'; c:\ws\w16n2-1\llvm-project\premerge-checks\build\bin\clang.exe -cc1 -internal-isystem c:\ws\w16n2-1\llvm-project\premerge-checks\build\lib\clang\12.0.0\include -nostdsysteminc -main-file-name branch-logical-mixed.cpp C:\ws\w16n2-1\llvm-project\premerge-checks\clang\test\Profile\branch-logical-mixed.cpp -o - -emit-llvm -fprofile-instrument=clang | c:\ws\w16n2-1\llvm-project\premerge-checks\build\bin\filecheck.exe -allow-deprecated-dag-overlap C:\ws\w16n2-1\llvm-project\premerge-checks\clang\test\Profile\branch-logical-mixed.cpp
View Full Test Results (6 Failed)

Event Timeline

kamaub created this revision.Jan 15 2021, 11:57 AM
kamaub requested review of this revision.Jan 15 2021, 11:57 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 15 2021, 11:57 AM
amyk added inline comments.Jan 21 2021, 3:48 PM
llvm/lib/Target/PowerPC/PPCInstrVSX.td
3940

nit: End sentences with a period.

3941

Might be a silly question, but can you clarify the "faux equivalent pattern" part?
Also a small nit, maybe end the sentence here and start the next sentence with, "The NoP10Vector predicate..."

llvm/test/CodeGen/PowerPC/load-rightmost-vector-elt.ll
8

Add P9 run line, too?