blob: ca25ec54d6d8a71a40fe80bb6aba8db68db90037 [file] [log] [blame]
Matt Arsenault52133812019-01-22 21:31:02 +00001//===- 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
12TEST_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)
Matt Arsenault52133812019-01-22 21:31:02 +000032 )";
33
Matt Arsenaultb3e86702019-02-04 18:58:27 +000034 EXPECT_TRUE(CheckMachineFunction(*MF, CheckStr)) << *MF;
Matt Arsenault52133812019-01-22 21:31:02 +000035}