brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.6 KiB · 4e134d7 Raw
279 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s3 4define i64 @test_clear_mask_i64_i32(i64 %x) nounwind {5; CHECK-LABEL: test_clear_mask_i64_i32:6; CHECK:       # %bb.0: # %entry7; CHECK-NEXT:    movq %rdi, %rax8; CHECK-NEXT:    testl %eax, %eax9; CHECK-NEXT:    js .LBB0_210; CHECK-NEXT:  # %bb.1: # %t11; CHECK-NEXT:    movl $42, %eax12; CHECK-NEXT:  .LBB0_2: # %f13; CHECK-NEXT:    retq14entry:15  %a = and i64 %x, 214748364816  %r = icmp eq i64 %a, 017  br i1 %r, label %t, label %f18t:19  br label %f20f:21  %ret = phi i64 [ %x, %entry], [ 42, %t]22  ret i64 %ret23}24 25define i64 @test_set_mask_i64_i32(i64 %x) nounwind {26; CHECK-LABEL: test_set_mask_i64_i32:27; CHECK:       # %bb.0: # %entry28; CHECK-NEXT:    movq %rdi, %rax29; CHECK-NEXT:    testl %eax, %eax30; CHECK-NEXT:    jns .LBB1_231; CHECK-NEXT:  # %bb.1: # %t32; CHECK-NEXT:    movl $42, %eax33; CHECK-NEXT:  .LBB1_2: # %f34; CHECK-NEXT:    retq35entry:36  %a = and i64 %x, 214748364837  %r = icmp ne i64 %a, 038  br i1 %r, label %t, label %f39t:40  br label %f41f:42  %ret = phi i64 [ %x, %entry], [ 42, %t]43  ret i64 %ret44}45 46define i64 @test_clear_mask_i64_i16(i64 %x) nounwind {47; CHECK-LABEL: test_clear_mask_i64_i16:48; CHECK:       # %bb.0: # %entry49; CHECK-NEXT:    movq %rdi, %rax50; CHECK-NEXT:    testw %ax, %ax51; CHECK-NEXT:    js .LBB2_252; CHECK-NEXT:  # %bb.1: # %t53; CHECK-NEXT:    movl $42, %eax54; CHECK-NEXT:  .LBB2_2: # %f55; CHECK-NEXT:    retq56entry:57  %a = and i64 %x, 3276858  %r = icmp eq i64 %a, 059  br i1 %r, label %t, label %f60t:61  br label %f62f:63  %ret = phi i64 [ %x, %entry], [ 42, %t]64  ret i64 %ret65}66 67define i64 @test_set_mask_i64_i16(i64 %x) nounwind {68; CHECK-LABEL: test_set_mask_i64_i16:69; CHECK:       # %bb.0: # %entry70; CHECK-NEXT:    movq %rdi, %rax71; CHECK-NEXT:    testw %ax, %ax72; CHECK-NEXT:    jns .LBB3_273; CHECK-NEXT:  # %bb.1: # %t74; CHECK-NEXT:    movl $42, %eax75; CHECK-NEXT:  .LBB3_2: # %f76; CHECK-NEXT:    retq77entry:78  %a = and i64 %x, 3276879  %r = icmp ne i64 %a, 080  br i1 %r, label %t, label %f81t:82  br label %f83f:84  %ret = phi i64 [ %x, %entry], [ 42, %t]85  ret i64 %ret86}87 88define i64 @test_clear_mask_i64_i8(i64 %x) nounwind {89; CHECK-LABEL: test_clear_mask_i64_i8:90; CHECK:       # %bb.0: # %entry91; CHECK-NEXT:    movq %rdi, %rax92; CHECK-NEXT:    testb %al, %al93; CHECK-NEXT:    js .LBB4_294; CHECK-NEXT:  # %bb.1: # %t95; CHECK-NEXT:    movl $42, %eax96; CHECK-NEXT:  .LBB4_2: # %f97; CHECK-NEXT:    retq98entry:99  %a = and i64 %x, 128100  %r = icmp eq i64 %a, 0101  br i1 %r, label %t, label %f102t:103  br label %f104f:105  %ret = phi i64 [ %x, %entry], [ 42, %t]106  ret i64 %ret107}108 109define i64 @test_set_mask_i64_i8(i64 %x) nounwind {110; CHECK-LABEL: test_set_mask_i64_i8:111; CHECK:       # %bb.0: # %entry112; CHECK-NEXT:    movq %rdi, %rax113; CHECK-NEXT:    testb %al, %al114; CHECK-NEXT:    jns .LBB5_2115; CHECK-NEXT:  # %bb.1: # %t116; CHECK-NEXT:    movl $42, %eax117; CHECK-NEXT:  .LBB5_2: # %f118; CHECK-NEXT:    retq119entry:120  %a = and i64 %x, 128121  %r = icmp ne i64 %a, 0122  br i1 %r, label %t, label %f123t:124  br label %f125f:126  %ret = phi i64 [ %x, %entry], [ 42, %t]127  ret i64 %ret128}129 130define i32 @test_clear_mask_i32_i16(i32 %x) nounwind {131; CHECK-LABEL: test_clear_mask_i32_i16:132; CHECK:       # %bb.0: # %entry133; CHECK-NEXT:    movl %edi, %eax134; CHECK-NEXT:    testw %ax, %ax135; CHECK-NEXT:    js .LBB6_2136; CHECK-NEXT:  # %bb.1: # %t137; CHECK-NEXT:    movl $42, %eax138; CHECK-NEXT:  .LBB6_2: # %f139; CHECK-NEXT:    retq140entry:141  %a = and i32 %x, 32768142  %r = icmp eq i32 %a, 0143  br i1 %r, label %t, label %f144t:145  br label %f146f:147  %ret = phi i32 [ %x, %entry], [ 42, %t]148  ret i32 %ret149}150 151define i32 @test_set_mask_i32_i16(i32 %x) nounwind {152; CHECK-LABEL: test_set_mask_i32_i16:153; CHECK:       # %bb.0: # %entry154; CHECK-NEXT:    movl %edi, %eax155; CHECK-NEXT:    testw %ax, %ax156; CHECK-NEXT:    jns .LBB7_2157; CHECK-NEXT:  # %bb.1: # %t158; CHECK-NEXT:    movl $42, %eax159; CHECK-NEXT:  .LBB7_2: # %f160; CHECK-NEXT:    retq161entry:162  %a = and i32 %x, 32768163  %r = icmp ne i32 %a, 0164  br i1 %r, label %t, label %f165t:166  br label %f167f:168  %ret = phi i32 [ %x, %entry], [ 42, %t]169  ret i32 %ret170}171 172define i32 @test_clear_mask_i32_i8(i32 %x) nounwind {173; CHECK-LABEL: test_clear_mask_i32_i8:174; CHECK:       # %bb.0: # %entry175; CHECK-NEXT:    movl %edi, %eax176; CHECK-NEXT:    testb %al, %al177; CHECK-NEXT:    js .LBB8_2178; CHECK-NEXT:  # %bb.1: # %t179; CHECK-NEXT:    movl $42, %eax180; CHECK-NEXT:  .LBB8_2: # %f181; CHECK-NEXT:    retq182entry:183  %a = and i32 %x, 128184  %r = icmp eq i32 %a, 0185  br i1 %r, label %t, label %f186t:187  br label %f188f:189  %ret = phi i32 [ %x, %entry], [ 42, %t]190  ret i32 %ret191}192 193define i32 @test_set_mask_i32_i8(i32 %x) nounwind {194; CHECK-LABEL: test_set_mask_i32_i8:195; CHECK:       # %bb.0: # %entry196; CHECK-NEXT:    movl %edi, %eax197; CHECK-NEXT:    testb %al, %al198; CHECK-NEXT:    jns .LBB9_2199; CHECK-NEXT:  # %bb.1: # %t200; CHECK-NEXT:    movl $42, %eax201; CHECK-NEXT:  .LBB9_2: # %f202; CHECK-NEXT:    retq203entry:204  %a = and i32 %x, 128205  %r = icmp ne i32 %a, 0206  br i1 %r, label %t, label %f207t:208  br label %f209f:210  %ret = phi i32 [ %x, %entry], [ 42, %t]211  ret i32 %ret212}213 214define i16 @test_clear_mask_i16_i8(i16 %x) nounwind {215; CHECK-LABEL: test_clear_mask_i16_i8:216; CHECK:       # %bb.0: # %entry217; CHECK-NEXT:    movl %edi, %eax218; CHECK-NEXT:    testb %al, %al219; CHECK-NEXT:    js .LBB10_2220; CHECK-NEXT:  # %bb.1: # %t221; CHECK-NEXT:    movw $42, %ax222; CHECK-NEXT:  .LBB10_2: # %f223; CHECK-NEXT:    # kill: def $ax killed $ax killed $eax224; CHECK-NEXT:    retq225entry:226  %a = and i16 %x, 128227  %r = icmp eq i16 %a, 0228  br i1 %r, label %t, label %f229t:230  br label %f231f:232  %ret = phi i16 [ %x, %entry], [ 42, %t]233  ret i16 %ret234}235 236define i16 @test_set_mask_i16_i8(i16 %x) nounwind {237; CHECK-LABEL: test_set_mask_i16_i8:238; CHECK:       # %bb.0: # %entry239; CHECK-NEXT:    movl %edi, %eax240; CHECK-NEXT:    testb %al, %al241; CHECK-NEXT:    jns .LBB11_2242; CHECK-NEXT:  # %bb.1: # %t243; CHECK-NEXT:    movw $42, %ax244; CHECK-NEXT:  .LBB11_2: # %f245; CHECK-NEXT:    # kill: def $ax killed $ax killed $eax246; CHECK-NEXT:    retq247entry:248  %a = and i16 %x, 128249  %r = icmp ne i16 %a, 0250  br i1 %r, label %t, label %f251t:252  br label %f253f:254  %ret = phi i16 [ %x, %entry], [ 42, %t]255  ret i16 %ret256}257 258define i16 @test_set_mask_i16_i7(i16 %x) nounwind {259; CHECK-LABEL: test_set_mask_i16_i7:260; CHECK:       # %bb.0: # %entry261; CHECK-NEXT:    movl %edi, %eax262; CHECK-NEXT:    testb $64, %al263; CHECK-NEXT:    je .LBB12_2264; CHECK-NEXT:  # %bb.1: # %t265; CHECK-NEXT:    movw $42, %ax266; CHECK-NEXT:  .LBB12_2: # %f267; CHECK-NEXT:    # kill: def $ax killed $ax killed $eax268; CHECK-NEXT:    retq269entry:270  %a = and i16 %x, 64271  %r = icmp ne i16 %a, 0272  br i1 %r, label %t, label %f273t:274  br label %f275f:276  %ret = phi i16 [ %x, %entry], [ 42, %t]277  ret i16 %ret278}279