brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · 0fa5e75 Raw
209 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=x86_64-unknown-linux-gnu < %s 2>&1 | FileCheck %s3 4define i32 @f(ptr %p) {5; CHECK-LABEL: f:6; CHECK:       # %bb.0:7; CHECK-NEXT:    testb $8, 1(%rdi)8; CHECK-NEXT:    je .LBB0_19; CHECK-NEXT:  # %bb.2: # %B10; CHECK-NEXT:    movl $20, %eax11; CHECK-NEXT:    retq12; CHECK-NEXT:  .LBB0_1: # %A13; CHECK-NEXT:    movl $10, %eax14; CHECK-NEXT:    retq15  %v = load i16, ptr %p, align 216  %and = and i16 %v, 204817  %cond = icmp eq i16 %and, 018  %cond.fr = freeze i1 %cond19  br i1 %cond.fr, label %A, label %B20A:21  ret i32 1022B:23  ret i32 2024}25 26define i32 @f_false(ptr %p) {27; CHECK-LABEL: f_false:28; CHECK:       # %bb.0:29; CHECK-NEXT:    movb $1, %al30; CHECK-NEXT:    testb %al, %al31; CHECK-NEXT:    jne .LBB1_232; CHECK-NEXT:  # %bb.1: # %A33; CHECK-NEXT:    movl $10, %eax34; CHECK-NEXT:    retq35; CHECK-NEXT:  .LBB1_2: # %B36; CHECK-NEXT:    movl $20, %eax37; CHECK-NEXT:    retq38  %v = load i16, ptr %p, align 239  %and = and i16 %v, 204840  %cond = icmp ult i16 %and, 041  %cond.fr = freeze i1 %cond42  br i1 %cond.fr, label %A, label %B43A:44  ret i32 1045B:46  ret i32 2047}48 49define i32 @f_false2(ptr %p) {50; CHECK-LABEL: f_false2:51; CHECK:       # %bb.0:52; CHECK-NEXT:    movb $1, %al53; CHECK-NEXT:    testb %al, %al54; CHECK-NEXT:    jne .LBB2_255; CHECK-NEXT:  # %bb.1: # %A56; CHECK-NEXT:    movl $10, %eax57; CHECK-NEXT:    retq58; CHECK-NEXT:  .LBB2_2: # %B59; CHECK-NEXT:    movl $20, %eax60; CHECK-NEXT:    retq61  %v = load i16, ptr %p, align 262  %and = and i16 %v, 204863  %cond = icmp ult i16 65535, %and64  %cond.fr = freeze i1 %cond65  br i1 %cond.fr, label %A, label %B66A:67  ret i32 1068B:69  ret i32 2070}71 72define i32 @f_false3(ptr %p) {73; CHECK-LABEL: f_false3:74; CHECK:       # %bb.0:75; CHECK-NEXT:    movb $1, %al76; CHECK-NEXT:    testb %al, %al77; CHECK-NEXT:    jne .LBB3_278; CHECK-NEXT:  # %bb.1: # %A79; CHECK-NEXT:    movl $10, %eax80; CHECK-NEXT:    retq81; CHECK-NEXT:  .LBB3_2: # %B82; CHECK-NEXT:    movl $20, %eax83; CHECK-NEXT:    retq84  %v = load i16, ptr %p, align 285  %and = and i16 %v, 204886  %cond = icmp slt i16 32767, %and87  %cond.fr = freeze i1 %cond88  br i1 %cond.fr, label %A, label %B89A:90  ret i32 1091B:92  ret i32 2093}94 95define i32 @f_false4(ptr %p) {96; CHECK-LABEL: f_false4:97; CHECK:       # %bb.0:98; CHECK-NEXT:    movb $1, %al99; CHECK-NEXT:    testb %al, %al100; CHECK-NEXT:    jne .LBB4_2101; CHECK-NEXT:  # %bb.1: # %A102; CHECK-NEXT:    movl $10, %eax103; CHECK-NEXT:    retq104; CHECK-NEXT:  .LBB4_2: # %B105; CHECK-NEXT:    movl $20, %eax106; CHECK-NEXT:    retq107  %v = load i16, ptr %p, align 2108  %and = and i16 %v, 2048109  %cond = icmp sgt i16 %and, 32767110  %cond.fr = freeze i1 %cond111  br i1 %cond.fr, label %A, label %B112A:113  ret i32 10114B:115  ret i32 20116}117 118define i32 @f_true(ptr %p) {119; CHECK-LABEL: f_true:120; CHECK:       # %bb.0:121; CHECK-NEXT:    xorl %eax, %eax122; CHECK-NEXT:    testb %al, %al123; CHECK-NEXT:    jne .LBB5_2124; CHECK-NEXT:  # %bb.1: # %A125; CHECK-NEXT:    movl $10, %eax126; CHECK-NEXT:    retq127; CHECK-NEXT:  .LBB5_2: # %B128; CHECK-NEXT:    movl $20, %eax129; CHECK-NEXT:    retq130  %v = load i16, ptr %p, align 2131  %and = and i16 %v, 2048132  %cond = icmp sge i16 %and, -32768133  %cond.fr = freeze i1 %cond134  br i1 %cond.fr, label %A, label %B135A:136  ret i32 10137B:138  ret i32 20139}140 141define i32 @f_true2(ptr %p) {142; CHECK-LABEL: f_true2:143; CHECK:       # %bb.0:144; CHECK-NEXT:    xorl %eax, %eax145; CHECK-NEXT:    testb %al, %al146; CHECK-NEXT:    jne .LBB6_2147; CHECK-NEXT:  # %bb.1: # %A148; CHECK-NEXT:    movl $10, %eax149; CHECK-NEXT:    retq150; CHECK-NEXT:  .LBB6_2: # %B151; CHECK-NEXT:    movl $20, %eax152; CHECK-NEXT:    retq153  %v = load i16, ptr %p, align 2154  %and = and i16 %v, 2048155  %cond = icmp uge i16 %and, 0156  %cond.fr = freeze i1 %cond157  br i1 %cond.fr, label %A, label %B158A:159  ret i32 10160B:161  ret i32 20162}163 164define i32 @f_true3(ptr %p) {165; CHECK-LABEL: f_true3:166; CHECK:       # %bb.0:167; CHECK-NEXT:    xorl %eax, %eax168; CHECK-NEXT:    testb %al, %al169; CHECK-NEXT:    jne .LBB7_2170; CHECK-NEXT:  # %bb.1: # %A171; CHECK-NEXT:    movl $10, %eax172; CHECK-NEXT:    retq173; CHECK-NEXT:  .LBB7_2: # %B174; CHECK-NEXT:    movl $20, %eax175; CHECK-NEXT:    retq176  %v = load i16, ptr %p, align 2177  %and = and i16 %v, 2048178  %cond = icmp ule i16 0, %and179  %cond.fr = freeze i1 %cond180  br i1 %cond.fr, label %A, label %B181A:182  ret i32 10183B:184  ret i32 20185}186 187define i32 @f_true4(ptr %p) {188; CHECK-LABEL: f_true4:189; CHECK:       # %bb.0:190; CHECK-NEXT:    xorl %eax, %eax191; CHECK-NEXT:    testb %al, %al192; CHECK-NEXT:    jne .LBB8_2193; CHECK-NEXT:  # %bb.1: # %A194; CHECK-NEXT:    movl $10, %eax195; CHECK-NEXT:    retq196; CHECK-NEXT:  .LBB8_2: # %B197; CHECK-NEXT:    movl $20, %eax198; CHECK-NEXT:    retq199  %v = load i16, ptr %p, align 2200  %and = and i16 %v, 2048201  %cond = icmp ule i16 %and, 65535202  %cond.fr = freeze i1 %cond203  br i1 %cond.fr, label %A, label %B204A:205  ret i32 10206B:207  ret i32 20208}209