brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.9 KiB · f6619b7 Raw
119 lines · plain
1; RUN: opt -mtriple=amdgcn-amd-amdhsa -S -o - -passes=infer-address-spaces %s | FileCheck -check-prefixes=COMMON,AMDGCN %s2; RUN: opt -S -o - -passes=infer-address-spaces -assume-default-is-flat-addrspace %s | FileCheck -check-prefixes=COMMON,NOTTI %s3 4target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-p7:160:256:256:32-p8:128:128:128:48-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-ni:7:8"5 6; COMMON-LABEL: @noop_ptrint_pair(7; AMDGCN-NEXT: store i32 0, ptr addrspace(1) %{{.*}}8; AMDGCN-NEXT: ret void9; NOTTI-NEXT: %1 = ptrtoint ptr addrspace(1) %x.coerce to i6410; NOTTI-NEXT: %2 = inttoptr i64 %1 to ptr11; NOTTI-NEXT: store i32 0, ptr %212; NOTTI-NEXT: ret void13define void @noop_ptrint_pair(ptr addrspace(1) %x.coerce) {14  %1 = ptrtoint ptr addrspace(1) %x.coerce to i6415  %2 = inttoptr i64 %1 to ptr16  store i32 0, ptr %217  ret void18}19 20; COMMON-LABEL: @non_noop_ptrint_pair(21; AMDGCN-NEXT: ptrtoint ptr addrspace(3) %{{.*}} to i6422; AMDGCN-NEXT: inttoptr i64 %{{.*}} to ptr23; AMDGCN-NEXT: store i32 0, ptr %{{.*}}24; AMDGCN-NEXT: ret void25; NOTTI-NEXT: ptrtoint ptr addrspace(3) %{{.*}} to i6426; NOTTI-NEXT: inttoptr i64 %{{.*}} to ptr27; NOTTI-NEXT: store i32 0, ptr %{{.*}}28; NOTTI-NEXT: ret void29define void @non_noop_ptrint_pair(ptr addrspace(3) %x.coerce) {30  %1 = ptrtoint ptr addrspace(3) %x.coerce to i6431  %2 = inttoptr i64 %1 to ptr32  store i32 0, ptr %233  ret void34}35 36; COMMON-LABEL: @non_noop_ptrint_pair2(37; AMDGCN-NEXT: ptrtoint ptr addrspace(1) %{{.*}} to i3238; AMDGCN-NEXT: inttoptr i32 %{{.*}} to ptr39; AMDGCN-NEXT: store i32 0, ptr %{{.*}}40; AMDGCN-NEXT: ret void41; NOTTI-NEXT: ptrtoint ptr addrspace(1) %{{.*}} to i3242; NOTTI-NEXT: inttoptr i32 %{{.*}} to ptr43; NOTTI-NEXT: store i32 0, ptr %{{.*}}44; NOTTI-NEXT: ret void45define void @non_noop_ptrint_pair2(ptr addrspace(1) %x.coerce) {46  %1 = ptrtoint ptr addrspace(1) %x.coerce to i3247  %2 = inttoptr i32 %1 to ptr48  store i32 0, ptr %249  ret void50}51 52@g = addrspace(1) global i32 0, align 453@l = addrspace(3) global i32 0, align 454 55; COMMON-LABEL: @noop_ptrint_pair_ce(56; AMDGCN-NEXT: store i32 0, ptr addrspace(1) @g57; AMDGCN-NEXT: ret void58; NOTTI-NEXT: store i32 0, ptr inttoptr (i64 ptrtoint (ptr addrspace(1) @g to i64) to ptr)59; NOTTI-NEXT: ret void60define void @noop_ptrint_pair_ce() {61  store i32 0, ptr inttoptr (i64 ptrtoint (ptr addrspace(1) @g to i64) to ptr)62  ret void63}64 65; COMMON-LABEL: @noop_ptrint_pair_ce2(66; AMDGCN-NEXT: ret ptr addrspacecast (ptr addrspace(1) @g to ptr)67; NOTTI-NEXT: ret ptr inttoptr (i64 ptrtoint (ptr addrspace(1) @g to i64) to ptr)68define ptr @noop_ptrint_pair_ce2() {69  ret ptr inttoptr (i64 ptrtoint (ptr addrspace(1) @g to i64) to ptr)70}71 72; COMMON-LABEL: @noop_ptrint_pair_ce2_vec(73; AMDGCN-NEXT: ret <2 x ptr> <ptr inttoptr (i64 ptrtoint (ptr addrspace(1) @g to i64) to ptr), ptr inttoptr (i64 ptrtoint (ptr addrspace(3) @l to i64) to ptr)>74; NOTTI-NEXT: ret <2 x ptr> <ptr inttoptr (i64 ptrtoint (ptr addrspace(1) @g to i64) to ptr), ptr inttoptr (i64 ptrtoint (ptr addrspace(3) @l to i64) to ptr)>75define <2 x ptr> @noop_ptrint_pair_ce2_vec() {76  ret <2 x ptr> <ptr inttoptr (i64 ptrtoint (ptr addrspace(1) @g to i64) to ptr), ptr inttoptr (i64 ptrtoint (ptr addrspace(3) @l to i64) to ptr)>77}78 79; COMMON-LABEL: @noop_ptrint_pair_ce3(80; AMDGCN-NEXT: %i = inttoptr i64 ptrtoint (ptr addrspace(1) @g to i64) to ptr81; AMDGCN-NEXT: ret void82; NOTTI-NEXT: %i = inttoptr i64 ptrtoint (ptr addrspace(1) @g to i64) to ptr83; NOTTI-NEXT: ret void84define void @noop_ptrint_pair_ce3() {85  %i = inttoptr i64 ptrtoint (ptr addrspace(1) @g to i64) to ptr86  ret void87}88 89; COMMON-LABEL: @non_noop_ptrint_pair_ce(90; AMDGCN-NEXT: store i32 0, ptr inttoptr (i64 ptrtoint (ptr addrspace(3) @l to i64) to ptr)91; AMDGCN-NEXT: ret void92; NOTTI-NEXT: store i32 0, ptr inttoptr (i64 ptrtoint (ptr addrspace(3) @l to i64) to ptr)93; NOTTI-NEXT: ret void94define void @non_noop_ptrint_pair_ce() {95  store i32 0, ptr inttoptr (i64 ptrtoint (ptr addrspace(3) @l to i64) to ptr)96  ret void97}98 99; COMMON-LABEL: @non_noop_ptrint_pair_ce2(100; AMDGCN-NEXT: ret ptr inttoptr (i64 ptrtoint (ptr addrspace(3) @l to i64) to ptr)101; NOTTI-NEXT: ret ptr inttoptr (i64 ptrtoint (ptr addrspace(3) @l to i64) to ptr)102define ptr @non_noop_ptrint_pair_ce2() {103  ret ptr inttoptr (i64 ptrtoint (ptr addrspace(3) @l to i64) to ptr)104}105 106; COMMON-LABEL: @non_noop_ptrint_pair_ce3(107; AMDGCN-NEXT: ret ptr inttoptr (i32 ptrtoint (ptr addrspace(1) @g to i32) to ptr)108; NOTTI-NEXT: ret ptr inttoptr (i32 ptrtoint (ptr addrspace(1) @g to i32) to ptr)109define ptr @non_noop_ptrint_pair_ce3() {110  ret ptr inttoptr (i32 ptrtoint (ptr addrspace(1) @g to i32) to ptr)111}112 113; COMMON-LABEL: @non_noop_ptrint_pair_ce4(114; AMDGCN-NEXT: ret ptr inttoptr (i128 ptrtoint (ptr addrspace(3) @l to i128) to ptr)115; NOTTI-NEXT: ret ptr inttoptr (i128 ptrtoint (ptr addrspace(3) @l to i128) to ptr)116define ptr @non_noop_ptrint_pair_ce4() {117  ret ptr inttoptr (i128 ptrtoint (ptr addrspace(3) @l to i128) to ptr)118}119