diff options
Diffstat (limited to 'llvm/test/Transforms/SimplifyCFG/sink-common-code.ll')
| -rw-r--r-- | llvm/test/Transforms/SimplifyCFG/sink-common-code.ll | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/llvm/test/Transforms/SimplifyCFG/sink-common-code.ll b/llvm/test/Transforms/SimplifyCFG/sink-common-code.ll index b1b5ff7ddf7..cdb6ed29d85 100644 --- a/llvm/test/Transforms/SimplifyCFG/sink-common-code.ll +++ b/llvm/test/Transforms/SimplifyCFG/sink-common-code.ll @@ -81,204 +81,3 @@ if.end: ; CHECK: call ; CHECK: add ; CHECK-NOT: br - -define i32 @test4(i1 zeroext %flag, i32 %x, i32* %y) { -entry: - br i1 %flag, label %if.then, label %if.else - -if.then: - %a = add i32 %x, 5 - store i32 %a, i32* %y - br label %if.end - -if.else: - %b = add i32 %x, 7 - store i32 %b, i32* %y - br label %if.end - -if.end: - ret i32 1 -} - -; CHECK-LABEL: test4 -; CHECK: select -; CHECK: store -; CHECK-NOT: store - -define i32 @test5(i1 zeroext %flag, i32 %x, i32* %y) { -entry: - br i1 %flag, label %if.then, label %if.else - -if.then: - %a = add i32 %x, 5 - store volatile i32 %a, i32* %y - br label %if.end - -if.else: - %b = add i32 %x, 7 - store i32 %b, i32* %y - br label %if.end - -if.end: - ret i32 1 -} - -; CHECK-LABEL: test5 -; CHECK: store volatile -; CHECK: store - -define i32 @test6(i1 zeroext %flag, i32 %x, i32* %y) { -entry: - br i1 %flag, label %if.then, label %if.else - -if.then: - %a = add i32 %x, 5 - store volatile i32 %a, i32* %y - br label %if.end - -if.else: - %b = add i32 %x, 7 - store volatile i32 %b, i32* %y - br label %if.end - -if.end: - ret i32 1 -} - -; CHECK-LABEL: test6 -; CHECK: select -; CHECK: store volatile -; CHECK-NOT: store - -define i32 @test7(i1 zeroext %flag, i32 %x, i32* %y) { -entry: - br i1 %flag, label %if.then, label %if.else - -if.then: - %z = load volatile i32, i32* %y - %a = add i32 %z, 5 - store volatile i32 %a, i32* %y - br label %if.end - -if.else: - %w = load volatile i32, i32* %y - %b = add i32 %w, 7 - store volatile i32 %b, i32* %y - br label %if.end - -if.end: - ret i32 1 -} - -; CHECK-LABEL: test7 -; CHECK-DAG: select -; CHECK-DAG: load volatile -; CHECK: store volatile -; CHECK-NOT: load -; CHECK-NOT: store - -; %z and %w are in different blocks. We shouldn't sink the add because -; there may be intervening memory instructions. -define i32 @test8(i1 zeroext %flag, i32 %x, i32* %y) { -entry: - %z = load volatile i32, i32* %y - br i1 %flag, label %if.then, label %if.else - -if.then: - %a = add i32 %z, 5 - store volatile i32 %a, i32* %y - br label %if.end - -if.else: - %w = load volatile i32, i32* %y - %b = add i32 %w, 7 - store volatile i32 %b, i32* %y - br label %if.end - -if.end: - ret i32 1 -} - -; CHECK-LABEL: test8 -; CHECK: add -; CHECK: add - -; The extra store in %if.then means %z and %w are not equivalent. -define i32 @test9(i1 zeroext %flag, i32 %x, i32* %y, i32* %p) { -entry: - br i1 %flag, label %if.then, label %if.else - -if.then: - store i32 7, i32* %p - %z = load volatile i32, i32* %y - store i32 6, i32* %p - %a = add i32 %z, 5 - store volatile i32 %a, i32* %y - br label %if.end - -if.else: - %w = load volatile i32, i32* %y - %b = add i32 %w, 7 - store volatile i32 %b, i32* %y - br label %if.end - -if.end: - ret i32 1 -} - -; CHECK-LABEL: test9 -; CHECK: add -; CHECK: add - -%struct.anon = type { i32, i32 } - -; The GEP indexes a struct type so cannot have a variable last index. -define i32 @test10(i1 zeroext %flag, i32 %x, i32* %y, %struct.anon* %s) { -entry: - br i1 %flag, label %if.then, label %if.else - -if.then: - %dummy = add i32 %x, 5 - %gepa = getelementptr inbounds %struct.anon, %struct.anon* %s, i32 0, i32 0 - store volatile i32 %x, i32* %gepa - br label %if.end - -if.else: - %dummy1 = add i32 %x, 6 - %gepb = getelementptr inbounds %struct.anon, %struct.anon* %s, i32 0, i32 1 - store volatile i32 %x, i32* %gepb - br label %if.end - -if.end: - ret i32 1 -} - -; CHECK-LABEL: test10 -; CHECK: getelementptr -; CHECK: getelementptr -; CHECK: phi -; CHECK: store volatile - -; The shufflevector's mask operand cannot be merged in a PHI. -define i32 @test11(i1 zeroext %flag, i32 %w, <2 x i32> %x, <2 x i32> %y) { -entry: - br i1 %flag, label %if.then, label %if.else - -if.then: - %dummy = add i32 %w, 5 - %sv1 = shufflevector <2 x i32> %x, <2 x i32> %y, <2 x i32> <i32 0, i32 1> - br label %if.end - -if.else: - %dummy1 = add i32 %w, 6 - %sv2 = shufflevector <2 x i32> %x, <2 x i32> %y, <2 x i32> <i32 1, i32 0> - br label %if.end - -if.end: - %p = phi <2 x i32> [ %sv1, %if.then ], [ %sv2, %if.else ] - ret i32 1 -} - -; CHECK-LABEL: test11 -; CHECK: shufflevector -; CHECK: shufflevector |

