; RUN: llvm-upgrade < %s | llvm-as | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | not grep sub declare int %strlen(sbyte*) declare void %use(int %X) sbyte %test(sbyte* %P, sbyte* %Q) { %A = load sbyte* %Q %X = call int %strlen(sbyte* %P) %B = load sbyte* %Q ;; CSE with A. call void %use(int %X) ;; make strlen not dead %C = sub sbyte %A, %B ret sbyte %C }