[llvm] r222581 - R600/SI: Add SIFoldOperands pass

Ahmed Bougacha ahmed.bougacha at gmail.com
Fri Mar 27 13:44:55 PDT 2015


On Fri, Mar 13, 2015 at 9:04 PM, Matt Arsenault <arsenm2 at gmail.com> wrote:
>
>> On Mar 13, 2015, at 6:49 PM, Ahmed Bougacha <ahmed.bougacha at gmail.com> wrote:
>>
>> On Fri, Nov 21, 2014 at 2:06 PM, Tom Stellard <thomas.stellard at amd.com> wrote:
>>> Added: llvm/trunk/test/CodeGen/R600/operand-folding.ll
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/R600/operand-folding.ll?rev=222581&view=auto
>>> ==============================================================================
>>> --- llvm/trunk/test/CodeGen/R600/operand-folding.ll (added)
>>> +++ llvm/trunk/test/CodeGen/R600/operand-folding.ll Fri Nov 21 16:06:37 2014
>>> @@ -0,0 +1,40 @@
>>> +; RUN: llc < %s -march=r600 -mcpu=SI -verify-machineinstrs | FileCheck %s
>>> +
>>> +; CHECK-LABEL: {{^}}fold_sgpr:
>>> +; CHECK: v_add_i32_e32 v{{[0-9]+}}, s
>>> +define void @fold_sgpr(i32 addrspace(1)* %out, i32 %fold) {
>>> +entry:
>>> +  %tmp0 = icmp ne i32 %fold, 0
>>> +  br i1 %tmp0, label %if, label %endif
>>> +
>>> +if:
>>> +  %id = call i32 @llvm.r600.read.tidig.x()
>>> +  %offset = add i32 %fold, %id
>>> +  %tmp1 = getelementptr i32 addrspace(1)* %out, i32 %offset
>>> +  store i32 0, i32 addrspace(1)* %tmp1
>>> +  br label %endif
>>> +
>>> +endif:
>>> +  ret void
>>> +}
>>> +
>>> +; CHECK-LABEL: {{^}}fold_imm:
>>> +; CHECK v_or_i32_e32 v{{[0-9]+}}, 5
>>
>> Hi Tom,
>>
>> I noticed the `:` was missing, and adding it fails the test, which
>> generates v_or_b32_e32.  Not sure that's correct, could you have a
>> look?
>
> That is correct, the real name of the instruction should be b32 instead of i32

Thanks, fixed in r233414.

-Ahmed



More information about the llvm-commits mailing list