[RISCV] Add shrinkwrap test cases showing gaps in current impl
[llvm-project.git] / llvm / test / CodeGen / Hexagon / cmpb_pred.ll
blob39defe335c640d5143bb370f5dca9833124fba19
1 ; RUN: llc -march=hexagon -hexagon-gen-mux-threshold=4 < %s | FileCheck %s
2 ; Generate various cmpb instruction followed by if (p0) .. if (!p0)...
3 target triple = "hexagon"
5 @Enum_global = external global i8
7 define i32 @Func_3(i32) nounwind readnone {
8 entry:
9 ; CHECK-NOT: mux
10   %conv = and i32 %0, 255
11   %cmp = icmp eq i32 %conv, 2
12   %selv = zext i1 %cmp to i32
13   ret i32 %selv
16 define i32 @Func_3b(i32) nounwind readonly {
17 entry:
18 ; CHECK-NOT: mux
19   %1 = load i8, ptr @Enum_global, align 1
20   %2 = trunc i32 %0 to i8
21   %cmp = icmp ne i8 %1, %2
22   %selv = zext i1 %cmp to i32
23   ret i32 %selv
26 define i32 @Func_3c(i32) nounwind readnone {
27 entry:
28 ; CHECK-NOT: mux
29   %conv = and i32 %0, 255
30   %cmp = icmp eq i32 %conv, 2
31   %selv = zext i1 %cmp to i32
32   ret i32 %selv
35 define i32 @Func_3d(i32) nounwind readonly {
36 entry:
37 ; CHECK-NOT: mux
38   %1 = load i8, ptr @Enum_global, align 1
39   %2 = trunc i32 %0 to i8
40   %cmp = icmp eq i8 %1, %2
41   %selv = zext i1 %cmp to i32
42   ret i32 %selv
45 define i32 @Func_3e(i32) nounwind readonly {
46 entry:
47 ; CHECK-NOT: mux
48   %1 = load i8, ptr @Enum_global, align 1
49   %2 = trunc i32 %0 to i8
50   %cmp = icmp eq i8 %1, %2
51   %selv = zext i1 %cmp to i32
52   ret i32 %selv
55 define i32 @Func_3f(i32) nounwind readnone {
56 entry:
57 ; CHECK-NOT: mux
58   %conv = and i32 %0, 255
59   %cmp = icmp ugt i32 %conv, 2
60   %selv = zext i1 %cmp to i32
61   ret i32 %selv
64 define i32 @Func_3g(i32) nounwind readnone {
65 entry:
66 ; CHECK-NOT: mux
67   %conv = and i32 %0, 255
68   %cmp = icmp ult i32 %conv, 3
69   %selv = zext i1 %cmp to i32
70   ret i32 %selv
73 define i32 @Func_3h(i32) nounwind readnone {
74 entry:
75 ; CHECK-NOT: mux
76   %conv = and i32 %0, 254
77   %cmp = icmp ult i32 %conv, 2
78   %selv = zext i1 %cmp to i32
79   ret i32 %selv
82 define i32 @Func_3i(i32) nounwind readnone {
83 entry:
84 ; CHECK-NOT: mux
85   %conv = and i32 %0, 254
86   %cmp = icmp ugt i32 %conv, 1
87   %selv = zext i1 %cmp to i32
88   ret i32 %selv