Changeset View
Changeset View
Standalone View
Standalone View
test/Transforms/LICM/volatile-alias.ll
1 | ; RUN: opt -basicaa -sroa -loop-rotate -licm -S < %s | FileCheck %s | 1 | ; RUN: opt -basicaa -sroa -loop-rotate -licm -S < %s | FileCheck %s | ||
---|---|---|---|---|---|
2 | ; RUN: opt -basicaa -sroa -loop-rotate %s | opt -aa-pipeline=basic-aa -passes='require<aa>,require<targetir>,require<scalar-evolution>,require<opt-remark-emit>,loop(licm)' -S | FileCheck %s | 2 | ; RUN: opt -basicaa -sroa -loop-rotate %s | opt -aa-pipeline=basic-aa -passes='require<aa>,require<targetir>,require<scalar-evolution>,require<opt-remark-emit>,loop(licm)' -S | FileCheck %s | ||
3 | ; RUN: opt -basicaa -sroa -loop-rotate -licm -enable-mssa-loop-dependency=true -S < %s | FileCheck %s | ||||
3 | ; The objects *p and *q are aliased to each other, but even though *q is | 4 | ; The objects *p and *q are aliased to each other, but even though *q is | ||
4 | ; volatile, *p can be considered invariant in the loop. Check if it is moved | 5 | ; volatile, *p can be considered invariant in the loop. Check if it is moved | ||
5 | ; out of the loop. | 6 | ; out of the loop. | ||
6 | ; CHECK: load i32, i32* %p | 7 | ; CHECK: load i32, i32* %p | ||
7 | ; CHECK: for.body: | 8 | ; CHECK: for.body: | ||
8 | ; CHECK: load volatile i32, i32* %q | 9 | ; CHECK: load volatile i32, i32* %q | ||
9 | 10 | | |||
10 | target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" | 11 | target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" | ||
▲ Show 20 Lines • Show All 45 Lines • Show Last 20 Lines |