1
- ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals none --version 5
1
+ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals none --filter-out-after "^scalar.ph" -- version 5
2
2
; RUN: opt %s -passes=loop-vectorize -S | FileCheck %s
3
3
4
4
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
@@ -7,7 +7,7 @@ target triple = "x86_64-unknown-linux-gnu"
7
7
define i32 @bitcast-cse (i16 %val , half %fval , ptr %p , i64 %n ) {
8
8
; CHECK-LABEL: define i32 @bitcast-cse(
9
9
; CHECK-SAME: i16 [[VAL:%.*]], half [[FVAL:%.*]], ptr [[P:%.*]], i64 [[N:%.*]]) {
10
- ; CHECK-NEXT: [[ENTRY:.*]]:
10
+ ; CHECK-NEXT: [[ENTRY:.*:]]
11
11
; CHECK-NEXT: [[MIN_ITERS_CHECK:%.*]] = icmp ult i64 [[N]], 60
12
12
; CHECK-NEXT: br i1 [[MIN_ITERS_CHECK]], label %[[SCALAR_PH:.*]], label %[[VECTOR_SCEVCHECK:.*]]
13
13
; CHECK: [[VECTOR_SCEVCHECK]]:
@@ -55,23 +55,8 @@ define i32 @bitcast-cse(i16 %val, half %fval, ptr %p, i64 %n) {
55
55
; CHECK-NEXT: br i1 [[TMP25]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
56
56
; CHECK: [[MIDDLE_BLOCK]]:
57
57
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[N]], [[N_VEC]]
58
- ; CHECK-NEXT: br i1 [[CMP_N]], label % [[END:.*]], label %[[SCALAR_PH]]
58
+ ; CHECK-NEXT: br i1 [[CMP_N]], [[END:label % .*]], label %[[SCALAR_PH]]
59
59
; CHECK: [[SCALAR_PH]]:
60
- ; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi ptr [ [[TMP20]], %[[MIDDLE_BLOCK]] ], [ [[P]], %[[ENTRY]] ], [ [[P]], %[[VECTOR_SCEVCHECK]] ]
61
- ; CHECK-NEXT: [[BC_RESUME_VAL8:%.*]] = phi i64 [ [[N_VEC]], %[[MIDDLE_BLOCK]] ], [ 0, %[[ENTRY]] ], [ 0, %[[VECTOR_SCEVCHECK]] ]
62
- ; CHECK-NEXT: br label %[[LOOP:.*]]
63
- ; CHECK: [[LOOP]]:
64
- ; CHECK-NEXT: [[RES:%.*]] = phi ptr [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[RES_NEXT:%.*]], %[[LOOP]] ]
65
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL8]], %[[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], %[[LOOP]] ]
66
- ; CHECK-NEXT: store i16 [[VAL]], ptr [[RES]], align 2
67
- ; CHECK-NEXT: [[RES_OFFSET:%.*]] = getelementptr i16, ptr [[RES]], i64 1
68
- ; CHECK-NEXT: store half [[FVAL]], ptr [[RES_OFFSET]], align 2
69
- ; CHECK-NEXT: [[RES_NEXT]] = getelementptr i16, ptr [[RES]], i64 2
70
- ; CHECK-NEXT: [[IV_NEXT]] = add i64 [[IV]], 1
71
- ; CHECK-NEXT: [[EXIT_COND:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
72
- ; CHECK-NEXT: br i1 [[EXIT_COND]], label %[[END]], label %[[LOOP]], !llvm.loop [[LOOP3:![0-9]+]]
73
- ; CHECK: [[END]]:
74
- ; CHECK-NEXT: ret i32 0
75
60
;
76
61
entry:
77
62
br label %loop
0 commit comments