Page MenuHomePhabricator

Implementation of variable-length load/store intrinsics
Needs ReviewPublic

Authored by hussainjk on Aug 27 2020, 2:47 AM.

Details

Reviewers
simoll
Summary

Implemented intrinsics llvm.variable.length.load and llvm.variable.length.store,
as well as infrastructure for lowering these using new corresponding SDAG nodes.

These intrinsics represent loading and storing vectors with a number of contiguous active lanes given at runtime.
In effect, they specialize masked loads and stores to the case when the mask can instead be specified by a length.

Please see our associated RFC for technical design discussion.

Diff Detail

Unit TestsFailed

TimeTest
30 mslinux > LLVM.CodeGen/AArch64::O0-pipeline.ll
Script: -- : 'RUN: at line 1'; /mnt/disks/ssd0/agent/llvm-project/build/bin/llc --debugify-and-strip-all-safe=0 -mtriple=arm64-- -O0 -debug-pass=Structure < /mnt/disks/ssd0/agent/llvm-project/llvm/test/CodeGen/AArch64/O0-pipeline.ll -o /dev/null 2>&1 | grep -v "Verify generated machine code" | /mnt/disks/ssd0/agent/llvm-project/build/bin/FileCheck /mnt/disks/ssd0/agent/llvm-project/llvm/test/CodeGen/AArch64/O0-pipeline.ll
30 mslinux > LLVM.CodeGen/AArch64::O3-pipeline.ll
Script: -- : 'RUN: at line 1'; /mnt/disks/ssd0/agent/llvm-project/build/bin/llc --debugify-and-strip-all-safe=0 -mtriple=arm64-- -O3 -debug-pass=Structure < /mnt/disks/ssd0/agent/llvm-project/llvm/test/CodeGen/AArch64/O3-pipeline.ll -o /dev/null 2>&1 | grep -v "Verify generated machine code" | /mnt/disks/ssd0/agent/llvm-project/build/bin/FileCheck /mnt/disks/ssd0/agent/llvm-project/llvm/test/CodeGen/AArch64/O3-pipeline.ll
30 mslinux > LLVM.CodeGen/ARM::O3-pipeline.ll
Script: -- : 'RUN: at line 1'; /mnt/disks/ssd0/agent/llvm-project/build/bin/llc -mtriple=arm -O3 -debug-pass=Structure < /mnt/disks/ssd0/agent/llvm-project/llvm/test/CodeGen/ARM/O3-pipeline.ll -o /dev/null 2>&1 | grep -v "Verify generated machine code" | /mnt/disks/ssd0/agent/llvm-project/build/bin/FileCheck /mnt/disks/ssd0/agent/llvm-project/llvm/test/CodeGen/ARM/O3-pipeline.ll
30 mslinux > LLVM.CodeGen/X86::O0-pipeline.ll
Script: -- : 'RUN: at line 3'; /mnt/disks/ssd0/agent/llvm-project/build/bin/llc -mtriple=x86_64-- -O0 -debug-pass=Structure < /mnt/disks/ssd0/agent/llvm-project/llvm/test/CodeGen/X86/O0-pipeline.ll -o /dev/null 2>&1 | grep -v 'Verify generated machine code' | /mnt/disks/ssd0/agent/llvm-project/build/bin/FileCheck /mnt/disks/ssd0/agent/llvm-project/llvm/test/CodeGen/X86/O0-pipeline.ll
30 mslinux > LLVM.CodeGen/X86::opt-pipeline.ll
Script: -- : 'RUN: at line 3'; /mnt/disks/ssd0/agent/llvm-project/build/bin/llc -mtriple=x86_64-- -O1 -debug-pass=Structure < /mnt/disks/ssd0/agent/llvm-project/llvm/test/CodeGen/X86/opt-pipeline.ll -o /dev/null 2>&1 | grep -v 'Verify generated machine code' | /mnt/disks/ssd0/agent/llvm-project/build/bin/FileCheck /mnt/disks/ssd0/agent/llvm-project/llvm/test/CodeGen/X86/opt-pipeline.ll
View Full Test Results (12 Failed)

Event Timeline

hussainjk created this revision.Aug 27 2020, 2:47 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 27 2020, 2:47 AM
hussainjk requested review of this revision.Aug 27 2020, 2:47 AM
simoll added a subscriber: simoll.Aug 27 2020, 5:03 AM