118 lines · plain
1; RUN: llc -O2 -mtriple=bpfel -mcpu=v1 -mattr=+alu32 < %s | FileCheck %s2;3; unsigned int select_cc_32 (unsigned a, unsigned b, int c, int d)4; {5; if (a > b)6; return c;7; else8; return d;9; }10;11; long long select_cc_32_64 (unsigned a, unsigned b, long long c, long long d)12; {13; if (a > b)14; return c;15; else16; return d;17; }18;19; int select_cc_64_32 (long long a, long long b, int c, int d)20; {21; if (a > b)22; return c;23; else24; return d;25; }26;27; int selecti_cc_32 (unsigned a, int c, int d)28; {29; if (a > 10)30; return c;31; else32; return d;33; }34;35; long long selecti_cc_32_64 (unsigned a, long long c, long long d)36; {37; if (a > 11)38; return c;39; else40; return d;41; }42;43; int selecti_cc_64_32 (long long a, int c, int d)44; {45; if (a > 12)46; return c;47; else48; return d;49; }50 51; Function Attrs: norecurse nounwind readnone52define dso_local i32 @select_cc_32(i32 %a, i32 %b, i32 %c, i32 %d) local_unnamed_addr #0 {53entry:54 %cmp = icmp ugt i32 %a, %b55 %c.d = select i1 %cmp, i32 %c, i32 %d56 ret i32 %c.d57}58; CHECK-LABEL: select_cc_3259; CHECK: r{{[0-9]+}} = w{{[0-9]+}}60; CHECK-NOT: r{{[0-9]+}} <<= 3261; CHECK-NOT: r{{[0-9]+}} >>= 3262 63; Function Attrs: norecurse nounwind readnone64define dso_local i64 @select_cc_32_64(i32 %a, i32 %b, i64 %c, i64 %d) local_unnamed_addr #0 {65entry:66 %cmp = icmp ugt i32 %a, %b67 %c.d = select i1 %cmp, i64 %c, i64 %d68 ret i64 %c.d69}70; CHECK-LABEL: select_cc_32_6471; CHECK: r{{[0-9]+}} = w{{[0-9]+}}72; CHECK-NOT: r{{[0-9]+}} <<= 3273; CHECK-NOT: r{{[0-9]+}} >>= 3274 75; Function Attrs: norecurse nounwind readnone76define dso_local i32 @select_cc_64_32(i64 %a, i64 %b, i32 %c, i32 %d) local_unnamed_addr #0 {77entry:78 %cmp = icmp sgt i64 %a, %b79 %c.d = select i1 %cmp, i32 %c, i32 %d80 ret i32 %c.d81}82; CHECK-LABEL: select_cc_64_3283; CHECK-NOT: r{{[0-9]+}} <<= 3284 85; Function Attrs: norecurse nounwind readnone86define dso_local i32 @selecti_cc_32(i32 %a, i32 %c, i32 %d) local_unnamed_addr #0 {87entry:88 %cmp = icmp ugt i32 %a, 1089 %c.d = select i1 %cmp, i32 %c, i32 %d90 ret i32 %c.d91}92; CHECK-LABEL: selecti_cc_3293; CHECK: r{{[0-9]+}} = w{{[0-9]+}}94; CHECK-NOT: r{{[0-9]+}} <<= 3295; CHECK-NOT: r{{[0-9]+}} >>= 3296 97; Function Attrs: norecurse nounwind readnone98define dso_local i64 @selecti_cc_32_64(i32 %a, i64 %c, i64 %d) local_unnamed_addr #0 {99entry:100 %cmp = icmp ugt i32 %a, 11101 %c.d = select i1 %cmp, i64 %c, i64 %d102 ret i64 %c.d103}104; CHECK-LABEL: selecti_cc_32_64105; CHECK: r{{[0-9]+}} = w{{[0-9]+}}106; CHECK-NOT: r{{[0-9]+}} <<= 32107; CHECK-NOT: r{{[0-9]+}} >>= 32108 109; Function Attrs: norecurse nounwind readnone110define dso_local i32 @selecti_cc_64_32(i64 %a, i32 %c, i32 %d) local_unnamed_addr #0 {111entry:112 %cmp = icmp sgt i64 %a, 12113 %c.d = select i1 %cmp, i32 %c, i32 %d114 ret i32 %c.d115}116; CHECK-LABEL: selecti_cc_64_32117; CHECK-NOT: r{{[0-9]+}} <<= 32118