139b02d49Sserge-sans-paille; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2*211cf8a3SBjorn Pettersson; RUN: opt -passes=instcombine -S < %s | FileCheck %s 339b02d49Sserge-sans-paille 439b02d49Sserge-sans-paille 539b02d49Sserge-sans-pailletarget datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" 639b02d49Sserge-sans-pailletarget triple = "x86_64-unknown-linux-gnu" 739b02d49Sserge-sans-paille 84ab40ecaSBjorn Petterssondeclare dso_local noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr 94ab40ecaSBjorn Petterssondeclare i64 @llvm.objectsize.i64.p0(ptr, i1 immarg, i1 immarg, i1 immarg) 104ab40ecaSBjorn Petterssondeclare noalias ptr @strdup(ptr); 114ab40ecaSBjorn Petterssondeclare noalias ptr @__strdup(ptr); 124ab40ecaSBjorn Petterssondeclare noalias ptr @strndup(ptr, i64); 134ab40ecaSBjorn Petterssondeclare noalias ptr @__strndup(ptr, i64); 1439b02d49Sserge-sans-paille 1539b02d49Sserge-sans-paille@str = dso_local constant [11 x i8] c"toulbroc'h\00" 1639b02d49Sserge-sans-paille 1739b02d49Sserge-sans-pailledefine dso_local i64 @check_strdup(i32 noundef %n) local_unnamed_addr { 1839b02d49Sserge-sans-paille; CHECK-LABEL: @check_strdup( 1939b02d49Sserge-sans-paille; CHECK-NEXT: ret i64 11 2039b02d49Sserge-sans-paille; 214ab40ecaSBjorn Pettersson %ptr = call noalias ptr @strdup(ptr noundef @str) 224ab40ecaSBjorn Pettersson %size = call i64 @llvm.objectsize.i64.p0(ptr %ptr, i1 false, i1 true, i1 false) 2339b02d49Sserge-sans-paille ret i64 %size 2439b02d49Sserge-sans-paille} 2539b02d49Sserge-sans-paille 2639b02d49Sserge-sans-pailledefine dso_local i64 @check_dunder_strdup(i32 noundef %n) local_unnamed_addr { 2739b02d49Sserge-sans-paille; CHECK-LABEL: @check_dunder_strdup( 2839b02d49Sserge-sans-paille; CHECK-NEXT: ret i64 11 2939b02d49Sserge-sans-paille; 304ab40ecaSBjorn Pettersson %ptr = call noalias ptr @__strdup(ptr noundef @str) 314ab40ecaSBjorn Pettersson %size = call i64 @llvm.objectsize.i64.p0(ptr %ptr, i1 false, i1 true, i1 false) 3239b02d49Sserge-sans-paille ret i64 %size 3339b02d49Sserge-sans-paille} 3439b02d49Sserge-sans-paille 3539b02d49Sserge-sans-pailledefine dso_local i64 @check_strndup(i32 noundef %n) local_unnamed_addr { 3639b02d49Sserge-sans-paille; CHECK-LABEL: @check_strndup( 3739b02d49Sserge-sans-paille; CHECK-NEXT: ret i64 5 3839b02d49Sserge-sans-paille; 394ab40ecaSBjorn Pettersson %ptr = call noalias ptr @strndup(ptr noundef @str, i64 4) 404ab40ecaSBjorn Pettersson %size = call i64 @llvm.objectsize.i64.p0(ptr %ptr, i1 false, i1 true, i1 false) 4139b02d49Sserge-sans-paille ret i64 %size 4239b02d49Sserge-sans-paille} 4339b02d49Sserge-sans-paille 4439b02d49Sserge-sans-pailledefine dso_local i64 @check_dunder_strndup(i32 noundef %n) local_unnamed_addr { 4539b02d49Sserge-sans-paille; CHECK-LABEL: @check_dunder_strndup( 4639b02d49Sserge-sans-paille; CHECK-NEXT: ret i64 5 4739b02d49Sserge-sans-paille; 484ab40ecaSBjorn Pettersson %ptr = call noalias ptr @__strndup(ptr noundef @str, i64 4) 494ab40ecaSBjorn Pettersson %size = call i64 @llvm.objectsize.i64.p0(ptr %ptr, i1 false, i1 true, i1 false) 5039b02d49Sserge-sans-paille ret i64 %size 5139b02d49Sserge-sans-paille} 52