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

Ahmed Bougacha ahmed.bougacha at gmail.com
Fri Mar 13 18:49:08 PDT 2015


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?

Thanks,
-Ahmed



More information about the llvm-commits mailing list