1f9b3840cSAmara Emerson; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2f9b3840cSAmara Emerson; RUN: llc < %s -mtriple=thumbv7s | FileCheck %s 3f9b3840cSAmara Emersontarget datalayout = "e-m:o-p:32:32-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32" 4f9b3840cSAmara Emersontarget triple = "thumbv7s-apple-ios3.1.3" 5f9b3840cSAmara Emerson 6*bed1c7f0SNikita Popovdefine void @bfi_chain_cse_crash(ptr %0, ptr %ptr) { 7f9b3840cSAmara Emerson; CHECK-LABEL: bfi_chain_cse_crash: 8f9b3840cSAmara Emerson; CHECK: @ %bb.0: @ %entry 9f9b3840cSAmara Emerson; CHECK-NEXT: ldrb r2, [r0] 10f9b3840cSAmara Emerson; CHECK-NEXT: and r3, r2, #1 11f9b3840cSAmara Emerson; CHECK-NEXT: lsr.w r12, r2, #3 12f9b3840cSAmara Emerson; CHECK-NEXT: bfi r3, r12, #3, #1 13f9b3840cSAmara Emerson; CHECK-NEXT: strb r3, [r0] 14f9b3840cSAmara Emerson; CHECK-NEXT: and r0, r2, #4 15f9b3840cSAmara Emerson; CHECK-NEXT: bfi r0, r12, #3, #1 16f9b3840cSAmara Emerson; CHECK-NEXT: strb r0, [r1] 17f9b3840cSAmara Emerson; CHECK-NEXT: bx lr 18f9b3840cSAmara Emersonentry: 19*bed1c7f0SNikita Popov %1 = load i8, ptr %0, align 1 20f9b3840cSAmara Emerson %2 = and i8 %1, 1 21f9b3840cSAmara Emerson %3 = select i1 false, i8 %2, i8 0 22f9b3840cSAmara Emerson %4 = and i8 %1, 4 23f9b3840cSAmara Emerson %5 = icmp eq i8 %4, 0 24f9b3840cSAmara Emerson %6 = zext i8 %3 to i32 25f9b3840cSAmara Emerson %7 = or i32 %6, 4 26f9b3840cSAmara Emerson %8 = trunc i32 %7 to i8 27f9b3840cSAmara Emerson %9 = select i1 %5, i8 %3, i8 %8 28f9b3840cSAmara Emerson %10 = and i8 %1, 8 29f9b3840cSAmara Emerson %11 = icmp eq i8 %10, 0 30f9b3840cSAmara Emerson %12 = zext i8 %2 to i32 31f9b3840cSAmara Emerson %13 = or i32 %12, 8 32f9b3840cSAmara Emerson %14 = trunc i32 %13 to i8 33f9b3840cSAmara Emerson %15 = zext i8 %9 to i32 34f9b3840cSAmara Emerson %16 = or i32 %15, 8 35f9b3840cSAmara Emerson %17 = trunc i32 %16 to i8 36f9b3840cSAmara Emerson %18 = select i1 %11, i8 %2, i8 %14 37f9b3840cSAmara Emerson %19 = select i1 %11, i8 %9, i8 %17 38*bed1c7f0SNikita Popov store i8 %18, ptr %0, align 1 39*bed1c7f0SNikita Popov store i8 %19, ptr %ptr, align 1 40f9b3840cSAmara Emerson ret void 41f9b3840cSAmara Emerson} 42