xref: /llvm-project/llvm/unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp (revision b3e86709dc76afac082bd3c7ed4c90ef9847f7b5)
1 //===- MachineIRBuilderTest.cpp -------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "GISelMITest.h"
10 #include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
11 
12 TEST_F(GISelMITest, TestBuildConstantFConstant) {
13   if (!TM)
14     return;
15 
16   MachineIRBuilder B(*MF);
17   B.setInsertPt(*EntryMBB, EntryMBB->begin());
18 
19   B.buildConstant(LLT::scalar(32), 42);
20   B.buildFConstant(LLT::scalar(32), 1.0);
21 
22   B.buildConstant(LLT::vector(2, 32), 99);
23   B.buildFConstant(LLT::vector(2, 32), 2.0);
24 
25   auto CheckStr = R"(
26   CHECK: [[CONST0:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
27   CHECK: [[FCONST0:%[0-9]+]]:_(s32) = G_FCONSTANT float 1.000000e+00
28   CHECK: [[CONST1:%[0-9]+]]:_(s32) = G_CONSTANT i32 99
29   CHECK: [[VEC0:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[CONST1]]:_(s32), [[CONST1]]:_(s32)
30   CHECK: [[FCONST1:%[0-9]+]]:_(s32) = G_FCONSTANT double 2.000000e+00
31   CHECK: [[VEC1:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[FCONST1]]:_(s32), [[FCONST1]]:_(s32)
32   )";
33 
34   EXPECT_TRUE(CheckMachineFunction(*MF, CheckStr)) << *MF;
35 }
36