1c23a780cSMin-Yih Hsu; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2718a9793SMin-Yih Hsu; RUN: llc < %s -mtriple=m68k -verify-machineinstrs | FileCheck %s 3c23a780cSMin-Yih Hsu 4cd0d11beSFangrui Songdefine i32 @test1(ptr %y) nounwind { 5c23a780cSMin-Yih Hsu; CHECK-LABEL: test1: 6c23a780cSMin-Yih Hsu; CHECK: ; %bb.0: 7c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (4,%sp), %a0 8c23a780cSMin-Yih Hsu; CHECK-NEXT: cmpi.l #0, (%a0) 9c23a780cSMin-Yih Hsu; CHECK-NEXT: beq .LBB0_2 10c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.1: ; %cond_false 11*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #0, %d0 12c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 13c23a780cSMin-Yih Hsu; CHECK-NEXT: .LBB0_2: ; %cond_true 14*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #1, %d0 15c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 16cd0d11beSFangrui Song %tmp = load i32, ptr %y ; <i32> [#uses=1] 17c23a780cSMin-Yih Hsu %tmp.upgrd.1 = icmp eq i32 %tmp, 0 ; <i1> [#uses=1] 18c23a780cSMin-Yih Hsu br i1 %tmp.upgrd.1, label %cond_true, label %cond_false 19c23a780cSMin-Yih Hsu 20c23a780cSMin-Yih Hsucond_false: ; preds = %0 21c23a780cSMin-Yih Hsu ret i32 0 22c23a780cSMin-Yih Hsu 23c23a780cSMin-Yih Hsucond_true: ; preds = %0 24c23a780cSMin-Yih Hsu ret i32 1 25c23a780cSMin-Yih Hsu} 26c23a780cSMin-Yih Hsu 27cd0d11beSFangrui Songdefine i32 @test2(ptr %y) nounwind { 28c23a780cSMin-Yih Hsu; CHECK-LABEL: test2: 29c23a780cSMin-Yih Hsu; CHECK: ; %bb.0: 30c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (4,%sp), %a0 31c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (%a0), %d0 32c23a780cSMin-Yih Hsu; CHECK-NEXT: and.l #536870911, %d0 33c23a780cSMin-Yih Hsu; CHECK-NEXT: cmpi.l #0, %d0 34c23a780cSMin-Yih Hsu; CHECK-NEXT: beq .LBB1_2 35c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.1: ; %cond_false 36*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #0, %d0 37c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 38c23a780cSMin-Yih Hsu; CHECK-NEXT: .LBB1_2: ; %cond_true 39*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #1, %d0 40c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 41cd0d11beSFangrui Song %tmp = load i32, ptr %y ; <i32> [#uses=1] 42c23a780cSMin-Yih Hsu %tmp1 = shl i32 %tmp, 3 ; <i32> [#uses=1] 43c23a780cSMin-Yih Hsu %tmp1.upgrd.2 = icmp eq i32 %tmp1, 0 ; <i1> [#uses=1] 44c23a780cSMin-Yih Hsu br i1 %tmp1.upgrd.2, label %cond_true, label %cond_false 45c23a780cSMin-Yih Hsu 46c23a780cSMin-Yih Hsucond_false: ; preds = %0 47c23a780cSMin-Yih Hsu ret i32 0 48c23a780cSMin-Yih Hsu 49c23a780cSMin-Yih Hsucond_true: ; preds = %0 50c23a780cSMin-Yih Hsu ret i32 1 51c23a780cSMin-Yih Hsu} 52c23a780cSMin-Yih Hsu 53cd0d11beSFangrui Songdefine i8 @test2b(ptr %y) nounwind { 54c23a780cSMin-Yih Hsu; CHECK-LABEL: test2b: 55c23a780cSMin-Yih Hsu; CHECK: ; %bb.0: 56c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (4,%sp), %a0 57c23a780cSMin-Yih Hsu; CHECK-NEXT: move.b (%a0), %d0 58c23a780cSMin-Yih Hsu; CHECK-NEXT: and.b #31, %d0 59c23a780cSMin-Yih Hsu; CHECK-NEXT: cmpi.b #0, %d0 60c23a780cSMin-Yih Hsu; CHECK-NEXT: beq .LBB2_2 61c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.1: ; %cond_false 62*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #0, %d0 63c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 64c23a780cSMin-Yih Hsu; CHECK-NEXT: .LBB2_2: ; %cond_true 65*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #1, %d0 66c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 67cd0d11beSFangrui Song %tmp = load i8, ptr %y ; <i8> [#uses=1] 68c23a780cSMin-Yih Hsu %tmp1 = shl i8 %tmp, 3 ; <i8> [#uses=1] 69c23a780cSMin-Yih Hsu %tmp1.upgrd.2 = icmp eq i8 %tmp1, 0 ; <i1> [#uses=1] 70c23a780cSMin-Yih Hsu br i1 %tmp1.upgrd.2, label %cond_true, label %cond_false 71c23a780cSMin-Yih Hsu 72c23a780cSMin-Yih Hsucond_false: ; preds = %0 73c23a780cSMin-Yih Hsu ret i8 0 74c23a780cSMin-Yih Hsu 75c23a780cSMin-Yih Hsucond_true: ; preds = %0 76c23a780cSMin-Yih Hsu ret i8 1 77c23a780cSMin-Yih Hsu} 78c23a780cSMin-Yih Hsu 79c23a780cSMin-Yih Hsudefine i64 @test3(i64 %x) nounwind { 80c23a780cSMin-Yih Hsu; CHECK-LABEL: test3: 81c23a780cSMin-Yih Hsu; CHECK: ; %bb.0: 82c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (8,%sp), %d0 83c23a780cSMin-Yih Hsu; CHECK-NEXT: or.l (4,%sp), %d0 84c23a780cSMin-Yih Hsu; CHECK-NEXT: seq %d0 85c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l %d0, %d1 86c23a780cSMin-Yih Hsu; CHECK-NEXT: and.l #255, %d1 87*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #0, %d0 88c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 89c23a780cSMin-Yih Hsu %t = icmp eq i64 %x, 0 90c23a780cSMin-Yih Hsu %r = zext i1 %t to i64 91c23a780cSMin-Yih Hsu ret i64 %r 92c23a780cSMin-Yih Hsu} 93c23a780cSMin-Yih Hsu 94c23a780cSMin-Yih Hsudefine i64 @test4(i64 %x) nounwind { 95c23a780cSMin-Yih Hsu; CHECK-LABEL: test4: 96c23a780cSMin-Yih Hsu; CHECK: ; %bb.0: 97657bb726SMin-Yih Hsu; CHECK-NEXT: suba.l #4, %sp 98c23a780cSMin-Yih Hsu; CHECK-NEXT: movem.l %d2, (0,%sp) ; 8-byte Folded Spill 99c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (8,%sp), %d1 100*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #0, %d0 101c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (12,%sp), %d2 102c23a780cSMin-Yih Hsu; CHECK-NEXT: sub.l #1, %d2 103c23a780cSMin-Yih Hsu; CHECK-NEXT: subx.l %d0, %d1 104c23a780cSMin-Yih Hsu; CHECK-NEXT: slt %d1 105c23a780cSMin-Yih Hsu; CHECK-NEXT: and.l #255, %d1 106c23a780cSMin-Yih Hsu; CHECK-NEXT: movem.l (0,%sp), %d2 ; 8-byte Folded Reload 107657bb726SMin-Yih Hsu; CHECK-NEXT: adda.l #4, %sp 108c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 109c23a780cSMin-Yih Hsu %t = icmp slt i64 %x, 1 110c23a780cSMin-Yih Hsu %r = zext i1 %t to i64 111c23a780cSMin-Yih Hsu ret i64 %r 112c23a780cSMin-Yih Hsu} 113c23a780cSMin-Yih Hsu 114c23a780cSMin-Yih Hsudefine i32 @test6() nounwind align 2 { 115c23a780cSMin-Yih Hsu; CHECK-LABEL: test6: 116c23a780cSMin-Yih Hsu; CHECK: ; %bb.0: 117657bb726SMin-Yih Hsu; CHECK-NEXT: suba.l #20, %sp 118c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (12,%sp), %d0 119c23a780cSMin-Yih Hsu; CHECK-NEXT: or.l (8,%sp), %d0 120c23a780cSMin-Yih Hsu; CHECK-NEXT: beq .LBB5_1 121c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.2: ; %F 122*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #0, %d0 123657bb726SMin-Yih Hsu; CHECK-NEXT: adda.l #20, %sp 124c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 125c23a780cSMin-Yih Hsu; CHECK-NEXT: .LBB5_1: ; %T 126*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #1, %d0 127657bb726SMin-Yih Hsu; CHECK-NEXT: adda.l #20, %sp 128c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 129c23a780cSMin-Yih Hsu %A = alloca {i64, i64}, align 8 130cd0d11beSFangrui Song %B = getelementptr inbounds {i64, i64}, ptr %A, i64 0, i32 1 131cd0d11beSFangrui Song %C = load i64, ptr %B 132c23a780cSMin-Yih Hsu %D = icmp eq i64 %C, 0 133c23a780cSMin-Yih Hsu br i1 %D, label %T, label %F 134c23a780cSMin-Yih HsuT: 135c23a780cSMin-Yih Hsu ret i32 1 136c23a780cSMin-Yih Hsu 137c23a780cSMin-Yih HsuF: 138c23a780cSMin-Yih Hsu ret i32 0 139c23a780cSMin-Yih Hsu} 140c23a780cSMin-Yih Hsu 141c23a780cSMin-Yih Hsudefine i32 @test7(i64 %res) nounwind { 142c23a780cSMin-Yih Hsu; CHECK-LABEL: test7: 143c23a780cSMin-Yih Hsu; CHECK: ; %bb.0: ; %entry 144c23a780cSMin-Yih Hsu; CHECK-NEXT: cmpi.l #0, (4,%sp) 145c23a780cSMin-Yih Hsu; CHECK-NEXT: seq %d0 146c23a780cSMin-Yih Hsu; CHECK-NEXT: and.l #255, %d0 147c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 148c23a780cSMin-Yih Hsuentry: 149c23a780cSMin-Yih Hsu %lnot = icmp ult i64 %res, 4294967296 150c23a780cSMin-Yih Hsu %lnot.ext = zext i1 %lnot to i32 151c23a780cSMin-Yih Hsu ret i32 %lnot.ext 152c23a780cSMin-Yih Hsu} 153c23a780cSMin-Yih Hsu 154c23a780cSMin-Yih Hsudefine i32 @test8(i64 %res) nounwind { 155c23a780cSMin-Yih Hsu; CHECK-LABEL: test8: 156c23a780cSMin-Yih Hsu; CHECK: ; %bb.0: ; %entry 157c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (4,%sp), %d0 158c23a780cSMin-Yih Hsu; CHECK-NEXT: sub.l #3, %d0 159c23a780cSMin-Yih Hsu; CHECK-NEXT: scs %d0 160c23a780cSMin-Yih Hsu; CHECK-NEXT: and.l #255, %d0 161c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 162c23a780cSMin-Yih Hsuentry: 163c23a780cSMin-Yih Hsu %lnot = icmp ult i64 %res, 12884901888 164c23a780cSMin-Yih Hsu %lnot.ext = zext i1 %lnot to i32 165c23a780cSMin-Yih Hsu ret i32 %lnot.ext 166c23a780cSMin-Yih Hsu} 167c23a780cSMin-Yih Hsu 168c23a780cSMin-Yih Hsudefine i32 @test11(i64 %l) nounwind { 169c23a780cSMin-Yih Hsu; CHECK-LABEL: test11: 170c23a780cSMin-Yih Hsu; CHECK: ; %bb.0: ; %entry 171c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (4,%sp), %d0 172c23a780cSMin-Yih Hsu; CHECK-NEXT: and.l #-32768, %d0 17313d59a8eSSimon Pilgrim; CHECK-NEXT: sub.l #32768, %d0 174c23a780cSMin-Yih Hsu; CHECK-NEXT: seq %d0 175c23a780cSMin-Yih Hsu; CHECK-NEXT: and.l #255, %d0 176c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 177c23a780cSMin-Yih Hsuentry: 178c23a780cSMin-Yih Hsu %shr.mask = and i64 %l, -140737488355328 179c23a780cSMin-Yih Hsu %cmp = icmp eq i64 %shr.mask, 140737488355328 180c23a780cSMin-Yih Hsu %conv = zext i1 %cmp to i32 181c23a780cSMin-Yih Hsu ret i32 %conv 182c23a780cSMin-Yih Hsu} 183c23a780cSMin-Yih Hsu 184c23a780cSMin-Yih Hsudefine i32 @test13(i32 %mask, i32 %base, i32 %intra) { 185c23a780cSMin-Yih Hsu; CHECK-LABEL: test13: 186c23a780cSMin-Yih Hsu; CHECK: .cfi_startproc 187c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.0: 188c23a780cSMin-Yih Hsu; CHECK-NEXT: move.b (7,%sp), %d0 189c23a780cSMin-Yih Hsu; CHECK-NEXT: and.b #8, %d0 190c23a780cSMin-Yih Hsu; CHECK-NEXT: cmpi.b #0, %d0 191c23a780cSMin-Yih Hsu; CHECK-NEXT: bne .LBB9_1 192c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.2: 193c23a780cSMin-Yih Hsu; CHECK-NEXT: lea (8,%sp), %a0 194c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (%a0), %d0 195c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 196c23a780cSMin-Yih Hsu; CHECK-NEXT: .LBB9_1: 197c23a780cSMin-Yih Hsu; CHECK-NEXT: lea (12,%sp), %a0 198c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (%a0), %d0 199c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 200c23a780cSMin-Yih Hsu %and = and i32 %mask, 8 201c23a780cSMin-Yih Hsu %tobool = icmp ne i32 %and, 0 202c23a780cSMin-Yih Hsu %cond = select i1 %tobool, i32 %intra, i32 %base 203c23a780cSMin-Yih Hsu ret i32 %cond 204c23a780cSMin-Yih Hsu} 205c23a780cSMin-Yih Hsu 206c23a780cSMin-Yih Hsudefine i32 @test14(i32 %mask, i32 %base, i32 %intra) #0 { 207c23a780cSMin-Yih Hsu; CHECK-LABEL: test14: 208c23a780cSMin-Yih Hsu; CHECK: .cfi_startproc 209c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.0: 210c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (4,%sp), %d0 211c23a780cSMin-Yih Hsu; CHECK-NEXT: lsr.l #7, %d0 212c23a780cSMin-Yih Hsu; CHECK-NEXT: cmpi.l #0, %d0 213c23a780cSMin-Yih Hsu; CHECK-NEXT: bpl .LBB10_1 214c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.2: 215c23a780cSMin-Yih Hsu; CHECK-NEXT: lea (8,%sp), %a0 216c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (%a0), %d0 217c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 218c23a780cSMin-Yih Hsu; CHECK-NEXT: .LBB10_1: 219c23a780cSMin-Yih Hsu; CHECK-NEXT: lea (12,%sp), %a0 220c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (%a0), %d0 221c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 222c23a780cSMin-Yih Hsu %s = lshr i32 %mask, 7 223c23a780cSMin-Yih Hsu %tobool = icmp sgt i32 %s, -1 224c23a780cSMin-Yih Hsu %cond = select i1 %tobool, i32 %intra, i32 %base 225c23a780cSMin-Yih Hsu ret i32 %cond 226c23a780cSMin-Yih Hsu} 227c23a780cSMin-Yih Hsu 228c23a780cSMin-Yih Hsudefine zeroext i1 @test15(i32 %bf.load, i32 %n) { 229c23a780cSMin-Yih Hsu; CHECK-LABEL: test15: 230c23a780cSMin-Yih Hsu; CHECK: .cfi_startproc 231c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.0: 232*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #16, %d0 233c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (4,%sp), %d1 234c23a780cSMin-Yih Hsu; CHECK-NEXT: lsr.l %d0, %d1 235c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l %d1, %d0 236c23a780cSMin-Yih Hsu; CHECK-NEXT: sub.l (8,%sp), %d0 237c23a780cSMin-Yih Hsu; CHECK-NEXT: scc %d0 238c23a780cSMin-Yih Hsu; CHECK-NEXT: cmpi.l #0, %d1 239c23a780cSMin-Yih Hsu; CHECK-NEXT: seq %d1 240c23a780cSMin-Yih Hsu; CHECK-NEXT: or.b %d0, %d1 241c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l %d1, %d0 242c23a780cSMin-Yih Hsu; CHECK-NEXT: and.l #255, %d0 243c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 244c23a780cSMin-Yih Hsu %bf.lshr = lshr i32 %bf.load, 16 245c23a780cSMin-Yih Hsu %cmp2 = icmp eq i32 %bf.lshr, 0 246c23a780cSMin-Yih Hsu %cmp5 = icmp uge i32 %bf.lshr, %n 247c23a780cSMin-Yih Hsu %.cmp5 = or i1 %cmp2, %cmp5 248c23a780cSMin-Yih Hsu ret i1 %.cmp5 249c23a780cSMin-Yih Hsu} 250c23a780cSMin-Yih Hsu 251c23a780cSMin-Yih Hsudefine i8 @test16(i16 signext %L) { 252c23a780cSMin-Yih Hsu; CHECK-LABEL: test16: 253c23a780cSMin-Yih Hsu; CHECK: .cfi_startproc 254c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.0: 255*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #15, %d1 256c23a780cSMin-Yih Hsu; CHECK-NEXT: move.w (6,%sp), %d0 257c23a780cSMin-Yih Hsu; CHECK-NEXT: lsr.w %d1, %d0 258c23a780cSMin-Yih Hsu; CHECK-NEXT: eori.b #1, %d0 259c23a780cSMin-Yih Hsu; CHECK-NEXT: ; kill: def $bd0 killed $bd0 killed $wd0 260c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 261c23a780cSMin-Yih Hsu %lshr = lshr i16 %L, 15 262c23a780cSMin-Yih Hsu %trunc = trunc i16 %lshr to i8 263c23a780cSMin-Yih Hsu %not = xor i8 %trunc, 1 264c23a780cSMin-Yih Hsu ret i8 %not 265c23a780cSMin-Yih Hsu} 266c23a780cSMin-Yih Hsu 267c23a780cSMin-Yih Hsudefine i8 @test18(i64 %L) { 268c23a780cSMin-Yih Hsu; CHECK-LABEL: test18: 269c23a780cSMin-Yih Hsu; CHECK: .cfi_startproc 270c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.0: 271*c4c9d4f3SPeter Lafreniere; CHECK-NEXT: moveq #31, %d1 272c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (4,%sp), %d0 273c23a780cSMin-Yih Hsu; CHECK-NEXT: lsr.l %d1, %d0 274c23a780cSMin-Yih Hsu; CHECK-NEXT: eori.b #1, %d0 275c23a780cSMin-Yih Hsu; CHECK-NEXT: ; kill: def $bd0 killed $bd0 killed $d0 276c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 277c23a780cSMin-Yih Hsu %lshr = lshr i64 %L, 63 278c23a780cSMin-Yih Hsu %trunc = trunc i64 %lshr to i8 279c23a780cSMin-Yih Hsu %not = xor i8 %trunc, 1 280c23a780cSMin-Yih Hsu ret i8 %not 281c23a780cSMin-Yih Hsu} 282c23a780cSMin-Yih Hsu 283c23a780cSMin-Yih Hsu@d = global i8 0, align 1 284c23a780cSMin-Yih Hsu 285cd0d11beSFangrui Songdefine void @test20(i32 %bf.load, i8 %x1, ptr %b_addr) { 286c23a780cSMin-Yih Hsu; CHECK-LABEL: test20: 287c23a780cSMin-Yih Hsu; CHECK: .cfi_startproc 288c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.0: 289657bb726SMin-Yih Hsu; CHECK-NEXT: suba.l #4, %sp 290c23a780cSMin-Yih Hsu; CHECK-NEXT: .cfi_def_cfa_offset -8 291c23a780cSMin-Yih Hsu; CHECK-NEXT: movem.l %d2, (0,%sp) ; 8-byte Folded Spill 292c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l #16777215, %d0 293c23a780cSMin-Yih Hsu; CHECK-NEXT: and.l (8,%sp), %d0 294c23a780cSMin-Yih Hsu; CHECK-NEXT: sne %d1 295c23a780cSMin-Yih Hsu; CHECK-NEXT: and.l #255, %d1 296c23a780cSMin-Yih Hsu; CHECK-NEXT: move.l (16,%sp), %a0 297c23a780cSMin-Yih Hsu; CHECK-NEXT: move.b (15,%sp), %d2 298c23a780cSMin-Yih Hsu; CHECK-NEXT: and.l #255, %d2 29908f2b0dcSMin-Yih Hsu; CHECK-NEXT: add.l %d1, %d2 300c23a780cSMin-Yih Hsu; CHECK-NEXT: sne (%a0) 301c23a780cSMin-Yih Hsu; CHECK-NEXT: cmpi.l #0, %d0 302c23a780cSMin-Yih Hsu; CHECK-NEXT: lea (d,%pc), %a0 303c23a780cSMin-Yih Hsu; CHECK-NEXT: sne (%a0) 304c23a780cSMin-Yih Hsu; CHECK-NEXT: movem.l (0,%sp), %d2 ; 8-byte Folded Reload 305657bb726SMin-Yih Hsu; CHECK-NEXT: adda.l #4, %sp 306c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 307c23a780cSMin-Yih Hsu %bf.shl = shl i32 %bf.load, 8 308c23a780cSMin-Yih Hsu %bf.ashr = ashr exact i32 %bf.shl, 8 309c23a780cSMin-Yih Hsu %tobool4 = icmp ne i32 %bf.ashr, 0 310c23a780cSMin-Yih Hsu %conv = zext i1 %tobool4 to i32 311c23a780cSMin-Yih Hsu %conv6 = zext i8 %x1 to i32 312c23a780cSMin-Yih Hsu %add = add nuw nsw i32 %conv, %conv6 313c23a780cSMin-Yih Hsu %tobool7 = icmp ne i32 %add, 0 314c23a780cSMin-Yih Hsu %frombool = zext i1 %tobool7 to i8 315cd0d11beSFangrui Song store i8 %frombool, ptr %b_addr, align 1 316c23a780cSMin-Yih Hsu %tobool14 = icmp ne i32 %bf.shl, 0 317c23a780cSMin-Yih Hsu %frombool15 = zext i1 %tobool14 to i8 318cd0d11beSFangrui Song store i8 %frombool15, ptr @d, align 1 319c23a780cSMin-Yih Hsu ret void 320c23a780cSMin-Yih Hsu} 321