[llvm] 9cf647b - [PhaseOrdering] move an 'opt' test from x86 codegen; NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 24 06:52:56 PDT 2020


Author: Sanjay Patel
Date: 2020-09-24T09:47:38-04:00
New Revision: 9cf647bb3f88434e3ecba8e108d56fa4e3ed56f9

URL: https://github.com/llvm/llvm-project/commit/9cf647bb3f88434e3ecba8e108d56fa4e3ed56f9
DIFF: https://github.com/llvm/llvm-project/commit/9cf647bb3f88434e3ecba8e108d56fa4e3ed56f9.diff

LOG: [PhaseOrdering] move an 'opt' test from x86 codegen; NFC

This file comes from 2007, and I'm not entirely sure of the
motivation, but it was going through all of opt and llc.
The llc part is almost certainly unnecessary as shown in
the now auto-generated FileCheck lines.

This test may be affected by a logic change suggested in:
D87835

Added: 
    llvm/test/Transforms/PhaseOrdering/nancvt.ll

Modified: 
    

Removed: 
    llvm/test/CodeGen/X86/nancvt.ll


################################################################################
diff  --git a/llvm/test/CodeGen/X86/nancvt.ll b/llvm/test/CodeGen/X86/nancvt.ll
deleted file mode 100644
index 9222f6b76822..000000000000
--- a/llvm/test/CodeGen/X86/nancvt.ll
+++ /dev/null
@@ -1,183 +0,0 @@
-; RUN: opt < %s -O3 | llc > %t
-; RUN: grep 2147027116 %t | count 3
-; RUN: grep 2147228864 %t | count 3
-; RUN: grep 2146502828 %t | count 3
-; RUN: grep 2143034560 %t | count 3
-; Compile time conversions of NaNs.
-; ModuleID = 'nan2.c'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin8"
-	%struct..0anon = type { float }
-	%struct..1anon = type { double }
- at fnan = constant [3 x i32] [ i32 2143831397, i32 2143831396, i32 2143831398 ]		; <[3 x i32]*> [#uses=1]
- at dnan = constant [3 x i64] [ i64 9223235251041752696, i64 9223235251041752697, i64 9223235250773317239 ], align 8		; <[3 x i64]*> [#uses=1]
- at fsnan = constant [3 x i32] [ i32 2139637093, i32 2139637092, i32 2139637094 ]		; <[3 x i32]*> [#uses=1]
- at dsnan = constant [3 x i64] [ i64 9220983451228067448, i64 9220983451228067449, i64 9220983450959631991 ], align 8		; <[3 x i64]*> [#uses=1]
- at .str = internal constant [10 x i8] c"%08x%08x\0A\00"		; <[10 x i8]*> [#uses=2]
- at .str1 = internal constant [6 x i8] c"%08x\0A\00"		; <[6 x i8]*> [#uses=2]
-
- at var = external global i32
-
-define i32 @main() {
-entry:
-	%retval = alloca i32, align 4		; <i32*> [#uses=1]
-	%i = alloca i32, align 4		; <i32*> [#uses=20]
-	%uf = alloca %struct..0anon, align 4		; <%struct..0anon*> [#uses=8]
-	%ud = alloca %struct..1anon, align 8		; <%struct..1anon*> [#uses=10]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 0, i32* %i, align 4
-	br label %bb23
-
-bb:		; preds = %bb23
-	%tmp = load i32, i32* %i, align 4		; <i32> [#uses=1]
-	%tmp1 = getelementptr [3 x i32], [3 x i32]* @fnan, i32 0, i32 %tmp		; <i32*> [#uses=1]
-	%tmp2 = load i32, i32* %tmp1, align 4		; <i32> [#uses=1]
-	%tmp3 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0		; <float*> [#uses=1]
-	%tmp34 = bitcast float* %tmp3 to i32*		; <i32*> [#uses=1]
-	store i32 %tmp2, i32* %tmp34, align 4
-	%tmp5 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0		; <float*> [#uses=1]
-	%tmp6 = load float, float* %tmp5, align 4		; <float> [#uses=1]
-	%tmp67 = fpext float %tmp6 to double		; <double> [#uses=1]
-	%tmp8 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0		; <double*> [#uses=1]
-	store double %tmp67, double* %tmp8, align 8
-	%tmp9 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp910 = bitcast double* %tmp9 to i64*		; <i64*> [#uses=1]
-	%tmp11 = load i64, i64* %tmp910, align 8		; <i64> [#uses=1]
-	%tmp1112 = trunc i64 %tmp11 to i32		; <i32> [#uses=1]
-	%tmp13 = and i32 %tmp1112, -1		; <i32> [#uses=1]
-	%tmp14 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp1415 = bitcast double* %tmp14 to i64*		; <i64*> [#uses=1]
-	%tmp16 = load i64, i64* %tmp1415, align 8		; <i64> [#uses=1]
-	%.cast = zext i32 32 to i64		; <i64> [#uses=1]
-	%tmp17 = ashr i64 %tmp16, %.cast		; <i64> [#uses=1]
-	%tmp1718 = trunc i64 %tmp17 to i32		; <i32> [#uses=1]
-	%tmp19 = getelementptr [10 x i8], [10 x i8]* @.str, i32 0, i32 0		; <i8*> [#uses=1]
-	store volatile i32 %tmp1718, i32* @var
-	store volatile i32 %tmp13, i32* @var
-	%tmp21 = load i32, i32* %i, align 4		; <i32> [#uses=1]
-	%tmp22 = add i32 %tmp21, 1		; <i32> [#uses=1]
-	store i32 %tmp22, i32* %i, align 4
-	br label %bb23
-
-bb23:		; preds = %bb, %entry
-	%tmp24 = load i32, i32* %i, align 4		; <i32> [#uses=1]
-	%tmp25 = icmp sle i32 %tmp24, 2		; <i1> [#uses=1]
-	%tmp2526 = zext i1 %tmp25 to i8		; <i8> [#uses=1]
-	%toBool = icmp ne i8 %tmp2526, 0		; <i1> [#uses=1]
-	br i1 %toBool, label %bb, label %bb27
-
-bb27:		; preds = %bb23
-	store i32 0, i32* %i, align 4
-	br label %bb46
-
-bb28:		; preds = %bb46
-	%tmp29 = load i32, i32* %i, align 4		; <i32> [#uses=1]
-	%tmp30 = getelementptr [3 x i64], [3 x i64]* @dnan, i32 0, i32 %tmp29		; <i64*> [#uses=1]
-	%tmp31 = load i64, i64* %tmp30, align 8		; <i64> [#uses=1]
-	%tmp32 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp3233 = bitcast double* %tmp32 to i64*		; <i64*> [#uses=1]
-	store i64 %tmp31, i64* %tmp3233, align 8
-	%tmp35 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp36 = load double, double* %tmp35, align 8		; <double> [#uses=1]
-	%tmp3637 = fptrunc double %tmp36 to float		; <float> [#uses=1]
-	%tmp38 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0		; <float*> [#uses=1]
-	store float %tmp3637, float* %tmp38, align 4
-	%tmp39 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0		; <float*> [#uses=1]
-	%tmp3940 = bitcast float* %tmp39 to i32*		; <i32*> [#uses=1]
-	%tmp41 = load i32, i32* %tmp3940, align 4		; <i32> [#uses=1]
-	%tmp42 = getelementptr [6 x i8], [6 x i8]* @.str1, i32 0, i32 0		; <i8*> [#uses=1]
-	store volatile i32 %tmp41, i32* @var
-	%tmp44 = load i32, i32* %i, align 4		; <i32> [#uses=1]
-	%tmp45 = add i32 %tmp44, 1		; <i32> [#uses=1]
-	store i32 %tmp45, i32* %i, align 4
-	br label %bb46
-
-bb46:		; preds = %bb28, %bb27
-	%tmp47 = load i32, i32* %i, align 4		; <i32> [#uses=1]
-	%tmp48 = icmp sle i32 %tmp47, 2		; <i1> [#uses=1]
-	%tmp4849 = zext i1 %tmp48 to i8		; <i8> [#uses=1]
-	%toBool50 = icmp ne i8 %tmp4849, 0		; <i1> [#uses=1]
-	br i1 %toBool50, label %bb28, label %bb51
-
-bb51:		; preds = %bb46
-	store i32 0, i32* %i, align 4
-	br label %bb78
-
-bb52:		; preds = %bb78
-	%tmp53 = load i32, i32* %i, align 4		; <i32> [#uses=1]
-	%tmp54 = getelementptr [3 x i32], [3 x i32]* @fsnan, i32 0, i32 %tmp53		; <i32*> [#uses=1]
-	%tmp55 = load i32, i32* %tmp54, align 4		; <i32> [#uses=1]
-	%tmp56 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0		; <float*> [#uses=1]
-	%tmp5657 = bitcast float* %tmp56 to i32*		; <i32*> [#uses=1]
-	store i32 %tmp55, i32* %tmp5657, align 4
-	%tmp58 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0		; <float*> [#uses=1]
-	%tmp59 = load float, float* %tmp58, align 4		; <float> [#uses=1]
-	%tmp5960 = fpext float %tmp59 to double		; <double> [#uses=1]
-	%tmp61 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0		; <double*> [#uses=1]
-	store double %tmp5960, double* %tmp61, align 8
-	%tmp62 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp6263 = bitcast double* %tmp62 to i64*		; <i64*> [#uses=1]
-	%tmp64 = load i64, i64* %tmp6263, align 8		; <i64> [#uses=1]
-	%tmp6465 = trunc i64 %tmp64 to i32		; <i32> [#uses=1]
-	%tmp66 = and i32 %tmp6465, -1		; <i32> [#uses=1]
-	%tmp68 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp6869 = bitcast double* %tmp68 to i64*		; <i64*> [#uses=1]
-	%tmp70 = load i64, i64* %tmp6869, align 8		; <i64> [#uses=1]
-	%.cast71 = zext i32 32 to i64		; <i64> [#uses=1]
-	%tmp72 = ashr i64 %tmp70, %.cast71		; <i64> [#uses=1]
-	%tmp7273 = trunc i64 %tmp72 to i32		; <i32> [#uses=1]
-	%tmp74 = getelementptr [10 x i8], [10 x i8]* @.str, i32 0, i32 0		; <i8*> [#uses=1]
-	store volatile i32 %tmp7273, i32* @var
-	store volatile i32 %tmp66, i32* @var
-	%tmp76 = load i32, i32* %i, align 4		; <i32> [#uses=1]
-	%tmp77 = add i32 %tmp76, 1		; <i32> [#uses=1]
-	store i32 %tmp77, i32* %i, align 4
-	br label %bb78
-
-bb78:		; preds = %bb52, %bb51
-	%tmp79 = load i32, i32* %i, align 4		; <i32> [#uses=1]
-	%tmp80 = icmp sle i32 %tmp79, 2		; <i1> [#uses=1]
-	%tmp8081 = zext i1 %tmp80 to i8		; <i8> [#uses=1]
-	%toBool82 = icmp ne i8 %tmp8081, 0		; <i1> [#uses=1]
-	br i1 %toBool82, label %bb52, label %bb83
-
-bb83:		; preds = %bb78
-	store i32 0, i32* %i, align 4
-	br label %bb101
-
-bb84:		; preds = %bb101
-	%tmp85 = load i32, i32* %i, align 4		; <i32> [#uses=1]
-	%tmp86 = getelementptr [3 x i64], [3 x i64]* @dsnan, i32 0, i32 %tmp85		; <i64*> [#uses=1]
-	%tmp87 = load i64, i64* %tmp86, align 8		; <i64> [#uses=1]
-	%tmp88 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp8889 = bitcast double* %tmp88 to i64*		; <i64*> [#uses=1]
-	store i64 %tmp87, i64* %tmp8889, align 8
-	%tmp90 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp91 = load double, double* %tmp90, align 8		; <double> [#uses=1]
-	%tmp9192 = fptrunc double %tmp91 to float		; <float> [#uses=1]
-	%tmp93 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0		; <float*> [#uses=1]
-	store float %tmp9192, float* %tmp93, align 4
-	%tmp94 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0		; <float*> [#uses=1]
-	%tmp9495 = bitcast float* %tmp94 to i32*		; <i32*> [#uses=1]
-	%tmp96 = load i32, i32* %tmp9495, align 4		; <i32> [#uses=1]
-	%tmp97 = getelementptr [6 x i8], [6 x i8]* @.str1, i32 0, i32 0		; <i8*> [#uses=1]
-	store volatile i32 %tmp96, i32* @var
-	%tmp99 = load i32, i32* %i, align 4		; <i32> [#uses=1]
-	%tmp100 = add i32 %tmp99, 1		; <i32> [#uses=1]
-	store i32 %tmp100, i32* %i, align 4
-	br label %bb101
-
-bb101:		; preds = %bb84, %bb83
-	%tmp102 = load i32, i32* %i, align 4		; <i32> [#uses=1]
-	%tmp103 = icmp sle i32 %tmp102, 2		; <i1> [#uses=1]
-	%tmp103104 = zext i1 %tmp103 to i8		; <i8> [#uses=1]
-	%toBool105 = icmp ne i8 %tmp103104, 0		; <i1> [#uses=1]
-	br i1 %toBool105, label %bb84, label %bb106
-
-bb106:		; preds = %bb101
-	br label %return
-
-return:		; preds = %bb106
-	%retval107 = load i32, i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval107
-}

diff  --git a/llvm/test/Transforms/PhaseOrdering/nancvt.ll b/llvm/test/Transforms/PhaseOrdering/nancvt.ll
new file mode 100644
index 000000000000..c87390c268c9
--- /dev/null
+++ b/llvm/test/Transforms/PhaseOrdering/nancvt.ll
@@ -0,0 +1,205 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt < %s -O3 -S | FileCheck %s
+
+; Compile time conversions of NaNs.
+
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
+target triple = "i686-apple-darwin8"
+
+%struct..0anon = type { float }
+%struct..1anon = type { double }
+
+ at fnan = constant [3 x i32] [ i32 2143831397, i32 2143831396, i32 2143831398 ]
+ at dnan = constant [3 x i64] [ i64 9223235251041752696, i64 9223235251041752697, i64 9223235250773317239 ], align 8
+ at fsnan = constant [3 x i32] [ i32 2139637093, i32 2139637092, i32 2139637094 ]
+ at dsnan = constant [3 x i64] [ i64 9220983451228067448, i64 9220983451228067449, i64 9220983450959631991 ], align 8
+ at .str = internal constant [10 x i8] c"%08x%08x\0A\00"
+ at .str1 = internal constant [6 x i8] c"%08x\0A\00"
+
+ at var = external global i32
+
+define i32 @main() {
+; CHECK-LABEL: @main(
+; CHECK-NEXT:  entry:
+; CHECK-NEXT:    store volatile i32 2147027116, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 -1610612736, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 2147027116, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 -2147483648, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 2147027116, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 -1073741824, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 2147228864, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 2147228864, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 2147228864, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 2146502828, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 -1610612736, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 2146502828, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 -2147483648, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 2146502828, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 -1073741824, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 2143034560, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 2143034560, i32* @var, align 4
+; CHECK-NEXT:    store volatile i32 2143034560, i32* @var, align 4
+; CHECK-NEXT:    ret i32 undef
+;
+entry:
+  %retval = alloca i32, align 4
+  %i = alloca i32, align 4
+  %uf = alloca %struct..0anon, align 4
+  %ud = alloca %struct..1anon, align 8
+  %"alloca point" = bitcast i32 0 to i32
+  store i32 0, i32* %i, align 4
+  br label %bb23
+
+bb:		; preds = %bb23
+  %t = load i32, i32* %i, align 4
+  %t1 = getelementptr [3 x i32], [3 x i32]* @fnan, i32 0, i32 %t
+  %t2 = load i32, i32* %t1, align 4
+  %t3 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0
+  %t34 = bitcast float* %t3 to i32*
+  store i32 %t2, i32* %t34, align 4
+  %t5 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0
+  %t6 = load float, float* %t5, align 4
+  %t67 = fpext float %t6 to double
+  %t8 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0
+  store double %t67, double* %t8, align 8
+  %t9 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0
+  %t910 = bitcast double* %t9 to i64*
+  %t11 = load i64, i64* %t910, align 8
+  %t1112 = trunc i64 %t11 to i32
+  %t13 = and i32 %t1112, -1
+  %t14 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0
+  %t1415 = bitcast double* %t14 to i64*
+  %t16 = load i64, i64* %t1415, align 8
+  %.cast = zext i32 32 to i64
+  %t17 = ashr i64 %t16, %.cast
+  %t1718 = trunc i64 %t17 to i32
+  %t19 = getelementptr [10 x i8], [10 x i8]* @.str, i32 0, i32 0
+  store volatile i32 %t1718, i32* @var
+  store volatile i32 %t13, i32* @var
+  %t21 = load i32, i32* %i, align 4
+  %t22 = add i32 %t21, 1
+  store i32 %t22, i32* %i, align 4
+  br label %bb23
+
+bb23:		; preds = %bb, %entry
+  %t24 = load i32, i32* %i, align 4
+  %t25 = icmp sle i32 %t24, 2
+  %t2526 = zext i1 %t25 to i8
+  %toBool = icmp ne i8 %t2526, 0
+  br i1 %toBool, label %bb, label %bb27
+
+bb27:		; preds = %bb23
+  store i32 0, i32* %i, align 4
+  br label %bb46
+
+bb28:		; preds = %bb46
+  %t29 = load i32, i32* %i, align 4
+  %t30 = getelementptr [3 x i64], [3 x i64]* @dnan, i32 0, i32 %t29
+  %t31 = load i64, i64* %t30, align 8
+  %t32 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0
+  %t3233 = bitcast double* %t32 to i64*
+  store i64 %t31, i64* %t3233, align 8
+  %t35 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0
+  %t36 = load double, double* %t35, align 8
+  %t3637 = fptrunc double %t36 to float
+  %t38 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0
+  store float %t3637, float* %t38, align 4
+  %t39 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0
+  %t3940 = bitcast float* %t39 to i32*
+  %t41 = load i32, i32* %t3940, align 4
+  %t42 = getelementptr [6 x i8], [6 x i8]* @.str1, i32 0, i32 0
+  store volatile i32 %t41, i32* @var
+  %t44 = load i32, i32* %i, align 4
+  %t45 = add i32 %t44, 1
+  store i32 %t45, i32* %i, align 4
+  br label %bb46
+
+bb46:		; preds = %bb28, %bb27
+  %t47 = load i32, i32* %i, align 4
+  %t48 = icmp sle i32 %t47, 2
+  %t4849 = zext i1 %t48 to i8
+  %toBool50 = icmp ne i8 %t4849, 0
+  br i1 %toBool50, label %bb28, label %bb51
+
+bb51:		; preds = %bb46
+  store i32 0, i32* %i, align 4
+  br label %bb78
+
+bb52:		; preds = %bb78
+  %t53 = load i32, i32* %i, align 4
+  %t54 = getelementptr [3 x i32], [3 x i32]* @fsnan, i32 0, i32 %t53
+  %t55 = load i32, i32* %t54, align 4
+  %t56 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0
+  %t5657 = bitcast float* %t56 to i32*
+  store i32 %t55, i32* %t5657, align 4
+  %t58 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0
+  %t59 = load float, float* %t58, align 4
+  %t5960 = fpext float %t59 to double
+  %t61 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0
+  store double %t5960, double* %t61, align 8
+  %t62 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0
+  %t6263 = bitcast double* %t62 to i64*
+  %t64 = load i64, i64* %t6263, align 8
+  %t6465 = trunc i64 %t64 to i32
+  %t66 = and i32 %t6465, -1
+  %t68 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0
+  %t6869 = bitcast double* %t68 to i64*
+  %t70 = load i64, i64* %t6869, align 8
+  %.cast71 = zext i32 32 to i64
+  %t72 = ashr i64 %t70, %.cast71
+  %t7273 = trunc i64 %t72 to i32
+  %t74 = getelementptr [10 x i8], [10 x i8]* @.str, i32 0, i32 0
+  store volatile i32 %t7273, i32* @var
+  store volatile i32 %t66, i32* @var
+  %t76 = load i32, i32* %i, align 4
+  %t77 = add i32 %t76, 1
+  store i32 %t77, i32* %i, align 4
+  br label %bb78
+
+bb78:		; preds = %bb52, %bb51
+  %t79 = load i32, i32* %i, align 4
+  %t80 = icmp sle i32 %t79, 2
+  %t8081 = zext i1 %t80 to i8
+  %toBool82 = icmp ne i8 %t8081, 0
+  br i1 %toBool82, label %bb52, label %bb83
+
+bb83:		; preds = %bb78
+  store i32 0, i32* %i, align 4
+  br label %bb101
+
+bb84:		; preds = %bb101
+  %t85 = load i32, i32* %i, align 4
+  %t86 = getelementptr [3 x i64], [3 x i64]* @dsnan, i32 0, i32 %t85
+  %t87 = load i64, i64* %t86, align 8
+  %t88 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0
+  %t8889 = bitcast double* %t88 to i64*
+  store i64 %t87, i64* %t8889, align 8
+  %t90 = getelementptr %struct..1anon, %struct..1anon* %ud, i32 0, i32 0
+  %t91 = load double, double* %t90, align 8
+  %t9192 = fptrunc double %t91 to float
+  %t93 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0
+  store float %t9192, float* %t93, align 4
+  %t94 = getelementptr %struct..0anon, %struct..0anon* %uf, i32 0, i32 0
+  %t9495 = bitcast float* %t94 to i32*
+  %t96 = load i32, i32* %t9495, align 4
+  %t97 = getelementptr [6 x i8], [6 x i8]* @.str1, i32 0, i32 0
+  store volatile i32 %t96, i32* @var
+  %t99 = load i32, i32* %i, align 4
+  %t100 = add i32 %t99, 1
+  store i32 %t100, i32* %i, align 4
+  br label %bb101
+
+bb101:		; preds = %bb84, %bb83
+  %t102 = load i32, i32* %i, align 4
+  %t103 = icmp sle i32 %t102, 2
+  %t103104 = zext i1 %t103 to i8
+  %toBool105 = icmp ne i8 %t103104, 0
+  br i1 %toBool105, label %bb84, label %bb106
+
+bb106:		; preds = %bb101
+  br label %return
+
+return:		; preds = %bb106
+  %retval107 = load i32, i32* %retval
+  ret i32 %retval107
+}


        


More information about the llvm-commits mailing list