1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00

[EarlyCSE] Verify hash code in regression tests

As discussed in D86843, -earlycse-debug-hash should be used in more regression
tests to catch inconsistency between the hashing and the equivalence check.

Differential Revision: https://reviews.llvm.org/D86863
This commit is contained in:
Bryan Chan 2020-08-30 19:17:43 -04:00
parent 67ef9af256
commit a99283db0a
54 changed files with 57 additions and 57 deletions

View File

@ -1,4 +1,4 @@
; RUN: opt -S -memoryssa -loop-simplify -early-cse-memssa -verify-memoryssa %s | FileCheck %s
; RUN: opt -S -memoryssa -loop-simplify -early-cse-memssa -earlycse-debug-hash -verify-memoryssa %s | FileCheck %s
; RUN: opt -S -memoryssa -loop-simplify -early-cse-memssa -enable-mssa-loop-dependency -verify-memoryssa %s | FileCheck %s
; REQUIRES: asserts
target triple = "x86_64-unknown-linux-gnu"

View File

@ -1,4 +1,4 @@
; RUN: opt -early-cse-memssa -loop-rotate -licm -loop-rotate -S %s -o - | FileCheck %s
; RUN: opt -early-cse-memssa -earlycse-debug-hash -loop-rotate -licm -loop-rotate -S %s -o - | FileCheck %s
; ModuleID = 'bugpoint-reduced-simplified.bc'
source_filename = "bugpoint-output-8903f29.bc"
target datalayout = "e-m:e-i64:64-n32:64"

View File

@ -1,4 +1,4 @@
; RUN: opt -mtriple=x86_64-- -early-cse < %s -S | FileCheck %s
; RUN: opt -mtriple=x86_64-- -early-cse -earlycse-debug-hash < %s -S | FileCheck %s
; CHECK: @foo(x86_mmx bitcast (double 0.000000e+00 to x86_mmx))

View File

@ -1,4 +1,4 @@
; RUN: opt -early-cse -S %s -o - | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S %s -o - | FileCheck %s
; PR40628: The first load below is determined to be redundant by EarlyCSE.
; During salvaging, the corresponding dbg.value could have a DW_OP_deref used

View File

@ -1,4 +1,4 @@
; RUN: opt %s -debugify -early-cse -S | FileCheck %s
; RUN: opt %s -debugify -early-cse -earlycse-debug-hash -S | FileCheck %s
define i32 @foo(i64 %nose, i32 %more) {
; CHECK-LABEL: @foo(
; CHECK: call void @llvm.dbg.value(metadata i64 %nose, metadata [[V1:![0-9]+]], metadata !DIExpression(DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_LLVM_convert, 32, DW_ATE_unsigned

View File

@ -1,4 +1,4 @@
; RUN: opt -S -early-cse < %s | FileCheck %s
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s
; While it is normally okay to do memory optimizations over calls to
; @readonly_function and @readnone_function, we cannot do that if

View File

@ -1,4 +1,4 @@
; RUN: opt -S -early-cse < %s | FileCheck %s
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s
; This test isn't directly related to EarlyCSE or varargs. It is just
; using these as a vehicle for testing the correctness of

View File

@ -1,5 +1,5 @@
; REQUIRES: asserts
; RUN: opt -S -debug-counter=early-cse-skip=1,early-cse-count=1 -early-cse < %s 2>&1 | FileCheck %s
; RUN: opt -S -debug-counter=early-cse-skip=1,early-cse-count=1 -early-cse -earlycse-debug-hash < %s 2>&1 | FileCheck %s
;; Test that, with debug counters on, we only optimize the second CSE opportunity.
define i32 @test(i32 %a, i32 %b) {
; CHECK-LABEL: @test(

View File

@ -1,4 +1,4 @@
; RUN: opt -S -early-cse < %s | FileCheck %s
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s
; RUN: opt -S -gvn < %s | FileCheck %s
; RUN: opt -S -newgvn < %s | FileCheck %s
; RUN: opt -S -O3 < %s | FileCheck %s
@ -101,4 +101,4 @@ declare i8* @llvm.launder.invariant.group.p0i8(i8*)
declare i8* @llvm.strip.invariant.group.p0i8(i8*)
!0 = !{}
!0 = !{}

View File

@ -83,14 +83,14 @@
; Test a function pass.
; RUN: opt -disable-output -disable-verify -early-cse -opt-bisect-limit=-1 \
; RUN: opt -disable-output -disable-verify -early-cse -earlycse-debug-hash -opt-bisect-limit=-1 \
; RUN: %s 2>&1 | FileCheck %s --check-prefix=CHECK-EARLY-CSE
; CHECK-EARLY-CSE: BISECT: running pass ({{[0-9]+}}) Early CSE on function (f1)
; CHECK-EARLY-CSE: BISECT: running pass ({{[0-9]+}}) Early CSE on function (f2)
; CHECK-EARLY-CSE: BISECT: running pass ({{[0-9]+}}) Early CSE on function (f3)
; RUN: opt -disable-output -disable-verify -early-cse -opt-bisect-limit=0 %s \
; RUN: 2>&1 | FileCheck %s --check-prefix=CHECK-NOT-EARLY-CSE
; RUN: opt -disable-output -disable-verify -early-cse -earlycse-debug-hash -opt-bisect-limit=0 \
; RUN: %s 2>&1 | FileCheck %s --check-prefix=CHECK-NOT-EARLY-CSE
; CHECK-NOT-EARLY-CSE: BISECT: NOT running pass ({{[0-9]+}}) Early CSE on function (f1)
; CHECK-NOT-EARLY-CSE: BISECT: NOT running pass ({{[0-9]+}}) Early CSE on function (f2)
; CHECK-NOT-EARLY-CSE: BISECT: NOT running pass ({{[0-9]+}}) Early CSE on function (f3)

View File

@ -1,6 +1,6 @@
; REQUIRES: asserts
; RUN: opt -S -debug-counter=early-cse-skip=1,early-cse-count=1 -early-cse \
; RUN: opt -S -debug-counter=early-cse-skip=1,early-cse-count=1 -early-cse -earlycse-debug-hash \
; RUN: -debug-counter=newgvn-vn-skip=1,newgvn-vn-count=2 -newgvn \
; RUN: -instcombine -print-debug-counter < %s 2>&1 | FileCheck %s
;; Test debug counter prints correct info in right order.

View File

@ -1,4 +1,4 @@
; RUN: opt < %s -S -mtriple=aarch64-none-linux-gnu -mattr=+neon -early-cse | FileCheck %s
; RUN: opt < %s -S -mtriple=aarch64-none-linux-gnu -mattr=+neon -early-cse -earlycse-debug-hash | FileCheck %s
; RUN: opt < %s -S -mtriple=aarch64-none-linux-gnu -mattr=+neon -basic-aa -early-cse-memssa | FileCheck %s
; RUN: opt < %s -S -mtriple=aarch64-none-linux-gnu -mattr=+neon -passes=early-cse | FileCheck %s
; RUN: opt < %s -S -mtriple=aarch64-none-linux-gnu -mattr=+neon -aa-pipeline=basic-aa -passes=early-cse-memssa | FileCheck %s

View File

@ -1,4 +1,4 @@
; RUN: opt -S -early-cse < %s | FileCheck %s
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s
; RUN: opt -S -basic-aa -early-cse-memssa < %s | FileCheck %s
target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
target triple = "aarch64--linux-gnu"

View File

@ -1,4 +1,4 @@
; RUN: opt < %s -S -mtriple=amdgcn-- -early-cse | FileCheck %s
; RUN: opt < %s -S -mtriple=amdgcn-- -early-cse -earlycse-debug-hash | FileCheck %s
; CHECK-LABEL: @no_cse
; CHECK: call i32 @llvm.amdgcn.s.buffer.load.i32(<4 x i32> %in, i32 0, i32 0)

View File

@ -1,4 +1,4 @@
; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -early-cse-memssa < %s | FileCheck %s
; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -early-cse-memssa -earlycse-debug-hash < %s | FileCheck %s
target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5"
; CHECK-LABEL: @memrealtime(

View File

@ -1,4 +1,4 @@
; RUN: opt -S -early-cse < %s | FileCheck %s
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s
; RUN: opt -S -basic-aa -early-cse-memssa < %s | FileCheck %s
target datalayout = "E-m:e-i64:64-n32:64"
target triple = "powerpc64-unknown-linux-gnu"

View File

@ -1,4 +1,4 @@
; RUN: opt < %s -early-cse-memssa -verify-memoryssa -disable-output
; RUN: opt < %s -early-cse-memssa -earlycse-debug-hash -verify-memoryssa -disable-output
; REQUIRES: asserts
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"

View File

@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -early-cse -S < %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S < %s | FileCheck %s
; RUN: opt -basic-aa -early-cse-memssa -S < %s | FileCheck %s
define i32 @test_01(i32 %a, i32 %b) {

View File

@ -1,4 +1,4 @@
; RUN: opt < %s -S -early-cse | FileCheck %s
; RUN: opt < %s -S -early-cse -earlycse-debug-hash | FileCheck %s
; RUN: opt < %s -S -basic-aa -early-cse-memssa | FileCheck %s
; CHECK-LABEL: @test12(

View File

@ -1,4 +1,4 @@
; RUN: opt < %s -S -early-cse | FileCheck %s
; RUN: opt < %s -S -early-cse -earlycse-debug-hash | FileCheck %s
; RUN: opt < %s -S -basic-aa -early-cse-memssa | FileCheck %s
; RUN: opt < %s -S -passes=early-cse | FileCheck %s

View File

@ -1,4 +1,4 @@
; RUN: opt -early-cse -S < %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S < %s | FileCheck %s
; RUN: opt -basic-aa -early-cse-memssa -S < %s | FileCheck %s
; Can we CSE a known condition to a constant?

View File

@ -1,4 +1,4 @@
; RUN: opt -early-cse -S %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S %s | FileCheck %s
%mystruct = type { i32 }

View File

@ -1,4 +1,4 @@
; RUN: opt -S %s -early-cse | FileCheck %s
; RUN: opt -S %s -early-cse -earlycse-debug-hash | FileCheck %s
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"

View File

@ -1,4 +1,4 @@
; RUN: opt -early-cse -S %s -o - | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S %s -o - | FileCheck %s
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
; Function Attrs: nounwind uwtable

View File

@ -1,4 +1,4 @@
; RUN: opt -early-cse -S < %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S < %s | FileCheck %s
; RUN: opt -basic-aa -early-cse-memssa -S < %s | FileCheck %s
; Same as GVN/edge.ll, but updated to reflect EarlyCSE's less powerful
; implementation. EarlyCSE currently doesn't exploit equality comparisons

View File

@ -1,4 +1,4 @@
; RUN: opt -S -early-cse < %s | FileCheck %s
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s
; RUN: opt < %s -S -basic-aa -early-cse-memssa | FileCheck %s
; NOTE: This file is testing the current implementation. Some of
; the transforms used as negative tests below would be legal, but

View File

@ -1,4 +1,4 @@
; RUN: opt -early-cse -S < %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S < %s | FileCheck %s
; RUN: opt -basic-aa -early-cse-memssa -S < %s | FileCheck %s
declare void @use(i1)

View File

@ -1,4 +1,4 @@
; RUN: opt < %s -S -early-cse | FileCheck %s
; RUN: opt < %s -S -early-cse -earlycse-debug-hash | FileCheck %s
; RUN: opt < %s -S -basic-aa -early-cse-memssa | FileCheck %s
; Ensure we don't simplify away additions vectors of +0.0's (same as scalars).

View File

@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -early-cse -S < %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S < %s | FileCheck %s
declare void @func()
declare i32 @"personality_function"()

View File

@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -S -globals-aa -early-cse-memssa | FileCheck %s
; RUN: opt < %s -S -globals-aa -early-cse-memssa -earlycse-debug-hash | FileCheck %s
define i16 @f1() readonly {
ret i16 0

View File

@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -early-cse < %s | FileCheck %s --check-prefixes=CHECK,NO_ASSUME
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s --check-prefixes=CHECK,NO_ASSUME
; RUN: opt < %s -S -basic-aa -early-cse-memssa | FileCheck %s --check-prefixes=CHECK,NO_ASSUME
; RUN: opt < %s -S -basic-aa -early-cse-memssa --enable-knowledge-retention | FileCheck %s --check-prefixes=CHECK,USE_ASSUME

View File

@ -1,4 +1,4 @@
; RUN: opt -early-cse -S < %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S < %s | FileCheck %s
; RUN: opt -basic-aa -early-cse-memssa -S < %s | FileCheck %s
; PR12231

View File

@ -1,4 +1,4 @@
; RUN: opt -S < %s -early-cse | FileCheck %s
; RUN: opt -S < %s -early-cse -earlycse-debug-hash | FileCheck %s
declare void @llvm.sideeffect()

View File

@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -early-cse < %s | FileCheck %s --check-prefixes=CHECK,NO_ASSUME
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s --check-prefixes=CHECK,NO_ASSUME
; RUN: opt -S -basic-aa -early-cse-memssa < %s | FileCheck %s --check-prefixes=CHECK,NO_ASSUME
; RUN: opt -S -basic-aa -early-cse-memssa --enable-knowledge-retention < %s | FileCheck %s --check-prefixes=CHECK,USE_ASSUME

View File

@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature
; RUN: opt < %s -S -early-cse | FileCheck %s --check-prefixes=CHECK,NO_ASSUME
; RUN: opt < %s -S -early-cse -earlycse-debug-hash | FileCheck %s --check-prefixes=CHECK,NO_ASSUME
; RUN: opt < %s -S -early-cse --enable-knowledge-retention | FileCheck %s --check-prefixes=CHECK,USE_ASSUME
; RUN: opt < %s -S -passes=early-cse | FileCheck %s --check-prefixes=CHECK,NO_ASSUME

View File

@ -1,4 +1,4 @@
; RUN: opt < %s -S -early-cse | FileCheck %s --check-prefix=CHECK-NOMEMSSA
; RUN: opt < %s -S -early-cse -earlycse-debug-hash | FileCheck %s --check-prefix=CHECK-NOMEMSSA
; RUN: opt < %s -S -basic-aa -early-cse-memssa | FileCheck %s
; RUN: opt < %s -S -passes='early-cse' | FileCheck %s --check-prefix=CHECK-NOMEMSSA
; RUN: opt < %s -S -aa-pipeline=basic-aa -passes='early-cse-memssa' | FileCheck %s

View File

@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -early-cse -S < %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S < %s | FileCheck %s
; RUN: opt -basic-aa -early-cse-memssa -S < %s | FileCheck %s
; Most basic case, fully identical PHI nodes

View File

@ -1,4 +1,4 @@
; RUN: opt -early-cse-memssa -S %s | FileCheck %s
; RUN: opt -early-cse-memssa -earlycse-debug-hash -S %s | FileCheck %s
; CHECK: define void @patatino() {
; CHECK: for.cond:

View File

@ -1,4 +1,4 @@
; RUN: opt -S -early-cse < %s | FileCheck %s
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s
declare void @readnone_may_unwind() readnone

View File

@ -1,4 +1,4 @@
; RUN: opt -S -early-cse < %s | FileCheck %s
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s
@var = global i32 undef
declare void @foo() nounwind

View File

@ -1,4 +1,4 @@
; RUN: opt < %s -early-cse-memssa -gvn-hoist -S | FileCheck %s
; RUN: opt < %s -early-cse-memssa -earlycse-debug-hash -gvn-hoist -S | FileCheck %s
; Make sure opt won't crash and that this pair of
; instructions (load, icmp) is hoisted successfully

View File

@ -1,4 +1,4 @@
; RUN: opt < %s -early-cse-memssa -gvn-hoist -S | FileCheck %s
; RUN: opt < %s -early-cse-memssa -earlycse-debug-hash -gvn-hoist -S | FileCheck %s
; Make sure opt doesn't crash. On top of that, the instructions
; of the side blocks should be hoisted to the entry block.

View File

@ -1,4 +1,4 @@
; RUN: opt -inline -early-cse < %s
; RUN: opt -inline -early-cse -earlycse-debug-hash < %s
; This test used to crash (PR35469).
define void @func1() {

View File

@ -1,4 +1,4 @@
; RUN: opt -instcombine -early-cse -S < %s | FileCheck %s
; RUN: opt -instcombine -early-cse -earlycse-debug-hash -S < %s | FileCheck %s
; CHECK-LABEL: define i8* @simplifyNullLaunder()

View File

@ -1,4 +1,4 @@
; RUN: opt -early-cse -S -o - %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S -o - %s | FileCheck %s
target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64-ni:2"
target triple = "armv7-unknown-linux-gnueabi"

View File

@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -early-cse -S -o - %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S -o - %s | FileCheck %s
declare double @acos(double)
define double @f_acos() {

View File

@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -early-cse -S -o - %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S -o - %s | FileCheck %s
declare double @atan2(double, double)
define double @f_atan2() {

View File

@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -early-cse < %s | FileCheck %s
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s
declare float @nearbyintf(float) #0
declare float @llvm.nearbyint.f32(float) #0

View File

@ -1,4 +1,4 @@
; RUN: opt -S -early-cse < %s | FileCheck %s
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s
declare float @roundf(float) #0
declare float @llvm.round.f32(float) #0

View File

@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -early-cse < %s | FileCheck %s
; RUN: opt -S -early-cse -earlycse-debug-hash < %s | FileCheck %s
declare float @truncf(float) #0
declare float @llvm.trunc.f32(float) #0

View File

@ -1,4 +1,4 @@
; RUN: opt -early-cse -S < %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S < %s | FileCheck %s
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64"

View File

@ -1,4 +1,4 @@
; RUN: opt -early-cse -S < %s | FileCheck %s
; RUN: opt -early-cse -earlycse-debug-hash -S < %s | FileCheck %s
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64"

View File

@ -1,4 +1,4 @@
; RUN: opt < %s -nary-reassociate -early-cse -S | FileCheck %s
; RUN: opt < %s -nary-reassociate -early-cse -earlycse-debug-hash -S | FileCheck %s
; RUN: opt < %s -passes='nary-reassociate' -S | opt -early-cse -S | FileCheck %s
target datalayout = "e-i64:64-v16:16-v32:32-n16:32:64"

View File

@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -reassociate -early-cse -S < %s | FileCheck %s
; RUN: opt -reassociate -early-cse -earlycse-debug-hash -S < %s | FileCheck %s
@num1 = local_unnamed_addr global i32 0, align 4
@num2 = local_unnamed_addr global i32 0, align 4