brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.2 KiB · bbf947f Raw
264 lines · plain
1; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s2 3; CHECK-DAG: OpName [[EQ:%.*]] "test_eq"4; CHECK-DAG: OpName [[NE:%.*]] "test_ne"5; CHECK-DAG: OpName [[ULT:%.*]] "test_ult"6; CHECK-DAG: OpName [[SLT:%.*]] "test_slt"7; CHECK-DAG: OpName [[ULE:%.*]] "test_ule"8; CHECK-DAG: OpName [[SLE:%.*]] "test_sle"9; CHECK-DAG: OpName [[UGT:%.*]] "test_ugt"10; CHECK-DAG: OpName [[SGT:%.*]] "test_sgt"11; CHECK-DAG: OpName [[UGE:%.*]] "test_uge"12; CHECK-DAG: OpName [[SGE:%.*]] "test_sge"13 14; CHECK-DAG: OpName [[v3EQ:%.*]] "test_v3_eq"15; CHECK-DAG: OpName [[v3NE:%.*]] "test_v3_ne"16; CHECK-DAG: OpName [[v3ULT:%.*]] "test_v3_ult"17; CHECK-DAG: OpName [[v3SLT:%.*]] "test_v3_slt"18; CHECK-DAG: OpName [[v3ULE:%.*]] "test_v3_ule"19; CHECK-DAG: OpName [[v3SLE:%.*]] "test_v3_sle"20; CHECK-DAG: OpName [[v3UGT:%.*]] "test_v3_ugt"21; CHECK-DAG: OpName [[v3SGT:%.*]] "test_v3_sgt"22; CHECK-DAG: OpName [[v3UGE:%.*]] "test_v3_uge"23; CHECK-DAG: OpName [[v3SGE:%.*]] "test_v3_sge"24 25; CHECK:      [[EQ]] = OpFunction26; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter27; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter28; CHECK-NEXT: OpLabel29; CHECK-NEXT: [[R:%.*]] = OpIEqual {{%.+}} [[A]] [[B]]30; CHECK-NEXT: OpReturnValue [[R]]31; CHECK-NEXT: OpFunctionEnd32define i1 @test_eq(i32 %a, i32 %b) {33  %r = icmp eq i32 %a, %b34  ret i1 %r35}36 37; CHECK:      [[NE]] = OpFunction38; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter39; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter40; CHECK-NEXT: OpLabel41; CHECK-NEXT: [[R:%.*]] = OpINotEqual {{%.+}} [[A]] [[B]]42; CHECK-NEXT: OpReturnValue [[R]]43; CHECK-NEXT: OpFunctionEnd44define i1 @test_ne(i32 %a, i32 %b) {45  %r = icmp ne i32 %a, %b46  ret i1 %r47}48 49; CHECK:      [[SLT]] = OpFunction50; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter51; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter52; CHECK-NEXT: OpLabel53; CHECK-NEXT: [[R:%.*]] = OpSLessThan {{%.+}} [[A]] [[B]]54; CHECK-NEXT: OpReturnValue [[R]]55; CHECK-NEXT: OpFunctionEnd56define i1 @test_slt(i32 %a, i32 %b) {57  %r = icmp slt i32 %a, %b58  ret i1 %r59}60 61; CHECK:      [[ULT]] = OpFunction62; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter63; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter64; CHECK-NEXT: OpLabel65; CHECK-NEXT: [[R:%.*]] = OpULessThan {{%.+}} [[A]] [[B]]66; CHECK-NEXT: OpReturnValue [[R]]67; CHECK-NEXT: OpFunctionEnd68define i1 @test_ult(i32 %a, i32 %b) {69  %r = icmp ult i32 %a, %b70  ret i1 %r71}72 73; CHECK:      [[ULE]] = OpFunction74; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter75; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter76; CHECK-NEXT: OpLabel77; CHECK-NEXT: [[R:%.*]] = OpULessThanEqual {{%.+}} [[A]] [[B]]78; CHECK-NEXT: OpReturnValue [[R]]79; CHECK-NEXT: OpFunctionEnd80define i1 @test_ule(i32 %a, i32 %b) {81  %r = icmp ule i32 %a, %b82  ret i1 %r83}84 85; CHECK:      [[SLE]] = OpFunction86; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter87; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter88; CHECK-NEXT: OpLabel89; CHECK-NEXT: [[R:%.*]] = OpSLessThanEqual {{%.+}} [[A]] [[B]]90; CHECK-NEXT: OpReturnValue [[R]]91; CHECK-NEXT: OpFunctionEnd92define i1 @test_sle(i32 %a, i32 %b) {93  %r = icmp sle i32 %a, %b94  ret i1 %r95}96 97; CHECK:      [[UGT]] = OpFunction98; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter99; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter100; CHECK-NEXT: OpLabel101; CHECK-NEXT: [[R:%.*]] = OpUGreaterThan {{%.+}} [[A]] [[B]]102; CHECK-NEXT: OpReturnValue [[R]]103; CHECK-NEXT: OpFunctionEnd104define i1 @test_ugt(i32 %a, i32 %b) {105  %r = icmp ugt i32 %a, %b106  ret i1 %r107}108 109; CHECK:      [[SGT]] = OpFunction110; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter111; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter112; CHECK-NEXT: OpLabel113; CHECK-NEXT: [[R:%.*]] = OpSGreaterThan {{%.+}} [[A]] [[B]]114; CHECK-NEXT: OpReturnValue [[R]]115; CHECK-NEXT: OpFunctionEnd116define i1 @test_sgt(i32 %a, i32 %b) {117  %r = icmp sgt i32 %a, %b118  ret i1 %r119}120 121; CHECK:      [[UGE]] = OpFunction122; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter123; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter124; CHECK-NEXT: OpLabel125; CHECK-NEXT: [[R:%.*]] = OpUGreaterThanEqual {{%.+}} [[A]] [[B]]126; CHECK-NEXT: OpReturnValue [[R]]127; CHECK-NEXT: OpFunctionEnd128define i1 @test_uge(i32 %a, i32 %b) {129  %r = icmp uge i32 %a, %b130  ret i1 %r131}132 133; CHECK:      [[SGE]] = OpFunction134; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter135; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter136; CHECK-NEXT: OpLabel137; CHECK-NEXT: [[R:%.*]] = OpSGreaterThanEqual {{%.+}} [[A]] [[B]]138; CHECK-NEXT: OpReturnValue [[R]]139; CHECK-NEXT: OpFunctionEnd140define i1 @test_sge(i32 %a, i32 %b) {141  %r = icmp sge i32 %a, %b142  ret i1 %r143}144 145; CHECK:      [[v3EQ]] = OpFunction146; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter147; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter148; CHECK-NEXT: OpLabel149; CHECK-NEXT: [[R:%.*]] = OpIEqual {{%.+}} [[A]] [[B]]150; CHECK-NEXT: OpReturnValue [[R]]151; CHECK-NEXT: OpFunctionEnd152define <3 x i1> @test_v3_eq(<3 x i32> %a, <3 x i32> %b) {153  %r = icmp eq <3 x i32> %a, %b154  ret <3 x i1> %r155}156 157; CHECK:      [[v3NE]] = OpFunction158; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter159; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter160; CHECK-NEXT: OpLabel161; CHECK-NEXT: [[R:%.*]] = OpINotEqual {{%.+}} [[A]] [[B]]162; CHECK-NEXT: OpReturnValue [[R]]163; CHECK-NEXT: OpFunctionEnd164define <3 x i1> @test_v3_ne(<3 x i32> %a, <3 x i32> %b) {165  %r = icmp ne <3 x i32> %a, %b166  ret <3 x i1> %r167}168 169; CHECK:      [[v3SLT]] = OpFunction170; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter171; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter172; CHECK-NEXT: OpLabel173; CHECK-NEXT: [[R:%.*]] = OpSLessThan {{%.+}} [[A]] [[B]]174; CHECK-NEXT: OpReturnValue [[R]]175; CHECK-NEXT: OpFunctionEnd176define <3 x i1> @test_v3_slt(<3 x i32> %a, <3 x i32> %b) {177  %r = icmp slt <3 x i32> %a, %b178  ret <3 x i1> %r179}180 181; CHECK:      [[v3ULT]] = OpFunction182; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter183; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter184; CHECK-NEXT: OpLabel185; CHECK-NEXT: [[R:%.*]] = OpULessThan {{%.+}} [[A]] [[B]]186; CHECK-NEXT: OpReturnValue [[R]]187; CHECK-NEXT: OpFunctionEnd188define <3 x i1> @test_v3_ult(<3 x i32> %a, <3 x i32> %b) {189  %r = icmp ult <3 x i32> %a, %b190  ret <3 x i1> %r191}192 193; CHECK:      [[v3ULE]] = OpFunction194; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter195; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter196; CHECK-NEXT: OpLabel197; CHECK-NEXT: [[R:%.*]] = OpULessThanEqual {{%.+}} [[A]] [[B]]198; CHECK-NEXT: OpReturnValue [[R]]199; CHECK-NEXT: OpFunctionEnd200define <3 x i1> @test_v3_ule(<3 x i32> %a, <3 x i32> %b) {201  %r = icmp ule <3 x i32> %a, %b202  ret <3 x i1> %r203}204 205; CHECK:      [[v3SLE]] = OpFunction206; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter207; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter208; CHECK-NEXT: OpLabel209; CHECK-NEXT: [[R:%.*]] = OpSLessThanEqual {{%.+}} [[A]] [[B]]210; CHECK-NEXT: OpReturnValue [[R]]211; CHECK-NEXT: OpFunctionEnd212define <3 x i1> @test_v3_sle(<3 x i32> %a, <3 x i32> %b) {213  %r = icmp sle <3 x i32> %a, %b214  ret <3 x i1> %r215}216 217; CHECK:      [[v3UGT]] = OpFunction218; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter219; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter220; CHECK-NEXT: OpLabel221; CHECK-NEXT: [[R:%.*]] = OpUGreaterThan {{%.+}} [[A]] [[B]]222; CHECK-NEXT: OpReturnValue [[R]]223; CHECK-NEXT: OpFunctionEnd224define <3 x i1> @test_v3_ugt(<3 x i32> %a, <3 x i32> %b) {225  %r = icmp ugt <3 x i32> %a, %b226  ret <3 x i1> %r227}228 229; CHECK:      [[v3SGT]] = OpFunction230; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter231; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter232; CHECK-NEXT: OpLabel233; CHECK-NEXT: [[R:%.*]] = OpSGreaterThan {{%.+}} [[A]] [[B]]234; CHECK-NEXT: OpReturnValue [[R]]235; CHECK-NEXT: OpFunctionEnd236define <3 x i1> @test_v3_sgt(<3 x i32> %a, <3 x i32> %b) {237  %r = icmp sgt <3 x i32> %a, %b238  ret <3 x i1> %r239}240 241; CHECK:      [[v3UGE]] = OpFunction242; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter243; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter244; CHECK-NEXT: OpLabel245; CHECK-NEXT: [[R:%.*]] = OpUGreaterThanEqual {{%.+}} [[A]] [[B]]246; CHECK-NEXT: OpReturnValue [[R]]247; CHECK-NEXT: OpFunctionEnd248define <3 x i1> @test_v3_uge(<3 x i32> %a, <3 x i32> %b) {249  %r = icmp uge <3 x i32> %a, %b250  ret <3 x i1> %r251}252 253; CHECK:      [[v3SGE]] = OpFunction254; CHECK-NEXT: [[A:%.*]] = OpFunctionParameter255; CHECK-NEXT: [[B:%.*]] = OpFunctionParameter256; CHECK-NEXT: OpLabel257; CHECK-NEXT: [[R:%.*]] = OpSGreaterThanEqual {{%.+}} [[A]] [[B]]258; CHECK-NEXT: OpReturnValue [[R]]259; CHECK-NEXT: OpFunctionEnd260define <3 x i1> @test_v3_sge(<3 x i32> %a, <3 x i32> %b) {261  %r = icmp sge <3 x i32> %a, %b262  ret <3 x i1> %r263}264