blob: 617febdc01669c340535d0e46c8f4660671a18b6 [file] [log] [blame]
Joey Gouly58bf9512013-01-10 10:31:11 +00001; RUN: opt < %s -S -globalopt -instcombine | FileCheck %s
Lang Hames459b5dc2014-03-23 04:22:31 +00002;; check that global opt turns integers that only hold 0 or 1 into bools.
Chris Lattner17fbc80f2004-12-12 05:52:12 +00003
Joey Gouly58bf9512013-01-10 10:31:11 +00004@G = internal addrspace(1) global i32 0
Benjamin Kramerfc0c7bf2013-03-09 18:34:27 +00005; CHECK: @G
Benjamin Kramer01b75cc2013-03-09 18:25:40 +00006; CHECK: addrspace(1)
Lang Hames459b5dc2014-03-23 04:22:31 +00007; CHECK: global i1 false
Chris Lattner17fbc80f2004-12-12 05:52:12 +00008
Tanya Lattner5640bd12008-03-01 09:15:35 +00009define void @set1() {
Joey Gouly58bf9512013-01-10 10:31:11 +000010 store i32 0, i32 addrspace(1)* @G
Lang Hames459b5dc2014-03-23 04:22:31 +000011; CHECK: store i1 false
Joey Gouly58bf9512013-01-10 10:31:11 +000012 ret void
Chris Lattner17fbc80f2004-12-12 05:52:12 +000013}
14
Tanya Lattner5640bd12008-03-01 09:15:35 +000015define void @set2() {
Joey Gouly58bf9512013-01-10 10:31:11 +000016 store i32 1, i32 addrspace(1)* @G
Lang Hames459b5dc2014-03-23 04:22:31 +000017; CHECK: store i1 true
Joey Gouly58bf9512013-01-10 10:31:11 +000018 ret void
Chris Lattner17fbc80f2004-12-12 05:52:12 +000019}
Tanya Lattner5640bd12008-03-01 09:15:35 +000020
21define i1 @get() {
Stephen Linc1c7a132013-07-14 01:42:54 +000022; CHECK-LABEL: @get(
David Blaikiea79ac142015-02-27 21:17:42 +000023 %A = load i32, i32 addrspace(1) * @G
Joey Gouly58bf9512013-01-10 10:31:11 +000024 %C = icmp slt i32 %A, 2
25 ret i1 %C
26; CHECK: ret i1 true
Tanya Lattner5640bd12008-03-01 09:15:35 +000027}
28