brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · a5d6183 Raw
107 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=hexagon < %s | FileCheck %s3 4; Function Attrs: nounwind readnone5define i32 @f0(i32 %a0, i32 %a1) #0 {6; CHECK-LABEL: f0:7; CHECK:       // %bb.0: // %b08; CHECK-NEXT:    {9; CHECK-NEXT:     p0 = tstbit(r0,r1)10; CHECK-NEXT:    }11; CHECK-NEXT:    {12; CHECK-NEXT:     r0 = mux(p0,#1,#0)13; CHECK-NEXT:     jumpr r3114; CHECK-NEXT:    }15b0:16  %v0 = shl i32 1, %a117  %v1 = and i32 %v0, %a018  %v2 = icmp ne i32 %v1, 019  %v3 = zext i1 %v2 to i3220  ret i32 %v321}22 23define i64 @is_upper_bit_clear_i64(i64 %x) #0 {24; CHECK-LABEL: is_upper_bit_clear_i64:25; CHECK:       // %bb.0:26; CHECK-NEXT:    {27; CHECK-NEXT:     p0 = !tstbit(r1,#5)28; CHECK-NEXT:     r1 = #029; CHECK-NEXT:    }30; CHECK-NEXT:    {31; CHECK-NEXT:     r0 = mux(p0,#1,#0)32; CHECK-NEXT:     jumpr r3133; CHECK-NEXT:    }34  %sh = lshr i64 %x, 3735  %m = and i64 %sh, 136  %r = xor i64 %m, 137  ret i64 %r38}39 40define i64 @is_lower_bit_clear_i64(i64 %x) #0 {41; CHECK-LABEL: is_lower_bit_clear_i64:42; CHECK:       // %bb.0:43; CHECK-NEXT:    {44; CHECK-NEXT:     p0 = !tstbit(r0,#27)45; CHECK-NEXT:     r1 = #046; CHECK-NEXT:    }47; CHECK-NEXT:    {48; CHECK-NEXT:     r0 = mux(p0,#1,#0)49; CHECK-NEXT:     jumpr r3150; CHECK-NEXT:    }51  %sh = lshr i64 %x, 2752  %m = and i64 %sh, 153  %r = xor i64 %m, 154  ret i64 %r55}56 57define i32 @is_bit_clear_i32(i32 %x) #0 {58; CHECK-LABEL: is_bit_clear_i32:59; CHECK:       // %bb.0:60; CHECK-NEXT:    {61; CHECK-NEXT:     p0 = !tstbit(r0,#27)62; CHECK-NEXT:    }63; CHECK-NEXT:    {64; CHECK-NEXT:     r0 = mux(p0,#1,#0)65; CHECK-NEXT:     jumpr r3166; CHECK-NEXT:    }67  %sh = lshr i32 %x, 2768  %n = xor i32 %sh, -169  %r = and i32 %n, 170  ret i32 %r71}72 73define i16 @is_bit_clear_i16(i16 %x) #0 {74; CHECK-LABEL: is_bit_clear_i16:75; CHECK:       // %bb.0:76; CHECK-NEXT:    {77; CHECK-NEXT:     p0 = !tstbit(r0,#7)78; CHECK-NEXT:    }79; CHECK-NEXT:    {80; CHECK-NEXT:     r0 = mux(p0,#1,#0)81; CHECK-NEXT:     jumpr r3182; CHECK-NEXT:    }83  %sh = lshr i16 %x, 784  %m = and i16 %sh, 185  %r = xor i16 %m, 186  ret i16 %r87}88 89define i8 @is_bit_clear_i8(i8 %x) #0 {90; CHECK-LABEL: is_bit_clear_i8:91; CHECK:       // %bb.0:92; CHECK-NEXT:    {93; CHECK-NEXT:     p0 = !tstbit(r0,#3)94; CHECK-NEXT:    }95; CHECK-NEXT:    {96; CHECK-NEXT:     r0 = mux(p0,#1,#0)97; CHECK-NEXT:     jumpr r3198; CHECK-NEXT:    }99  %sh = lshr i8 %x, 3100  %m = and i8 %sh, 1101  %r = xor i8 %m, 1102  ret i8 %r103}104 105 106attributes #0 = { nounwind readnone }107