brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · 0868148 Raw
113 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-globals2; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -passes=amdgpu-attributor %s | FileCheck --check-prefixes=CHECK,OW %s3; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -passes='amdgpu-attributor<closed-world>' %s | FileCheck --check-prefixes=CHECK,CW %s4; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -passes='amdgpu-attributor<closed-world>' -amdgpu-indirect-call-specialization-threshold=0 %s | FileCheck --check-prefixes=CHECK,NO %s5 6@G = global i32 0, align 47 8;.9; CHECK: @G = global i32 0, align 410;.11define void @bar1() {12; CHECK-LABEL: define {{[^@]+}}@bar113; CHECK-SAME: () #[[ATTR0:[0-9]+]] {14; CHECK-NEXT:  entry:15; CHECK-NEXT:    store i32 1, ptr @G, align 416; CHECK-NEXT:    ret void17;18entry:19  store i32 1, ptr @G, align 420  ret void21}22 23define void @bar2() {24; CHECK-LABEL: define {{[^@]+}}@bar225; CHECK-SAME: () #[[ATTR0]] {26; CHECK-NEXT:  entry:27; CHECK-NEXT:    store i32 2, ptr @G, align 428; CHECK-NEXT:    ret void29;30entry:31  store i32 2, ptr @G, align 432  ret void33}34 35define ptr @helper1() {36; CHECK-LABEL: define {{[^@]+}}@helper137; CHECK-SAME: () #[[ATTR0]] {38; CHECK-NEXT:  entry:39; CHECK-NEXT:    ret ptr @bar140;41entry:42  ret ptr @bar143}44 45define ptr @helper2() {46; CHECK-LABEL: define {{[^@]+}}@helper247; CHECK-SAME: () #[[ATTR0]] {48; CHECK-NEXT:  entry:49; CHECK-NEXT:    ret ptr @bar250;51entry:52  ret ptr @bar253}54 55define amdgpu_kernel void @foo(ptr noundef %fp) {56; OW-LABEL: define {{[^@]+}}@foo57; OW-SAME: (ptr noundef [[FP:%.*]]) #[[ATTR1:[0-9]+]] {58; OW-NEXT:  entry:59; OW-NEXT:    [[FP_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)60; OW-NEXT:    store ptr [[FP]], ptr addrspace(5) [[FP_ADDR]], align 861; OW-NEXT:    [[LOAD:%.*]] = load ptr, ptr addrspace(5) [[FP_ADDR]], align 862; OW-NEXT:    call void [[LOAD]]()63; OW-NEXT:    ret void64;65; CW-LABEL: define {{[^@]+}}@foo66; CW-SAME: (ptr noundef [[FP:%.*]]) #[[ATTR0]] {67; CW-NEXT:  entry:68; CW-NEXT:    [[FP_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)69; CW-NEXT:    store ptr [[FP]], ptr addrspace(5) [[FP_ADDR]], align 870; CW-NEXT:    [[LOAD:%.*]] = load ptr, ptr addrspace(5) [[FP_ADDR]], align 871; CW-NEXT:    [[TMP0:%.*]] = icmp eq ptr [[LOAD]], @bar172; CW-NEXT:    br i1 [[TMP0]], label [[TMP1:%.*]], label [[TMP2:%.*]]73; CW:       1:74; CW-NEXT:    call void @bar1()75; CW-NEXT:    br label [[TMP5:%.*]]76; CW:       2:77; CW-NEXT:    br i1 true, label [[TMP3:%.*]], label [[TMP4:%.*]]78; CW:       3:79; CW-NEXT:    call void @bar2()80; CW-NEXT:    br label [[TMP5]]81; CW:       4:82; CW-NEXT:    unreachable83; CW:       5:84; CW-NEXT:    ret void85;86; NO-LABEL: define {{[^@]+}}@foo87; NO-SAME: (ptr noundef [[FP:%.*]]) #[[ATTR0]] {88; NO-NEXT:  entry:89; NO-NEXT:    [[FP_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)90; NO-NEXT:    store ptr [[FP]], ptr addrspace(5) [[FP_ADDR]], align 891; NO-NEXT:    [[LOAD:%.*]] = load ptr, ptr addrspace(5) [[FP_ADDR]], align 892; NO-NEXT:    call void [[LOAD]](), !callees [[META0:![0-9]+]]93; NO-NEXT:    ret void94;95entry:96  %fp.addr = alloca ptr, addrspace(5)97  store ptr %fp, ptr addrspace(5) %fp.addr98  %load = load ptr, ptr addrspace(5) %fp.addr99  call void %load()100  ret void101}102 103;.104; NO: attributes #[[ATTR0]] = { "amdgpu-no-cluster-id-x" "amdgpu-no-cluster-id-y" "amdgpu-no-cluster-id-z" "amdgpu-no-completion-action" "amdgpu-no-default-queue" "amdgpu-no-dispatch-id" "amdgpu-no-dispatch-ptr" "amdgpu-no-flat-scratch-init" "amdgpu-no-heap-ptr" "amdgpu-no-hostcall-ptr" "amdgpu-no-implicitarg-ptr" "amdgpu-no-lds-kernel-id" "amdgpu-no-multigrid-sync-arg" "amdgpu-no-queue-ptr" "amdgpu-no-workgroup-id-x" "amdgpu-no-workgroup-id-y" "amdgpu-no-workgroup-id-z" "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "uniform-work-group-size"="false" }105;.106; OW: attributes #[[ATTR0]] = { "amdgpu-no-cluster-id-x" "amdgpu-no-cluster-id-y" "amdgpu-no-cluster-id-z" "amdgpu-no-completion-action" "amdgpu-no-default-queue" "amdgpu-no-dispatch-id" "amdgpu-no-dispatch-ptr" "amdgpu-no-flat-scratch-init" "amdgpu-no-heap-ptr" "amdgpu-no-hostcall-ptr" "amdgpu-no-implicitarg-ptr" "amdgpu-no-lds-kernel-id" "amdgpu-no-multigrid-sync-arg" "amdgpu-no-queue-ptr" "amdgpu-no-workgroup-id-x" "amdgpu-no-workgroup-id-y" "amdgpu-no-workgroup-id-z" "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "uniform-work-group-size"="false" }107; OW: attributes #[[ATTR1]] = { "uniform-work-group-size"="false" }108;.109; CW: attributes #[[ATTR0]] = { "amdgpu-no-cluster-id-x" "amdgpu-no-cluster-id-y" "amdgpu-no-cluster-id-z" "amdgpu-no-completion-action" "amdgpu-no-default-queue" "amdgpu-no-dispatch-id" "amdgpu-no-dispatch-ptr" "amdgpu-no-flat-scratch-init" "amdgpu-no-heap-ptr" "amdgpu-no-hostcall-ptr" "amdgpu-no-implicitarg-ptr" "amdgpu-no-lds-kernel-id" "amdgpu-no-multigrid-sync-arg" "amdgpu-no-queue-ptr" "amdgpu-no-workgroup-id-x" "amdgpu-no-workgroup-id-y" "amdgpu-no-workgroup-id-z" "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "uniform-work-group-size"="false" }110;.111; NO: [[META0]] = !{ptr @bar1, ptr @bar2}112;.113