mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-06-12 11:06:17 +00:00

* Backport some patches (originally from rust, and upstreamed) to fix two failing tests in rustc.
48 lines
1.8 KiB
Diff
48 lines
1.8 KiB
Diff
commit 477bd758b48cb96477d3dd4cf3b36bf2706e8c1d
|
|
Author: Chandler Carruth <chandlerc@gmail.com>
|
|
Date: Tue Jun 27 02:23:15 2017 +0000
|
|
|
|
[SROA] Clean up a test case a bit prior to adding more testing for
|
|
nonnull as part of fixing PR32902.
|
|
|
|
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306353 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
|
|
--- a/test/Transforms/SROA/preserve-nonnull.ll
|
|
+++ b/test/Transforms/SROA/preserve-nonnull.ll
|
|
@@ -3,22 +3,20 @@
|
|
; Make sure that SROA doesn't lose nonnull metadata
|
|
; on loads from allocas that get optimized out.
|
|
|
|
-; CHECK-LABEL: define float* @yummy_nonnull
|
|
-; CHECK: [[RETURN:%(.*)]] = load float*, float** %arg, align 8
|
|
-; CHECK: [[ASSUME:%(.*)]] = icmp ne float* {{.*}}[[RETURN]], null
|
|
-; CHECK: call void @llvm.assume(i1 {{.*}}[[ASSUME]])
|
|
-; CHECK: ret float* {{.*}}[[RETURN]]
|
|
-
|
|
define float* @yummy_nonnull(float** %arg) {
|
|
-entry-block:
|
|
- %buf = alloca float*
|
|
-
|
|
- %_arg_i8 = bitcast float** %arg to i8*
|
|
- %_buf_i8 = bitcast float** %buf to i8*
|
|
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* %_buf_i8, i8* %_arg_i8, i64 8, i32 8, i1 false)
|
|
-
|
|
- %ret = load float*, float** %buf, align 8, !nonnull !0
|
|
- ret float* %ret
|
|
+; CHECK-LABEL: define float* @yummy_nonnull(
|
|
+; CHECK-NEXT: entry:
|
|
+; CHECK-NEXT: %[[RETURN:.*]] = load float*, float** %arg, align 8
|
|
+; CHECK-NEXT: %[[ASSUME:.*]] = icmp ne float* %[[RETURN]], null
|
|
+; CHECK-NEXT: call void @llvm.assume(i1 %[[ASSUME]])
|
|
+; CHECK-NEXT: ret float* %[[RETURN]]
|
|
+entry:
|
|
+ %buf = alloca float*
|
|
+ %_arg_i8 = bitcast float** %arg to i8*
|
|
+ %_buf_i8 = bitcast float** %buf to i8*
|
|
+ call void @llvm.memcpy.p0i8.p0i8.i64(i8* %_buf_i8, i8* %_arg_i8, i64 8, i32 8, i1 false)
|
|
+ %ret = load float*, float** %buf, align 8, !nonnull !0
|
|
+ ret float* %ret
|
|
}
|
|
|
|
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1)
|