memcmp.ll revision 475cfe42c05aa84d599835ef44c3e7fe641f5b36
1475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner; Test that the memcmpOptimizer works correctly 2475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | not grep 'call.*memcmp' && 3475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner; RUN: llvm-as < %s | opt -simplify-libcalls -disable-output 4475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner 5475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattnerdeclare int %memcmp(sbyte*,sbyte*,int) 6475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner%h = constant [2 x sbyte] c"h\00" 7475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner%hel = constant [4 x sbyte] c"hel\00" 8475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner%hello_u = constant [8 x sbyte] c"hello_u\00" 9475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner 10475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattnerimplementation 11475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner 12475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattnervoid %test(sbyte *%P, sbyte *%Q, int %N, int* %IP, bool *%BP) { 13475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner %A = call int %memcmp(sbyte *%P, sbyte* %P, int %N) 14475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner volatile store int %A, int* %IP 15475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner %B = call int %memcmp(sbyte *%P, sbyte* %Q, int 0) 16475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner volatile store int %B, int* %IP 17475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner %C = call int %memcmp(sbyte *%P, sbyte* %Q, int 1) 18475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner volatile store int %C, int* %IP 19475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner %D = call int %memcmp(sbyte *%P, sbyte* %Q, int 2) 20475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner %E = seteq int %D, 0 21475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner volatile store bool %E, bool* %BP 22475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner ret void 23475cfe42c05aa84d599835ef44c3e7fe641f5b36Chris Lattner} 24