90 lines · plain
1; RUN: llc -mtriple=hexagon -hexagon-gen-mux-threshold=4 < %s | FileCheck %s2; Generate various cmpb instruction followed by if (p0) .. if (!p0)...3target triple = "hexagon"4 5@Enum_global = external global i86 7define i32 @Func_3(i32) nounwind readnone {8entry:9; CHECK-NOT: mux10 %conv = and i32 %0, 25511 %cmp = icmp eq i32 %conv, 212 %selv = zext i1 %cmp to i3213 ret i32 %selv14}15 16define i32 @Func_3b(i32) nounwind readonly {17entry:18; CHECK-NOT: mux19 %1 = load i8, ptr @Enum_global, align 120 %2 = trunc i32 %0 to i821 %cmp = icmp ne i8 %1, %222 %selv = zext i1 %cmp to i3223 ret i32 %selv24}25 26define i32 @Func_3c(i32) nounwind readnone {27entry:28; CHECK-NOT: mux29 %conv = and i32 %0, 25530 %cmp = icmp eq i32 %conv, 231 %selv = zext i1 %cmp to i3232 ret i32 %selv33}34 35define i32 @Func_3d(i32) nounwind readonly {36entry:37; CHECK-NOT: mux38 %1 = load i8, ptr @Enum_global, align 139 %2 = trunc i32 %0 to i840 %cmp = icmp eq i8 %1, %241 %selv = zext i1 %cmp to i3242 ret i32 %selv43}44 45define i32 @Func_3e(i32) nounwind readonly {46entry:47; CHECK-NOT: mux48 %1 = load i8, ptr @Enum_global, align 149 %2 = trunc i32 %0 to i850 %cmp = icmp eq i8 %1, %251 %selv = zext i1 %cmp to i3252 ret i32 %selv53}54 55define i32 @Func_3f(i32) nounwind readnone {56entry:57; CHECK-NOT: mux58 %conv = and i32 %0, 25559 %cmp = icmp ugt i32 %conv, 260 %selv = zext i1 %cmp to i3261 ret i32 %selv62}63 64define i32 @Func_3g(i32) nounwind readnone {65entry:66; CHECK-NOT: mux67 %conv = and i32 %0, 25568 %cmp = icmp ult i32 %conv, 369 %selv = zext i1 %cmp to i3270 ret i32 %selv71}72 73define i32 @Func_3h(i32) nounwind readnone {74entry:75; CHECK-NOT: mux76 %conv = and i32 %0, 25477 %cmp = icmp ult i32 %conv, 278 %selv = zext i1 %cmp to i3279 ret i32 %selv80}81 82define i32 @Func_3i(i32) nounwind readnone {83entry:84; CHECK-NOT: mux85 %conv = and i32 %0, 25486 %cmp = icmp ugt i32 %conv, 187 %selv = zext i1 %cmp to i3288 ret i32 %selv89}90