[llvm] [Attributor][AMDGPU] Enable AAIndirectCallInfo for AMDAttributor (PR #100952)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 31 10:46:50 PDT 2024
================
@@ -0,0 +1,69 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-globals
+; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -passes=amdgpu-attributor %s | FileCheck --check-prefixes=CHECK,OW %s
+; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -passes=amdgpu-attributor -attributor-assume-closed-world=1 %s | FileCheck --check-prefixes=CHECK,CW %s
+
+target datalayout = "A5"
+
+ at G = global i32 0, align 4
+
+;.
+; CHECK: @G = global i32 0, align 4
+;.
+define void @bar() {
+; CHECK-LABEL: define {{[^@]+}}@bar
+; CHECK-SAME: () #[[ATTR0:[0-9]+]] {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: store i32 1, ptr @G, align 4
+; CHECK-NEXT: ret void
+;
+entry:
+ store i32 1, ptr @G, align 4
+ ret void
+}
+
+define ptr @helper() {
+; CHECK-LABEL: define {{[^@]+}}@helper
+; CHECK-SAME: () #[[ATTR0]] {
+; CHECK-NEXT: entry:
+; CHECK-NEXT: ret ptr @bar
+;
+entry:
+ ret ptr @bar
+}
+
+define amdgpu_kernel void @foo(ptr noundef %fp) {
+; OW-LABEL: define {{[^@]+}}@foo
+; OW-SAME: (ptr noundef [[FP:%.*]]) #[[ATTR1:[0-9]+]] {
+; OW-NEXT: entry:
+; OW-NEXT: [[FP_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)
+; OW-NEXT: [[FPTR_CAST:%.*]] = addrspacecast ptr addrspace(5) [[FP_ADDR]] to ptr
+; OW-NEXT: store ptr [[FP]], ptr [[FPTR_CAST]], align 8
+; OW-NEXT: call void [[FP]]()
+; OW-NEXT: ret void
+;
+; CW-LABEL: define {{[^@]+}}@foo
+; CW-SAME: (ptr noundef [[FP:%.*]]) #[[ATTR1:[0-9]+]] {
+; CW-NEXT: entry:
+; CW-NEXT: [[FP_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)
+; CW-NEXT: [[FPTR_CAST:%.*]] = addrspacecast ptr addrspace(5) [[FP_ADDR]] to ptr
+; CW-NEXT: store ptr [[FP]], ptr [[FPTR_CAST]], align 8
+; CW-NEXT: [[TMP0:%.*]] = load ptr, ptr [[FPTR_CAST]], align 8
+; CW-NEXT: call void @bar()
+; CW-NEXT: ret void
+;
+entry:
+ %fp.addr = alloca ptr, addrspace(5)
+ %fptr.cast = addrspacecast ptr addrspace(5) %fp.addr to ptr
+ store ptr %fp, ptr %fptr.cast
+ %0 = load ptr, ptr %fptr.cast
----------------
arsenm wrote:
Use named values
https://github.com/llvm/llvm-project/pull/100952
More information about the llvm-commits
mailing list