File: powi.ll

package info (click to toggle)
intel-graphics-compiler 1.0.17791.18-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 102,312 kB
  • sloc: cpp: 935,343; lisp: 286,143; ansic: 16,196; python: 3,279; yacc: 2,487; lex: 1,642; pascal: 300; sh: 174; makefile: 27
file content (59 lines) | stat: -rw-r--r-- 2,411 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
;=========================== begin_copyright_notice ============================
;
; Copyright (C) 2024 Intel Corporation
;
; SPDX-License-Identifier: MIT
;
;============================ end_copyright_notice =============================

; RUN: %opt %use_old_pass_manager% -GenXLowering -march=genx64 -mcpu=Gen9 -mtriple=spir64-unknown-unknown -S < %s | FileCheck %s

declare float @llvm.powi.f32.i64(float, i64) #2
; CHECK-LABEL: powi_float_i64
define spir_func float @powi_float_i64(i64 %src) {
; CHECK: {{[V0-9]*}} = call afn float @llvm.pow.f32
  %res = call afn float @llvm.powi.f32.i64(float 0x4000000000000000, i64 %src)
  ret float %res
}

declare float @llvm.powi.f32.i8(float, i8) #2
; CHECK-LABEL: powi_float_i8
define spir_func float @powi_float_i8(i8 %src) {
; CHECK: {{[V0-9]*}} = call afn float @llvm.pow.f32
  %res = call afn float @llvm.powi.f32.i8(float 0x4000000000000000, i8 %src)
  ret float %res
}

declare <4 x double> @llvm.powi.v4f64.v4i64(<4 x double>, <4 x i64>) #2
; CHECK-LABEL: powi_double_i64
define spir_func <4 x double> @powi_double_i64(<4 x i64> %src, <4 x double> %src_dbl) {
; CHECK: {{[V0-9]*}} = call afn <4 x double> @llvm.pow.v4f64
  %res = call afn <4 x double> @llvm.powi.v4f64.v4i64(<4 x double> %src_dbl, <4 x i64> %src)
  ret <4 x double> %res
}

declare <8 x double> @llvm.powi.v8f64.v8i8(<8 x double>, <8 x i8>) #2
; CHECK-LABEL: powi_double_i8
define spir_func <8 x double> @powi_double_i8(<8 x i8> %src, <8 x double> %src_dbl) {
; CHECK: {{[V0-9]*}} = call afn <8 x double> @llvm.pow.v8f64
  %res = call afn <8 x double> @llvm.powi.v8f64.v8i8(<8 x double> %src_dbl, <8 x i8> %src)
  ret <8 x double> %res
}

declare bfloat @llvm.powi.bf16.i64(bfloat, i64) #2
; CHECK-LABEL: powi_bfloat_i64
define spir_func bfloat @powi_bfloat_i64(i64 %src) {
; CHECK: {{[V0-9]*}} = call afn bfloat @llvm.pow.bf16
  %res = call afn bfloat @llvm.powi.bf16.i64(bfloat 0x4000000000000000, i64 %src)
  ret bfloat %res
}

declare <64 x bfloat> @llvm.powi.v64bf16.v64i8(<64 x bfloat>, <64 x i8>) #2
; CHECK-LABEL: powi_bfloat_i8
define spir_func <64 x bfloat> @powi_bfloat_i8(<64 x i8> %src, <64 x bfloat> %src_bfl) {
; CHECK: {{[V0-9]*}} = call afn <64 x bfloat> @llvm.pow.v64bf16
  %res = call afn <64 x bfloat> @llvm.powi.v64bf16.v64i8(<64 x bfloat> %src_bfl, <64 x i8> %src)
  ret <64 x bfloat> %res
}

attributes #2 = { nofree nosync nounwind readnone speculatable willreturn }