diff options
Diffstat (limited to 'llvm/test/Transforms/MergeFunc/no-merge-ptr-int-different-values.ll')
-rw-r--r-- | llvm/test/Transforms/MergeFunc/no-merge-ptr-int-different-values.ll | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/test/Transforms/MergeFunc/no-merge-ptr-int-different-values.ll b/llvm/test/Transforms/MergeFunc/no-merge-ptr-int-different-values.ll new file mode 100644 index 00000000000..6bd656408ac --- /dev/null +++ b/llvm/test/Transforms/MergeFunc/no-merge-ptr-int-different-values.ll @@ -0,0 +1,23 @@ +; RUN: opt -mergefunc -S < %s | FileCheck %s +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" + +; These should not be merged, as 1 != 0. +define internal i64 @Ifunc(i32* %P, i32* %Q) { +; CHECK-LABEL: define internal i64 @Ifunc +; CHECK-NEXT: store +; CHECK-NEXT: store +; CHECK-NEXT: ret + store i32 10, i32* %P + store i32 10, i32* %Q + ret i64 1 +} + +define internal i64* @Jfunc(i32* %P, i32* %Q) { +; CHECK-LABEL: define internal i64* @Jfunc +; CHECK-NEXT: store +; CHECK-NEXT: store +; CHECK-NEXT: ret + store i32 10, i32* %P + store i32 10, i32* %Q + ret i64* null +} |