brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · ad0a3d2 Raw
125 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; This test check if redundant truncate for eq/ne cmp is skipped during code gen.3;RUN: llc -mtriple=thumbv7-eabi < %s | FileCheck %s4 5define void @test_zero(i16 signext %x) optsize {6; CHECK-LABEL: test_zero:7; CHECK:       @ %bb.0: @ %entry8; CHECK-NEXT:    cbz r0, .LBB0_29; CHECK-NEXT:  @ %bb.1: @ %if.then10; CHECK-NEXT:    b foo111; CHECK-NEXT:  .LBB0_2: @ %if.else12; CHECK-NEXT:    b foo213entry:14  %tobool = icmp eq i16 %x, 015  br i1 %tobool, label %if.else, label %if.then16if.then:                                          ; preds = %entry17  tail call void @foo1()18  br label %if.end19 20if.else:                                          ; preds = %entry21  tail call void @foo2()22  br label %if.end23 24if.end:                                           ; preds = %if.else, %if.then25  ret void26}27 28define void @test_i8_nonzero(i18 signext %x) optsize {29; CHECK-LABEL: test_i8_nonzero:30; CHECK:       @ %bb.0: @ %entry31; CHECK-NEXT:    cmp r0, #15032; CHECK-NEXT:    it eq33; CHECK-NEXT:    beq foo234; CHECK-NEXT:  .LBB1_1: @ %if.then35; CHECK-NEXT:    b foo136entry:37  %tobool = icmp eq i18 %x, 15038  br i1 %tobool, label %if.else, label %if.then39if.then:                                          ; preds = %entry40  tail call void @foo1()41  br label %if.end42 43if.else:                                          ; preds = %entry44  tail call void @foo2()45  br label %if.end46 47if.end:                                           ; preds = %if.else, %if.then48  ret void49}50 51define void @test_i8_i16(i8 signext %x) optsize {52; CHECK-LABEL: test_i8_i16:53; CHECK:       @ %bb.0: @ %entry54; CHECK-NEXT:    cmp.w r0, #30055; CHECK-NEXT:    it eq56; CHECK-NEXT:    beq foo257; CHECK-NEXT:  .LBB2_1: @ %if.then58; CHECK-NEXT:    b foo159entry:60  %x16 = sext i8 %x to i1661  %tobool = icmp eq i16 %x16, 30062  br i1 %tobool, label %if.else, label %if.then63if.then:                                          ; preds = %entry64  tail call void @foo1()65  br label %if.end66 67if.else:                                          ; preds = %entry68  tail call void @foo2()69  br label %if.end70 71if.end:                                           ; preds = %if.else, %if.then72  ret void73}74 75define void @test_i16_i8(i16 signext %x) optsize {76; CHECK-LABEL: test_i16_i8:77; CHECK:       @ %bb.0: @ %entry78; CHECK-NEXT:    uxtb r0, r079; CHECK-NEXT:    cmp r0, #12880; CHECK-NEXT:    it eq81; CHECK-NEXT:    beq foo282; CHECK-NEXT:  .LBB3_1: @ %if.then83; CHECK-NEXT:    b foo184entry:85  %x8 = trunc i16 %x to i886  %tobool = icmp eq i8 %x8, 12887  br i1 %tobool, label %if.else, label %if.then88if.then:                                          ; preds = %entry89  tail call void @foo1()90  br label %if.end91 92if.else:                                          ; preds = %entry93  tail call void @foo2()94  br label %if.end95 96if.end:                                           ; preds = %if.else, %if.then97  ret void98}99 100define void @test_zext_zero(i16 zeroext %x) optsize {101; CHECK-LABEL: test_zext_zero:102; CHECK:       @ %bb.0: @ %entry103; CHECK-NEXT:    cbz r0, .LBB4_2104; CHECK-NEXT:  @ %bb.1: @ %if.then105; CHECK-NEXT:    b foo1106; CHECK-NEXT:  .LBB4_2: @ %if.else107; CHECK-NEXT:    b foo2108entry:109  %tobool = icmp eq i16 %x, 0110  br i1 %tobool, label %if.else, label %if.then111if.then:                                          ; preds = %entry112  tail call void @foo1()113  br label %if.end114 115if.else:                                          ; preds = %entry116  tail call void @foo2()117  br label %if.end118 119if.end:                                           ; preds = %if.else, %if.then120  ret void121}122 123declare void @foo1(...)124declare void @foo2(...)125