From d0d2ce942507daf7d3315ef5e070e89f2823f1ef Mon Sep 17 00:00:00 2001 From: Brian Gesiak Date: Thu, 12 Apr 2018 21:28:04 +0000 Subject: Let llvm-diff correctly deal with Undef/ConstantAggregateZero/ConstantVector/IndirectBr Summary: llvm-diff incorrectly reports that there's a diff when input IR contains undef/zeroinitializer/constantvector/indirectbr. (This happens even if two identical files are given, e.g. `llvm-diff x.ll x.ll`) This is fix to the bug report https://bugs.llvm.org/show_bug.cgi?id=33623 . Reviewers: dexonsmith, rjmccall Reviewed By: rjmccall Subscribers: chenwj, mgrang, llvm-commits Differential Revision: https://reviews.llvm.org/D34856 llvm-svn: 329957 --- llvm/test/tools/llvm-diff/constantvector.ll | 16 ++++++++++++++++ llvm/test/tools/llvm-diff/indirectbr.ll | 11 +++++++++++ llvm/test/tools/llvm-diff/undef.ll | 11 +++++++++++ llvm/test/tools/llvm-diff/zeroinitializer.bc.ll | 11 +++++++++++ 4 files changed, 49 insertions(+) create mode 100644 llvm/test/tools/llvm-diff/constantvector.ll create mode 100644 llvm/test/tools/llvm-diff/indirectbr.ll create mode 100644 llvm/test/tools/llvm-diff/undef.ll create mode 100644 llvm/test/tools/llvm-diff/zeroinitializer.bc.ll (limited to 'llvm/test/tools/llvm-diff') diff --git a/llvm/test/tools/llvm-diff/constantvector.ll b/llvm/test/tools/llvm-diff/constantvector.ll new file mode 100644 index 00000000000..96bb304eccf --- /dev/null +++ b/llvm/test/tools/llvm-diff/constantvector.ll @@ -0,0 +1,16 @@ +; Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=33623 +; RUN: llvm-diff %s %s + +%struct.it = type { i64, i64* } + +@a_vector = internal global [2 x i64] zeroinitializer, align 16 + +define i32 @foo(%struct.it* %it) { + +entry: + %a = getelementptr inbounds %struct.it, %struct.it* %it, i64 0, i32 1 + %tmp0 = bitcast i64** %a to <2 x i64*>* + store <2 x i64*> , <2 x i64*>* %tmp0, align 8 + + ret i32 0 +} diff --git a/llvm/test/tools/llvm-diff/indirectbr.ll b/llvm/test/tools/llvm-diff/indirectbr.ll new file mode 100644 index 00000000000..cff43fc7eb1 --- /dev/null +++ b/llvm/test/tools/llvm-diff/indirectbr.ll @@ -0,0 +1,11 @@ +; Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=33623 +; RUN: llvm-diff %s %s + +define i32 @foo(i8*) { +entry: + indirectbr i8* %0, [label %A, label %B, label %entry] +A: + ret i32 1 +B: + ret i32 2 +} diff --git a/llvm/test/tools/llvm-diff/undef.ll b/llvm/test/tools/llvm-diff/undef.ll new file mode 100644 index 00000000000..607fb1f425e --- /dev/null +++ b/llvm/test/tools/llvm-diff/undef.ll @@ -0,0 +1,11 @@ +; Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=33623 +; RUN: llvm-diff %s %s + +%A = type { i64, i64 } +@_gm_ = global <2 x %A*> zeroinitializer + +define void @f() { +entry: + store <2 x %A*> undef, <2 x %A*>* @_gm_ + ret void +} diff --git a/llvm/test/tools/llvm-diff/zeroinitializer.bc.ll b/llvm/test/tools/llvm-diff/zeroinitializer.bc.ll new file mode 100644 index 00000000000..a6dece35cdc --- /dev/null +++ b/llvm/test/tools/llvm-diff/zeroinitializer.bc.ll @@ -0,0 +1,11 @@ +; Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=33623 +; RUN: llvm-diff %s %s + +%A = type { i64, i64 } +@_gm_ = global <2 x %A*> zeroinitializer + +define void @f() { +entry: + store <2 x %A*> zeroinitializer, <2 x %A*>* @_gm_ + ret void +} -- cgit v1.2.3