summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorBrian Gesiak <modocache@gmail.com>2018-04-12 21:28:04 +0000
committerBrian Gesiak <modocache@gmail.com>2018-04-12 21:28:04 +0000
commitd0d2ce942507daf7d3315ef5e070e89f2823f1ef (patch)
treed56052f4e7c668bfab617dbed06d0f127fb3de59 /llvm/test
parent00db326b0d5fdd10998fe070fdaf80d3cc731585 (diff)
downloadbcm5719-llvm-d0d2ce942507daf7d3315ef5e070e89f2823f1ef.tar.gz
bcm5719-llvm-d0d2ce942507daf7d3315ef5e070e89f2823f1ef.zip
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
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/tools/llvm-diff/constantvector.ll16
-rw-r--r--llvm/test/tools/llvm-diff/indirectbr.ll11
-rw-r--r--llvm/test/tools/llvm-diff/undef.ll11
-rw-r--r--llvm/test/tools/llvm-diff/zeroinitializer.bc.ll11
4 files changed, 49 insertions, 0 deletions
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*> <i64* getelementptr inbounds ([2 x i64], [2 x i64]* @a_vector, i64 0, i64 0), i64* getelementptr inbounds ([2 x i64], [2 x i64]* @a_vector, i64 0, i64 0)>, <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
+}
OpenPOWER on IntegriCloud