llvm-6502/test/Transforms/ConstProp/2009-09-19-ConstFold-i1-ConstExpr.ll

37 lines
1.1 KiB
LLVM
Raw Normal View History

; RUN: llvm-as < %s | llvm-dis | FileCheck %s
@X = external global i8
@Y = external global i8
@Z = external global i8
global i1 add (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
; CHECK: xor
global i1 sub (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
; CHECK: xor
global i1 mul (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
; CHECK: and
global i1 sdiv (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
; CHECK-NOT: @Z
; CHECK: i1 icmp ult (i8* @X, i8* @Y)
global i1 udiv (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
; CHECK-NOT: @Z
; CHECK: i1 icmp ult (i8* @X, i8* @Y)
global i1 srem (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
; CHECK-NOT: icmp
; CHECK: i1 false
global i1 urem (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
; CHECK-NOT: icmp
; CHECK: i1 false
global i1 icmp ule (i32* bitcast (i8* @X to i32*), i32* bitcast (i8* @Y to i32*))
; CHECK-NOT: bitcast
; CHECK: icmp
global i1 icmp eq (i1 icmp ult (i8* @X, i8* @Y), i1 false)
; CHECK-NOT: false
; CHECK: icmp
global i1 icmp eq (i1 icmp ult (i8* @X, i8* @Y), i1 true)
; CHECK-NOT: true
; CHECK: icmp