Reid Spencer | d0e30dc | 2006-12-02 04:23:10 +0000 | [diff] [blame] | 1 | ; RUN: llvm-upgrade < %s | llvm-as | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | not grep sub |
Chris Lattner | ecdbee5 | 2004-03-15 04:17:53 +0000 | [diff] [blame] | 2 | declare int %strlen(sbyte*) |
3 | declare void %use(int %X) | ||||
4 | |||||
5 | sbyte %test(sbyte* %P, sbyte* %Q) { | ||||
6 | %A = load sbyte* %Q | ||||
7 | %X = call int %strlen(sbyte* %P) | ||||
8 | %B = load sbyte* %Q ;; CSE with A. | ||||
9 | call void %use(int %X) ;; make strlen not dead | ||||
10 | |||||
11 | %C = sub sbyte %A, %B | ||||
12 | ret sbyte %C | ||||
13 | } |