[llvm-branch-commits] [llvm] [InstCombine] Autogenerate test checks in pow_fp_int16.ll. NFC (PR #227379)

Harrison Hao via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Wed Sep 30 01:12:21 PDT 2026


https://github.com/harrisonGPU updated https://github.com/llvm/llvm-project/pull/227379

>From bc3fd9cbfa23c0f1aa5b101682cf630655d626f7 Mon Sep 17 00:00:00 2001
From: Harrison Hao <tsworld1314 at gmail.com>
Date: Wed, 30 Sep 2026 00:29:03 +0800
Subject: [PATCH] [InstCombine] Autogenerate test checks in pow_fp_int16.ll.
 NFC

---
 .../Transforms/InstCombine/pow_fp_int16.ll    | 205 +++++++++++-------
 1 file changed, 121 insertions(+), 84 deletions(-)

diff --git a/llvm/test/Transforms/InstCombine/pow_fp_int16.ll b/llvm/test/Transforms/InstCombine/pow_fp_int16.ll
index 3d5c787363ea4..db836258daa1c 100644
--- a/llvm/test/Transforms/InstCombine/pow_fp_int16.ll
+++ b/llvm/test/Transforms/InstCombine/pow_fp_int16.ll
@@ -1,11 +1,12 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
 ; RUN: opt -mtriple msp430 -passes=instcombine -S < %s | FileCheck %s
 
 ; Test case was copied from pow_fp_int.ll but adjusted for 16-bit int.
-; Assuming that we can't generate test checks for the same reason (PR42740).
 
 define double @pow_sitofp_const_base_fast(i16 %x) {
-; CHECK-LABEL: @pow_sitofp_const_base_fast(
-; CHECK-NEXT:    [[TMP1:%.*]] = tail call afn float @llvm.powi.f32.i16(float 7.000000e+00, i16 [[X:%.*]])
+; CHECK-LABEL: define double @pow_sitofp_const_base_fast(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = tail call afn float @llvm.powi.f32.i16(float 7.000000e+00, i16 [[X]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[TMP1]] to double
 ; CHECK-NEXT:    ret double [[RES]]
 ;
@@ -16,8 +17,9 @@ define double @pow_sitofp_const_base_fast(i16 %x) {
 }
 
 define double @pow_uitofp_const_base_fast(i15 %x) {
-; CHECK-LABEL: @pow_uitofp_const_base_fast(
-; CHECK-NEXT:    [[TMP1:%.*]] = zext i15 [[X:%.*]] to i16
+; CHECK-LABEL: define double @pow_uitofp_const_base_fast(
+; CHECK-SAME: i15 [[X:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = zext i15 [[X]] to i16
 ; CHECK-NEXT:    [[TMP2:%.*]] = tail call afn float @llvm.powi.f32.i16(float 7.000000e+00, i16 [[TMP1]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[TMP2]] to double
 ; CHECK-NEXT:    ret double [[RES]]
@@ -29,8 +31,9 @@ define double @pow_uitofp_const_base_fast(i15 %x) {
 }
 
 define double @pow_sitofp_double_const_base_fast(i16 %x) {
-; CHECK-LABEL: @pow_sitofp_double_const_base_fast(
-; CHECK-NEXT:    [[TMP1:%.*]] = tail call afn double @llvm.powi.f64.i16(double 7.000000e+00, i16 [[X:%.*]])
+; CHECK-LABEL: define double @pow_sitofp_double_const_base_fast(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = tail call afn double @llvm.powi.f64.i16(double 7.000000e+00, i16 [[X]])
 ; CHECK-NEXT:    ret double [[TMP1]]
 ;
   %subfp = sitofp i16 %x to double
@@ -39,8 +42,9 @@ define double @pow_sitofp_double_const_base_fast(i16 %x) {
 }
 
 define double @pow_uitofp_double_const_base_fast(i15 %x) {
-; CHECK-LABEL: @pow_uitofp_double_const_base_fast(
-; CHECK-NEXT:    [[TMP1:%.*]] = zext i15 [[X:%.*]] to i16
+; CHECK-LABEL: define double @pow_uitofp_double_const_base_fast(
+; CHECK-SAME: i15 [[X:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = zext i15 [[X]] to i16
 ; CHECK-NEXT:    [[TMP2:%.*]] = tail call afn double @llvm.powi.f64.i16(double 7.000000e+00, i16 [[TMP1]])
 ; CHECK-NEXT:    ret double [[TMP2]]
 ;
@@ -50,8 +54,9 @@ define double @pow_uitofp_double_const_base_fast(i15 %x) {
 }
 
 define double @pow_sitofp_double_const_base_2_fast(i16 %x) {
-; CHECK-LABEL: @pow_sitofp_double_const_base_2_fast(
-; CHECK-NEXT:    [[LDEXPF:%.*]] = tail call afn float @llvm.ldexp.f32.i16(float 1.000000e+00, i16 [[X:%.*]])
+; CHECK-LABEL: define double @pow_sitofp_double_const_base_2_fast(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[LDEXPF:%.*]] = tail call afn float @llvm.ldexp.f32.i16(float 1.000000e+00, i16 [[X]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[LDEXPF]] to double
 ; CHECK-NEXT:    ret double [[RES]]
 ;
@@ -62,8 +67,9 @@ define double @pow_sitofp_double_const_base_2_fast(i16 %x) {
 }
 
 define double @pow_sitofp_double_const_base_power_of_2_fast(i16 %x) {
-; CHECK-LABEL: @pow_sitofp_double_const_base_power_of_2_fast(
-; CHECK-NEXT:    [[SUBFP:%.*]] = sitofp i16 [[X:%.*]] to float
+; CHECK-LABEL: define double @pow_sitofp_double_const_base_power_of_2_fast(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = sitofp i16 [[X]] to float
 ; CHECK-NEXT:    [[MUL:%.*]] = fmul nnan afn float [[SUBFP]], 4.000000e+00
 ; CHECK-NEXT:    [[EXP2:%.*]] = tail call afn float @llvm.exp2.f32(float [[MUL]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[EXP2]] to double
@@ -76,8 +82,9 @@ define double @pow_sitofp_double_const_base_power_of_2_fast(i16 %x) {
 }
 
 define double @pow_uitofp_const_base_2_fast(i15 %x) {
-; CHECK-LABEL: @pow_uitofp_const_base_2_fast(
-; CHECK-NEXT:    [[TMP1:%.*]] = zext i15 [[X:%.*]] to i16
+; CHECK-LABEL: define double @pow_uitofp_const_base_2_fast(
+; CHECK-SAME: i15 [[X:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = zext i15 [[X]] to i16
 ; CHECK-NEXT:    [[LDEXPF:%.*]] = tail call afn float @llvm.ldexp.f32.i16(float 1.000000e+00, i16 [[TMP1]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[LDEXPF]] to double
 ; CHECK-NEXT:    ret double [[RES]]
@@ -89,8 +96,9 @@ define double @pow_uitofp_const_base_2_fast(i15 %x) {
 }
 
 define double @pow_uitofp_const_base_power_of_2_fast(i15 %x) {
-; CHECK-LABEL: @pow_uitofp_const_base_power_of_2_fast(
-; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i15 [[X:%.*]] to float
+; CHECK-LABEL: define double @pow_uitofp_const_base_power_of_2_fast(
+; CHECK-SAME: i15 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i15 [[X]] to float
 ; CHECK-NEXT:    [[MUL:%.*]] = fmul nnan afn float [[SUBFP]], 4.000000e+00
 ; CHECK-NEXT:    [[EXP2:%.*]] = tail call afn float @llvm.exp2.f32(float [[MUL]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[EXP2]] to double
@@ -103,8 +111,9 @@ define double @pow_uitofp_const_base_power_of_2_fast(i15 %x) {
 }
 
 define double @pow_sitofp_float_base_fast(float %base, i16 %x) {
-; CHECK-LABEL: @pow_sitofp_float_base_fast(
-; CHECK-NEXT:    [[TMP1:%.*]] = tail call afn float @llvm.powi.f32.i16(float [[BASE:%.*]], i16 [[X:%.*]])
+; CHECK-LABEL: define double @pow_sitofp_float_base_fast(
+; CHECK-SAME: float [[BASE:%.*]], i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = tail call afn float @llvm.powi.f32.i16(float [[BASE]], i16 [[X]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[TMP1]] to double
 ; CHECK-NEXT:    ret double [[RES]]
 ;
@@ -115,9 +124,10 @@ define double @pow_sitofp_float_base_fast(float %base, i16 %x) {
 }
 
 define double @pow_uitofp_float_base_fast(float %base, i15 %x) {
-; CHECK-LABEL: @pow_uitofp_float_base_fast(
-; CHECK-NEXT:    [[TMP1:%.*]] = zext i15 [[X:%.*]] to i16
-; CHECK-NEXT:    [[TMP2:%.*]] = tail call afn float @llvm.powi.f32.i16(float [[BASE:%.*]], i16 [[TMP1]])
+; CHECK-LABEL: define double @pow_uitofp_float_base_fast(
+; CHECK-SAME: float [[BASE:%.*]], i15 [[X:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = zext i15 [[X]] to i16
+; CHECK-NEXT:    [[TMP2:%.*]] = tail call afn float @llvm.powi.f32.i16(float [[BASE]], i16 [[TMP1]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[TMP2]] to double
 ; CHECK-NEXT:    ret double [[RES]]
 ;
@@ -128,8 +138,9 @@ define double @pow_uitofp_float_base_fast(float %base, i15 %x) {
 }
 
 define double @pow_sitofp_double_base_fast(double %base, i16 %x) {
-; CHECK-LABEL: @pow_sitofp_double_base_fast(
-; CHECK-NEXT:    [[TMP1:%.*]] = tail call afn double @llvm.powi.f64.i16(double [[BASE:%.*]], i16 [[X:%.*]])
+; CHECK-LABEL: define double @pow_sitofp_double_base_fast(
+; CHECK-SAME: double [[BASE:%.*]], i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = tail call afn double @llvm.powi.f64.i16(double [[BASE]], i16 [[X]])
 ; CHECK-NEXT:    ret double [[TMP1]]
 ;
   %subfp = sitofp i16 %x to double
@@ -138,9 +149,10 @@ define double @pow_sitofp_double_base_fast(double %base, i16 %x) {
 }
 
 define double @pow_uitofp_double_base_fast(double %base, i15 %x) {
-; CHECK-LABEL: @pow_uitofp_double_base_fast(
-; CHECK-NEXT:    [[TMP1:%.*]] = zext i15 [[X:%.*]] to i16
-; CHECK-NEXT:    [[TMP2:%.*]] = tail call afn double @llvm.powi.f64.i16(double [[BASE:%.*]], i16 [[TMP1]])
+; CHECK-LABEL: define double @pow_uitofp_double_base_fast(
+; CHECK-SAME: double [[BASE:%.*]], i15 [[X:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = zext i15 [[X]] to i16
+; CHECK-NEXT:    [[TMP2:%.*]] = tail call afn double @llvm.powi.f64.i16(double [[BASE]], i16 [[TMP1]])
 ; CHECK-NEXT:    ret double [[TMP2]]
 ;
   %subfp = uitofp i15 %x to double
@@ -149,8 +161,9 @@ define double @pow_uitofp_double_base_fast(double %base, i15 %x) {
 }
 
 define double @pow_sitofp_const_base_fast_i8(i8 %x) {
-; CHECK-LABEL: @pow_sitofp_const_base_fast_i8(
-; CHECK-NEXT:    [[TMP1:%.*]] = sext i8 [[X:%.*]] to i16
+; CHECK-LABEL: define double @pow_sitofp_const_base_fast_i8(
+; CHECK-SAME: i8 [[X:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = sext i8 [[X]] to i16
 ; CHECK-NEXT:    [[TMP2:%.*]] = tail call afn float @llvm.powi.f32.i16(float 7.000000e+00, i16 [[TMP1]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[TMP2]] to double
 ; CHECK-NEXT:    ret double [[RES]]
@@ -162,8 +175,9 @@ define double @pow_sitofp_const_base_fast_i8(i8 %x) {
 }
 
 define double @pow_sitofp_const_base_fast_i16(i16 %x) {
-; CHECK-LABEL: @pow_sitofp_const_base_fast_i16(
-; CHECK-NEXT:    [[TMP1:%.*]] = tail call afn float @llvm.powi.f32.i16(float 7.000000e+00, i16 [[X:%.*]])
+; CHECK-LABEL: define double @pow_sitofp_const_base_fast_i16(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = tail call afn float @llvm.powi.f32.i16(float 7.000000e+00, i16 [[X]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[TMP1]] to double
 ; CHECK-NEXT:    ret double [[RES]]
 ;
@@ -175,8 +189,9 @@ define double @pow_sitofp_const_base_fast_i16(i16 %x) {
 
 
 define double @pow_uitofp_const_base_fast_i8(i8 %x) {
-; CHECK-LABEL: @pow_uitofp_const_base_fast_i8(
-; CHECK-NEXT:    [[TMP1:%.*]] = zext i8 [[X:%.*]] to i16
+; CHECK-LABEL: define double @pow_uitofp_const_base_fast_i8(
+; CHECK-SAME: i8 [[X:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = zext i8 [[X]] to i16
 ; CHECK-NEXT:    [[TMP2:%.*]] = tail call afn float @llvm.powi.f32.i16(float 7.000000e+00, i16 [[TMP1]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[TMP2]] to double
 ; CHECK-NEXT:    ret double [[RES]]
@@ -188,8 +203,9 @@ define double @pow_uitofp_const_base_fast_i8(i8 %x) {
 }
 
 define double @pow_uitofp_const_base_afn_i16(i16 %x) {
-; CHECK-LABEL: @pow_uitofp_const_base_afn_i16(
-; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X:%.*]] to float
+; CHECK-LABEL: define double @pow_uitofp_const_base_afn_i16(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X]] to float
 ; CHECK-NEXT:    [[POW:%.*]] = tail call afn float @llvm.pow.f32(float 7.000000e+00, float [[SUBFP]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[POW]] to double
 ; CHECK-NEXT:    ret double [[RES]]
@@ -201,8 +217,9 @@ define double @pow_uitofp_const_base_afn_i16(i16 %x) {
 }
 
 define double @powf_exp_const_int_fast(double %base) {
-; CHECK-LABEL: @powf_exp_const_int_fast(
-; CHECK-NEXT:    [[TMP1:%.*]] = tail call fast double @llvm.powi.f64.i16(double [[BASE:%.*]], i16 40)
+; CHECK-LABEL: define double @powf_exp_const_int_fast(
+; CHECK-SAME: double [[BASE:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = tail call fast double @llvm.powi.f64.i16(double [[BASE]], i16 40)
 ; CHECK-NEXT:    ret double [[TMP1]]
 ;
   %res = tail call fast double @llvm.pow.f64(double %base, double 4.000000e+01)
@@ -210,8 +227,9 @@ define double @powf_exp_const_int_fast(double %base) {
 }
 
 define double @powf_exp_const2_int_fast(double %base) {
-; CHECK-LABEL: @powf_exp_const2_int_fast(
-; CHECK-NEXT:    [[TMP1:%.*]] = tail call fast double @llvm.powi.f64.i16(double [[BASE:%.*]], i16 -40)
+; CHECK-LABEL: define double @powf_exp_const2_int_fast(
+; CHECK-SAME: double [[BASE:%.*]]) {
+; CHECK-NEXT:    [[TMP1:%.*]] = tail call fast double @llvm.powi.f64.i16(double [[BASE]], i16 -40)
 ; CHECK-NEXT:    ret double [[TMP1]]
 ;
   %res = tail call fast double @llvm.pow.f64(double %base, double -4.000000e+01)
@@ -221,9 +239,10 @@ define double @powf_exp_const2_int_fast(double %base) {
 ; Negative tests
 
 define double @pow_uitofp_const_base_fast_i16(i16 %x) {
-; CHECK-LABEL: @pow_uitofp_const_base_fast_i16(
-; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X:%.*]] to float
-; CHECK-NEXT:    [[MUL:%.*]] = fmul fast float [[SUBFP]], f0x4033ABB{{.*}}
+; CHECK-LABEL: define double @pow_uitofp_const_base_fast_i16(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X]] to float
+; CHECK-NEXT:    [[MUL:%.*]] = fmul fast float [[SUBFP]], f0x4033ABB4
 ; CHECK-NEXT:    [[EXP2:%.*]] = tail call fast float @llvm.exp2.f32(float [[MUL]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[EXP2]] to double
 ; CHECK-NEXT:    ret double [[RES]]
@@ -235,8 +254,9 @@ define double @pow_uitofp_const_base_fast_i16(i16 %x) {
 }
 
 define double @pow_uitofp_const_base_2_fast_i16(i16 %x) {
-; CHECK-LABEL: @pow_uitofp_const_base_2_fast_i16(
-; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X:%.*]] to float
+; CHECK-LABEL: define double @pow_uitofp_const_base_2_fast_i16(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X]] to float
 ; CHECK-NEXT:    [[EXP2:%.*]] = tail call fast float @llvm.exp2.f32(float [[SUBFP]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[EXP2]] to double
 ; CHECK-NEXT:    ret double [[RES]]
@@ -248,8 +268,9 @@ define double @pow_uitofp_const_base_2_fast_i16(i16 %x) {
 }
 
 define double @pow_uitofp_const_base_power_of_2_fast_i16(i16 %x) {
-; CHECK-LABEL: @pow_uitofp_const_base_power_of_2_fast_i16(
-; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X:%.*]] to float
+; CHECK-LABEL: define double @pow_uitofp_const_base_power_of_2_fast_i16(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X]] to float
 ; CHECK-NEXT:    [[MUL:%.*]] = fmul fast float [[SUBFP]], 4.000000e+00
 ; CHECK-NEXT:    [[EXP2:%.*]] = tail call fast float @llvm.exp2.f32(float [[MUL]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[EXP2]] to double
@@ -262,9 +283,10 @@ define double @pow_uitofp_const_base_power_of_2_fast_i16(i16 %x) {
 }
 
 define double @pow_uitofp_float_base_fast_i16(float %base, i16 %x) {
-; CHECK-LABEL: @pow_uitofp_float_base_fast_i16(
-; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X:%.*]] to float
-; CHECK-NEXT:    [[POW:%.*]] = tail call fast float @llvm.pow.f32(float [[BASE:%.*]], float [[SUBFP]])
+; CHECK-LABEL: define double @pow_uitofp_float_base_fast_i16(
+; CHECK-SAME: float [[BASE:%.*]], i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X]] to float
+; CHECK-NEXT:    [[POW:%.*]] = tail call fast float @llvm.pow.f32(float [[BASE]], float [[SUBFP]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[POW]] to double
 ; CHECK-NEXT:    ret double [[RES]]
 ;
@@ -275,9 +297,10 @@ define double @pow_uitofp_float_base_fast_i16(float %base, i16 %x) {
 }
 
 define double @pow_uitofp_double_base_fast_i16(double %base, i16 %x) {
-; CHECK-LABEL: @pow_uitofp_double_base_fast_i16(
-; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X:%.*]] to double
-; CHECK-NEXT:    [[RES:%.*]] = tail call fast double @llvm.pow.f64(double [[BASE:%.*]], double [[SUBFP]])
+; CHECK-LABEL: define double @pow_uitofp_double_base_fast_i16(
+; CHECK-SAME: double [[BASE:%.*]], i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X]] to double
+; CHECK-NEXT:    [[RES:%.*]] = tail call fast double @llvm.pow.f64(double [[BASE]], double [[SUBFP]])
 ; CHECK-NEXT:    ret double [[RES]]
 ;
   %subfp = uitofp i16 %x to double
@@ -286,8 +309,9 @@ define double @pow_uitofp_double_base_fast_i16(double %base, i16 %x) {
 }
 
 define double @pow_sitofp_const_base_no_fast(i16 %x) {
-; CHECK-LABEL: @pow_sitofp_const_base_no_fast(
-; CHECK-NEXT:    [[SUBFP:%.*]] = sitofp i16 [[X:%.*]] to float
+; CHECK-LABEL: define double @pow_sitofp_const_base_no_fast(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = sitofp i16 [[X]] to float
 ; CHECK-NEXT:    [[POW:%.*]] = tail call float @llvm.pow.f32(float 7.000000e+00, float [[SUBFP]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[POW]] to double
 ; CHECK-NEXT:    ret double [[RES]]
@@ -299,8 +323,9 @@ define double @pow_sitofp_const_base_no_fast(i16 %x) {
 }
 
 define double @pow_uitofp_const_base_no_fast(i16 %x) {
-; CHECK-LABEL: @pow_uitofp_const_base_no_fast(
-; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X:%.*]] to float
+; CHECK-LABEL: define double @pow_uitofp_const_base_no_fast(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X]] to float
 ; CHECK-NEXT:    [[POW:%.*]] = tail call float @llvm.pow.f32(float 7.000000e+00, float [[SUBFP]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[POW]] to double
 ; CHECK-NEXT:    ret double [[RES]]
@@ -312,8 +337,9 @@ define double @pow_uitofp_const_base_no_fast(i16 %x) {
 }
 
 define double @pow_sitofp_const_base_2_no_fast(i16 %x) {
-; CHECK-LABEL: @pow_sitofp_const_base_2_no_fast(
-; CHECK-NEXT:    [[LDEXPF:%.*]] = tail call float @llvm.ldexp.f32.i16(float 1.000000e+00, i16 [[X:%.*]])
+; CHECK-LABEL: define double @pow_sitofp_const_base_2_no_fast(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[LDEXPF:%.*]] = tail call float @llvm.ldexp.f32.i16(float 1.000000e+00, i16 [[X]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[LDEXPF]] to double
 ; CHECK-NEXT:    ret double [[RES]]
 ;
@@ -324,8 +350,9 @@ define double @pow_sitofp_const_base_2_no_fast(i16 %x) {
 }
 
 define double @pow_sitofp_const_base_power_of_2_no_fast(i16 %x) {
-; CHECK-LABEL: @pow_sitofp_const_base_power_of_2_no_fast(
-; CHECK-NEXT:    [[SUBFP:%.*]] = sitofp i16 [[X:%.*]] to float
+; CHECK-LABEL: define double @pow_sitofp_const_base_power_of_2_no_fast(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = sitofp i16 [[X]] to float
 ; CHECK-NEXT:    [[MUL:%.*]] = fmul nnan float [[SUBFP]], 4.000000e+00
 ; CHECK-NEXT:    [[EXP2:%.*]] = tail call float @llvm.exp2.f32(float [[MUL]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[EXP2]] to double
@@ -338,8 +365,9 @@ define double @pow_sitofp_const_base_power_of_2_no_fast(i16 %x) {
 }
 
 define double @pow_uitofp_const_base_2_no_fast(i16 %x) {
-; CHECK-LABEL: @pow_uitofp_const_base_2_no_fast(
-; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X:%.*]] to float
+; CHECK-LABEL: define double @pow_uitofp_const_base_2_no_fast(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X]] to float
 ; CHECK-NEXT:    [[EXP2:%.*]] = tail call float @llvm.exp2.f32(float [[SUBFP]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[EXP2]] to double
 ; CHECK-NEXT:    ret double [[RES]]
@@ -351,8 +379,9 @@ define double @pow_uitofp_const_base_2_no_fast(i16 %x) {
 }
 
 define double @pow_uitofp_const_base_power_of_2_no_fast(i16 %x) {
-; CHECK-LABEL: @pow_uitofp_const_base_power_of_2_no_fast(
-; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X:%.*]] to float
+; CHECK-LABEL: define double @pow_uitofp_const_base_power_of_2_no_fast(
+; CHECK-SAME: i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X]] to float
 ; CHECK-NEXT:    [[MUL:%.*]] = fmul nnan float [[SUBFP]], 4.000000e+00
 ; CHECK-NEXT:    [[EXP2:%.*]] = tail call float @llvm.exp2.f32(float [[MUL]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[EXP2]] to double
@@ -365,9 +394,10 @@ define double @pow_uitofp_const_base_power_of_2_no_fast(i16 %x) {
 }
 
 define double @pow_sitofp_float_base_no_fast(float %base, i16 %x) {
-; CHECK-LABEL: @pow_sitofp_float_base_no_fast(
-; CHECK-NEXT:    [[SUBFP:%.*]] = sitofp i16 [[X:%.*]] to float
-; CHECK-NEXT:    [[POW:%.*]] = tail call float @llvm.pow.f32(float [[BASE:%.*]], float [[SUBFP]])
+; CHECK-LABEL: define double @pow_sitofp_float_base_no_fast(
+; CHECK-SAME: float [[BASE:%.*]], i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = sitofp i16 [[X]] to float
+; CHECK-NEXT:    [[POW:%.*]] = tail call float @llvm.pow.f32(float [[BASE]], float [[SUBFP]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[POW]] to double
 ; CHECK-NEXT:    ret double [[RES]]
 ;
@@ -378,9 +408,10 @@ define double @pow_sitofp_float_base_no_fast(float %base, i16 %x) {
 }
 
 define double @pow_uitofp_float_base_no_fast(float %base, i16 %x) {
-; CHECK-LABEL: @pow_uitofp_float_base_no_fast(
-; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X:%.*]] to float
-; CHECK-NEXT:    [[POW:%.*]] = tail call float @llvm.pow.f32(float [[BASE:%.*]], float [[SUBFP]])
+; CHECK-LABEL: define double @pow_uitofp_float_base_no_fast(
+; CHECK-SAME: float [[BASE:%.*]], i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X]] to float
+; CHECK-NEXT:    [[POW:%.*]] = tail call float @llvm.pow.f32(float [[BASE]], float [[SUBFP]])
 ; CHECK-NEXT:    [[RES:%.*]] = fpext float [[POW]] to double
 ; CHECK-NEXT:    ret double [[RES]]
 ;
@@ -391,9 +422,10 @@ define double @pow_uitofp_float_base_no_fast(float %base, i16 %x) {
 }
 
 define double @pow_sitofp_double_base_no_fast(double %base, i16 %x) {
-; CHECK-LABEL: @pow_sitofp_double_base_no_fast(
-; CHECK-NEXT:    [[SUBFP:%.*]] = sitofp i16 [[X:%.*]] to double
-; CHECK-NEXT:    [[POW:%.*]] = tail call double @llvm.pow.f64(double [[BASE:%.*]], double [[SUBFP]])
+; CHECK-LABEL: define double @pow_sitofp_double_base_no_fast(
+; CHECK-SAME: double [[BASE:%.*]], i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = sitofp i16 [[X]] to double
+; CHECK-NEXT:    [[POW:%.*]] = tail call double @llvm.pow.f64(double [[BASE]], double [[SUBFP]])
 ; CHECK-NEXT:    ret double [[POW]]
 ;
   %subfp = sitofp i16 %x to double
@@ -402,9 +434,10 @@ define double @pow_sitofp_double_base_no_fast(double %base, i16 %x) {
 }
 
 define double @pow_uitofp_double_base_no_fast(double %base, i16 %x) {
-; CHECK-LABEL: @pow_uitofp_double_base_no_fast(
-; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X:%.*]] to double
-; CHECK-NEXT:    [[POW:%.*]] = tail call double @llvm.pow.f64(double [[BASE:%.*]], double [[SUBFP]])
+; CHECK-LABEL: define double @pow_uitofp_double_base_no_fast(
+; CHECK-SAME: double [[BASE:%.*]], i16 [[X:%.*]]) {
+; CHECK-NEXT:    [[SUBFP:%.*]] = uitofp i16 [[X]] to double
+; CHECK-NEXT:    [[POW:%.*]] = tail call double @llvm.pow.f64(double [[BASE]], double [[SUBFP]])
 ; CHECK-NEXT:    ret double [[POW]]
 ;
   %subfp = uitofp i16 %x to double
@@ -415,8 +448,9 @@ define double @pow_uitofp_double_base_no_fast(double %base, i16 %x) {
 ; negative test - pow with no FMF is not the same as the loosely-specified powi
 
 define double @powf_exp_const_int_no_fast(double %base) {
-; CHECK-LABEL: @powf_exp_const_int_no_fast(
-; CHECK-NEXT:    [[RES:%.*]] = tail call double @llvm.pow.f64(double [[BASE:%.*]], double 4.000000e+01)
+; CHECK-LABEL: define double @powf_exp_const_int_no_fast(
+; CHECK-SAME: double [[BASE:%.*]]) {
+; CHECK-NEXT:    [[RES:%.*]] = tail call double @llvm.pow.f64(double [[BASE]], double 4.000000e+01)
 ; CHECK-NEXT:    ret double [[RES]]
 ;
   %res = tail call double @llvm.pow.f64(double %base, double 4.000000e+01)
@@ -424,8 +458,9 @@ define double @powf_exp_const_int_no_fast(double %base) {
 }
 
 define double @powf_exp_const_not_int_fast(double %base) {
-; CHECK-LABEL: @powf_exp_const_not_int_fast(
-; CHECK-NEXT:    [[SQRT:%.*]] = call fast double @llvm.sqrt.f64(double [[BASE:%.*]])
+; CHECK-LABEL: define double @powf_exp_const_not_int_fast(
+; CHECK-SAME: double [[BASE:%.*]]) {
+; CHECK-NEXT:    [[SQRT:%.*]] = call fast double @llvm.sqrt.f64(double [[BASE]])
 ; CHECK-NEXT:    [[POWI:%.*]] = tail call fast double @llvm.powi.f64.i16(double [[BASE]], i16 37)
 ; CHECK-NEXT:    [[RES:%.*]] = fmul fast double [[POWI]], [[SQRT]]
 ; CHECK-NEXT:    ret double [[RES]]
@@ -435,8 +470,9 @@ define double @powf_exp_const_not_int_fast(double %base) {
 }
 
 define double @powf_exp_const_not_int_no_fast(double %base) {
-; CHECK-LABEL: @powf_exp_const_not_int_no_fast(
-; CHECK-NEXT:    [[RES:%.*]] = tail call double @llvm.pow.f64(double [[BASE:%.*]], double 3.750000e+01)
+; CHECK-LABEL: define double @powf_exp_const_not_int_no_fast(
+; CHECK-SAME: double [[BASE:%.*]]) {
+; CHECK-NEXT:    [[RES:%.*]] = tail call double @llvm.pow.f64(double [[BASE]], double 3.750000e+01)
 ; CHECK-NEXT:    ret double [[RES]]
 ;
   %res = tail call double @llvm.pow.f64(double %base, double 3.750000e+01)
@@ -446,8 +482,9 @@ define double @powf_exp_const_not_int_no_fast(double %base) {
 ; negative test - pow with no FMF is not the same as the loosely-specified powi
 
 define double @powf_exp_const2_int_no_fast(double %base) {
-; CHECK-LABEL: @powf_exp_const2_int_no_fast(
-; CHECK-NEXT:    [[RES:%.*]] = tail call double @llvm.pow.f64(double [[BASE:%.*]], double -4.000000e+01)
+; CHECK-LABEL: define double @powf_exp_const2_int_no_fast(
+; CHECK-SAME: double [[BASE:%.*]]) {
+; CHECK-NEXT:    [[RES:%.*]] = tail call double @llvm.pow.f64(double [[BASE]], double -4.000000e+01)
 ; CHECK-NEXT:    ret double [[RES]]
 ;
   %res = tail call double @llvm.pow.f64(double %base, double -4.000000e+01)



More information about the llvm-branch-commits mailing list