[InstCombine] use redirect of input file in regression tests; NFC
This is a repeat of 1880092722 from 2009. We should have less risk
of hitting bugs at this point because we auto-generate positive CHECK
lines only, but this makes things consistent.
Copying the original commit msg:
"Change tests from "opt %s" to "opt < %s" so that opt doesn't see the
input filename so that opt doesn't print the input filename in the
output so that grep lines in the tests don't unintentionally match
strings in the input filename."
This commit is contained in:
parent
51323fe2b8
commit
ee34d9b210
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
declare i8 @gen8()
|
||||
declare void @use8(i8)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we extract (via lshr) some high bits, and then perform their sign-extension
|
||||
; conditionally depending on whether the extracted value is negative or not
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
; RUN: opt %s -instcombine -verify -S -o - | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -verify -S -o - | FileCheck %s
|
||||
|
||||
; Hand-reduced from this example.
|
||||
; -g -O -mllvm -disable-llvm-optzns -gno-column-info
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
define i32 @t0(i64 %x) {
|
||||
; CHECK-LABEL: @t0(
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
define i64 @t0(i64 %x) {
|
||||
; CHECK-LABEL: @t0(
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
define i1 @icmp_ugt_32(i64) {
|
||||
; CHECK-LABEL: @icmp_ugt_32(
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
; RUN: opt %s -disable-output -branch-prob -instcombine -block-freq -verify-dom-info
|
||||
; RUN: opt %s -postdomtree -analyze | FileCheck --check-prefixes=CHECK-POSTDOM %s
|
||||
; RUN: opt %s -passes='print<postdomtree>' 2>&1 | FileCheck --check-prefixes=CHECK-POSTDOM %s
|
||||
; RUN: opt < %s -disable-output -branch-prob -instcombine -block-freq -verify-dom-info
|
||||
; RUN: opt < %s -postdomtree -analyze | FileCheck --check-prefixes=CHECK-POSTDOM %s
|
||||
; RUN: opt < %s -passes='print<postdomtree>' 2>&1 | FileCheck --check-prefixes=CHECK-POSTDOM %s
|
||||
|
||||
; Demonstrate that Predicate Canonicalization (InstCombine) does not invalidate PostDomTree
|
||||
; if the basic block is post-dom unreachable.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; For pattern ((X l>> Y) & ~C) ==/!= 0; when C+1 is power of 2
|
||||
; it may be optimal to fold into (X l>> Y) </>= C+1
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; For pattern ((X l>> Y) & signbit) ==/!= 0
|
||||
; it may be optimal to fold into (X l>> Y) >=/< 0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -instcombine-infinite-loop-threshold=3 -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -instcombine-infinite-loop-threshold=3 -S | FileCheck %s
|
||||
|
||||
@var_7 = external global i8, align 1
|
||||
@var_1 = external global i32, align 4
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, lshr then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %s -instcombine
|
||||
; RUN: opt < %s -instcombine
|
||||
|
||||
define i32 @f(i32 %theNumber) {
|
||||
entry:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
define i32 @sharpening(i32 %b340, i1 %c, i1 %d, i32 %e, i32 %f, i32 %g, i32 %h) {
|
||||
; CHECK-LABEL: @sharpening(
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
define i32 @PR38915(i32 %x, i32 %y, i32 %z) {
|
||||
; CHECK-LABEL: @PR38915(
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
@wyhash64_x = global i64 0, align 8
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, lshr then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, ashr then performs
|
||||
; left-shift of those bits, we can combine those two shifts into a shift+mask.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, if none of the bits that are left after the final
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, if none of the bits that are left after the final
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, if none of the bits that are left after the final
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, if none of the bits that are left after the final
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, if none of the bits that are left after the final
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have some pattern that leaves only some low bits set, and then performs
|
||||
; left-shift of those bits, if none of the bits that are left after the final
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have:
|
||||
; (data & (-1 << nbits)) outer>> nbits
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
declare void @use8(i8)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
declare void @use8(i8)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Here we subtract two values, check that subtraction did not overflow AND
|
||||
; that the result is non-zero. This can be simplified just to a comparison
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Fold
|
||||
; x s/EXACT (-1 << y)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Fold
|
||||
; x s/EXACT (1 << y)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Fold
|
||||
; x s/ (-1 << y)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Given pattern:
|
||||
; icmp eq/ne (and ((x shift Q), (y oppositeshift K))), 0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Given pattern:
|
||||
; icmp eq/ne (and ((x shift Q), (y oppositeshift K))), 0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Given pattern:
|
||||
; icmp eq/ne (and ((x shift Q), (y oppositeshift K))), 0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Given pattern:
|
||||
; (trunc (iSrc x a>> Q) to iDst) a>> K
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Given pattern:
|
||||
; (trunc (iSrc x l>> Q) to iDst) l>> K
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Given pattern:
|
||||
; (trunc (x << Q) to iDst) << K
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Given pattern:
|
||||
; (x shiftopcode Q) shiftopcode K
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; If we have a shift by sign-extended value, we can replace sign-extension
|
||||
; with zero-extension.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; The pattern:
|
||||
; icmp eq/ne (and (X shift Y), Z), 0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; For pattern ((X << Y) & ~C) ==/!= 0; when C+1 is power of 2
|
||||
; it may be optimal to fold into (X << Y) </>= C+1
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; For pattern ((X << Y) & signbit) ==/!= 0
|
||||
; it may be optimal to fold into (X << Y) >=/< 0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; For pattern (X & (signbit l>> Y)) ==/!= 0
|
||||
; it may be optimal to fold into (X << Y) >=/< 0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; For pattern (X & (signbit << Y)) ==/!= 0
|
||||
; it may be optimal to fold into (X l>> Y) >=/< 0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Fold
|
||||
; x - ((x / y) * y)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
declare void @llvm.assume(i1)
|
||||
declare i8 @gen8()
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
declare void @use4(i4)
|
||||
declare void @use8(i8)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Should fold
|
||||
; (%x + %y) u>= %x
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Should fold
|
||||
; (%y ^ -1) u>= %x
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Should fold
|
||||
; (%x + %y) u>= %x
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Should fold
|
||||
; (%x + %y) u< %x
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Should fold
|
||||
; (%y ^ -1) u< %x
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Should fold
|
||||
; (%x + %y) u< %x
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Fold
|
||||
; ((%x * %y) u/ %x) == %y
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Fold
|
||||
; (-1 u/ %x) u>= %y
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Fold
|
||||
; ((%x * %y) u/ %x) != %y
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Fold
|
||||
; (-1 u/ %x) u< %y
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Fold
|
||||
; (%x - %y) u<= %x
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Fold
|
||||
; (%x - %y) u> %x
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; Fold
|
||||
; x - ((x / y) * y)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt %s -instcombine -S | FileCheck %s
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
declare void @use16(i16)
|
||||
declare void @use32(i32)
|
||||
|
|
|
|||
Loading…
Reference in New Issue