1
1
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3
2
- ; RUN: opt -S -passes=instsimplify %s | FileCheck %s
2
+ ; RUN: opt -S -passes=instcombine %s | FileCheck %s
3
3
4
4
declare { float , i32 } @llvm.frexp.f32.i32 (float )
5
5
declare { <2 x float >, <2 x i32 > } @llvm.frexp.v2f32.v2i32 (<2 x float >)
@@ -12,7 +12,8 @@ define { float, i32 } @frexp_frexp(float %x) {
12
12
; CHECK-LABEL: define { float, i32 } @frexp_frexp(
13
13
; CHECK-SAME: float [[X:%.*]]) {
14
14
; CHECK-NEXT: [[FREXP0:%.*]] = call { float, i32 } @llvm.frexp.f32.i32(float [[X]])
15
- ; CHECK-NEXT: ret { float, i32 } [[FREXP0]]
15
+ ; CHECK-NEXT: [[FREXP1:%.*]] = insertvalue { float, i32 } [[FREXP0]], i32 0, 1
16
+ ; CHECK-NEXT: ret { float, i32 } [[FREXP1]]
16
17
;
17
18
%frexp0 = call { float , i32 } @llvm.frexp.f32.i32 (float %x )
18
19
%frexp0.0 = extractvalue { float , i32 } %frexp0 , 0
@@ -24,7 +25,8 @@ define { <2 x float>, <2 x i32> } @frexp_frexp_vector(<2 x float> %x) {
24
25
; CHECK-LABEL: define { <2 x float>, <2 x i32> } @frexp_frexp_vector(
25
26
; CHECK-SAME: <2 x float> [[X:%.*]]) {
26
27
; CHECK-NEXT: [[FREXP0:%.*]] = call { <2 x float>, <2 x i32> } @llvm.frexp.v2f32.v2i32(<2 x float> [[X]])
27
- ; CHECK-NEXT: ret { <2 x float>, <2 x i32> } [[FREXP0]]
28
+ ; CHECK-NEXT: [[FREXP1:%.*]] = insertvalue { <2 x float>, <2 x i32> } [[FREXP0]], <2 x i32> zeroinitializer, 1
29
+ ; CHECK-NEXT: ret { <2 x float>, <2 x i32> } [[FREXP1]]
28
30
;
29
31
%frexp0 = call { <2 x float >, <2 x i32 > } @llvm.frexp.v2f32.v2i32 (<2 x float > %x )
30
32
%frexp0.0 = extractvalue { <2 x float >, <2 x i32 > } %frexp0 , 0
@@ -47,7 +49,8 @@ define { <vscale x 2 x float>, <vscale x 2 x i32> } @frexp_frexp_scalable_vector
47
49
; CHECK-LABEL: define { <vscale x 2 x float>, <vscale x 2 x i32> } @frexp_frexp_scalable_vector(
48
50
; CHECK-SAME: <vscale x 2 x float> [[X:%.*]]) {
49
51
; CHECK-NEXT: [[FREXP0:%.*]] = call { <vscale x 2 x float>, <vscale x 2 x i32> } @llvm.frexp.nxv2f32.nxv2i32(<vscale x 2 x float> [[X]])
50
- ; CHECK-NEXT: ret { <vscale x 2 x float>, <vscale x 2 x i32> } [[FREXP0]]
52
+ ; CHECK-NEXT: [[FREXP1:%.*]] = insertvalue { <vscale x 2 x float>, <vscale x 2 x i32> } [[FREXP0]], <vscale x 2 x i32> zeroinitializer, 1
53
+ ; CHECK-NEXT: ret { <vscale x 2 x float>, <vscale x 2 x i32> } [[FREXP1]]
51
54
;
52
55
%frexp0 = call { <vscale x 2 x float >, <vscale x 2 x i32 > } @llvm.frexp.nxv2f32.nxv2i32 (<vscale x 2 x float > %x )
53
56
%frexp0.0 = extractvalue { <vscale x 2 x float >, <vscale x 2 x i32 > } %frexp0 , 0
0 commit comments