| Chris Lattner | 659a500 | 2003-12-11 19:16:30 +0000 | [diff] [blame] | 1 | ; This testcase consists of alias relations which should be completely |
| 2 | ; resolvable by basicaa, but require analysis of getelementptr constant exprs. |
| 3 | |
| Chandler Carruth | 5da5343 | 2012-07-02 18:37:59 +0000 | [diff] [blame] | 4 | ; RUN: opt < %s -basicaa -aa-eval -print-may-aliases -disable-output 2>&1 | FileCheck %s |
| Chris Lattner | 659a500 | 2003-12-11 19:16:30 +0000 | [diff] [blame] | 5 | |
| Ahmed Bougacha | a7e3311 | 2015-02-05 21:10:14 +0000 | [diff] [blame] | 6 | target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" |
| 7 | |
| Tanya Lattner | f865dcd | 2008-02-14 06:56:27 +0000 | [diff] [blame] | 8 | %T = type { i32, [10 x i8] } |
| Chris Lattner | 659a500 | 2003-12-11 19:16:30 +0000 | [diff] [blame] | 9 | |
| Tanya Lattner | f865dcd | 2008-02-14 06:56:27 +0000 | [diff] [blame] | 10 | @G = external global %T |
| Chris Lattner | 659a500 | 2003-12-11 19:16:30 +0000 | [diff] [blame] | 11 | |
| Bill Wendling | cd6df16 | 2012-04-24 09:15:38 +0000 | [diff] [blame] | 12 | ; CHECK: Function: test |
| Ahmed Bougacha | a7e3311 | 2015-02-05 21:10:14 +0000 | [diff] [blame] | 13 | ; CHECK-NOT: MayAlias: |
| Bill Wendling | cd6df16 | 2012-04-24 09:15:38 +0000 | [diff] [blame] | 14 | |
| Tanya Lattner | f865dcd | 2008-02-14 06:56:27 +0000 | [diff] [blame] | 15 | define void @test() { |
| David Blaikie | 79e6c74 | 2015-02-27 19:29:02 +0000 | [diff] [blame] | 16 | %D = getelementptr %T, %T* @G, i64 0, i32 0 |
| 17 | %E = getelementptr %T, %T* @G, i64 0, i32 1, i64 5 |
| David Blaikie | f72d05b | 2015-03-13 18:20:45 +0000 | [diff] [blame] | 18 | %F = getelementptr i32, i32* getelementptr (%T, %T* @G, i64 0, i32 0), i64 0 |
| 19 | %X = getelementptr [10 x i8], [10 x i8]* getelementptr (%T, %T* @G, i64 0, i32 1), i64 0, i64 5 |
| Chris Lattner | 659a500 | 2003-12-11 19:16:30 +0000 | [diff] [blame] | 20 | |
| 21 | ret void |
| 22 | } |