brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 8ce3213 Raw
45 lines · plain
1; Test upgrade of ptr.annotation intrinsics.2;3; RUN: llvm-as < %s | llvm-dis | FileCheck %s4; RUN: llvm-dis < %s.bc | FileCheck %s5 6; Unused return values7; The arguments passed to the intrinisic wouldn't normally be arguments to8; the function, but that makes it easier to test that they are handled9; correctly.10define void @f1(i8* %arg0, i8* %arg1, i8* %arg2, i32 %arg3) {11;CHECK: @f1(ptr [[ARG0:%.*]], ptr [[ARG1:%.*]], ptr [[ARG2:%.*]], i32 [[ARG3:%.*]])12  %t0 = call i8* @llvm.ptr.annotation.p0i8(i8* %arg0, i8* %arg1, i8* %arg2, i32 %arg3)13;CHECK:  call ptr @llvm.ptr.annotation.p0.p0(ptr [[ARG0]], ptr [[ARG1]], ptr [[ARG2]], i32 [[ARG3]], ptr null)14 15  %arg0_p16 = bitcast i8* %arg0 to i16*16  %t1 = call i16* @llvm.ptr.annotation.p0i16(i16* %arg0_p16, i8* %arg1, i8* %arg2, i32 %arg3)17;CHECK:  [[ARG0_P16:%.*]] = bitcast18;CHECK:  call ptr @llvm.ptr.annotation.p0.p0(ptr [[ARG0_P16]], ptr [[ARG1]], ptr [[ARG2]], i32 [[ARG3]], ptr null)19 20  %arg0_p256 = bitcast i8* %arg0 to i256*21  %t2 = call i256* @llvm.ptr.annotation.p0i256(i256* %arg0_p256, i8* %arg1, i8* %arg2, i32 %arg3)22;CHECK:  [[ARG0_P256:%.*]] = bitcast23;CHECK:  call ptr @llvm.ptr.annotation.p0.p0(ptr [[ARG0_P256]], ptr [[ARG1]], ptr [[ARG2]], i32 [[ARG3]], ptr null)24  ret void25}26 27; Used return values28define i16* @f2(i16* %x, i16* %y) {29  %t0 = call i16* @llvm.ptr.annotation.p0i16(i16* %x, i8* undef, i8* undef, i32 undef)30  %t1 = call i16* @llvm.ptr.annotation.p0i16(i16* %y, i8* undef, i8* undef, i32 undef)31  %cmp = icmp ugt i16* %t0, %t132  %sel = select i1 %cmp, i16* %t0, i16* %t133  ret i16* %sel34; CHECK:  [[T0:%.*]] = call ptr @llvm.ptr.annotation.p0.p0(ptr %x, ptr undef, ptr undef, i32 undef, ptr null)35; CHECK:  [[T1:%.*]] = call ptr @llvm.ptr.annotation.p0.p0(ptr %y, ptr undef, ptr undef, i32 undef, ptr null)36; CHECK:  %cmp = icmp ugt ptr [[T0]], [[T1]]37; CHECK:  %sel = select i1 %cmp, ptr [[T0]], ptr [[T1]]38; CHECK:  ret ptr %sel39}40 41; CHECK: declare ptr   @llvm.ptr.annotation.p0.p0(ptr, ptr, ptr, i32, ptr)42declare i8*   @llvm.ptr.annotation.p0i8(i8*, i8*, i8*, i32)43declare i16*  @llvm.ptr.annotation.p0i16(i16*, i8*, i8*, i32)44declare i256* @llvm.ptr.annotation.p0i256(i256*, i8*, i8*, i32)45