forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathldexp-zext.ll
More file actions
24 lines (22 loc) · 911 Bytes
/
ldexp-zext.ll
File metadata and controls
24 lines (22 loc) · 911 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=instcombine -S | FileCheck %s
define float @ldexp_zext(float %x, i1 %bool) {
; CHECK-LABEL: @ldexp_zext(
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[BOOL:%.*]], float 2.000000e+00, float 1.000000e+00
; CHECK-NEXT: [[LDEXP:%.*]] = fmul float [[TMP1]], [[X:%.*]]
; CHECK-NEXT: ret float [[LDEXP]]
;
%zext = zext i1 %bool to i32
%ldexp = call float @llvm.ldexp.f32.i32(float %x, i32 %zext)
ret float %ldexp
}
define float @ldexp_zext_negative(float %x, i8 %y) {
; CHECK-LABEL: @ldexp_zext_negative(
; CHECK-NEXT: [[ZEXT:%.*]] = zext i8 [[Y:%.*]] to i32
; CHECK-NEXT: [[LDEXP:%.*]] = call float @llvm.ldexp.f32.i32(float [[X:%.*]], i32 [[ZEXT]])
; CHECK-NEXT: ret float [[LDEXP]]
;
%zext = zext i8 %y to i32
%ldexp = call float @llvm.ldexp.f32.i32(float %x, i32 %zext)
ret float %ldexp
}