1*fe146e9bSWenju He; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3 2*fe146e9bSWenju He; RUN: opt -assume-default-is-flat-addrspace -S -passes=infer-address-spaces < %s 2>&1 | FileCheck %s 3*fe146e9bSWenju He 4*fe146e9bSWenju He@g = addrspace(1) global i32 0, align 4 5*fe146e9bSWenju He 6*fe146e9bSWenju Hedefine ptr @f2() { 7*fe146e9bSWenju He; CHECK-LABEL: define ptr @f2() { 8*fe146e9bSWenju He; CHECK-NEXT: entry: 9*fe146e9bSWenju He; CHECK-NEXT: [[X2:%.*]] = addrspacecast ptr addrspace(1) @g to ptr 10*fe146e9bSWenju He; CHECK-NEXT: ret ptr [[X2]] 11*fe146e9bSWenju He; 12*fe146e9bSWenju Heentry: 13*fe146e9bSWenju He %x1 = addrspacecast ptr addrspacecast (ptr addrspace(1) @g to ptr) to ptr addrspace(1) 14*fe146e9bSWenju He %x2 = addrspacecast ptr addrspace(1) %x1 to ptr 15*fe146e9bSWenju He ret ptr %x2 16*fe146e9bSWenju He} 17*fe146e9bSWenju He 18*fe146e9bSWenju Hedefine ptr @f3() #0 { 19*fe146e9bSWenju He; CHECK-LABEL: define ptr @f3( 20*fe146e9bSWenju He; CHECK-SAME: ) #[[ATTR0:[0-9]+]] { 21*fe146e9bSWenju He; CHECK-NEXT: entry: 22*fe146e9bSWenju He; CHECK-NEXT: [[X1:%.*]] = addrspacecast ptr addrspacecast (ptr addrspace(1) @g to ptr) to ptr addrspace(1) 23*fe146e9bSWenju He; CHECK-NEXT: [[X2:%.*]] = addrspacecast ptr addrspace(1) [[X1]] to ptr 24*fe146e9bSWenju He; CHECK-NEXT: ret ptr [[X2]] 25*fe146e9bSWenju He; 26*fe146e9bSWenju Heentry: 27*fe146e9bSWenju He %x1 = addrspacecast ptr addrspacecast (ptr addrspace(1) @g to ptr) to ptr addrspace(1) 28*fe146e9bSWenju He %x2 = addrspacecast ptr addrspace(1) %x1 to ptr 29*fe146e9bSWenju He ret ptr %x2 30*fe146e9bSWenju He} 31*fe146e9bSWenju He 32*fe146e9bSWenju Heattributes #0 = { noinline optnone } 33