Files
swift-mirror/test/IRGen/enum_copy_init_with_take_memcpy.swift
2024-10-09 08:13:49 -07:00

39 lines
869 B
Swift

// RUN: %target-swift-frontend -I %t -primary-file %s -O -emit-ir | %FileCheck %s
// REQUIRES: PTRSIZE=64
enum MyEnum {
case one
case four
}
struct HasAnEnum {
var s1: String
var s2: String
var s3: String
var s4: String
var s5: String
var s6: String
var s7: String
var s8: String
var s9: String
var s10: String
var value: MyEnum?
func readValue() -> Int {
let x = value
if case .four = x { return 4 }
return -1
}
// CHECK: define {{.*}} swiftcc range(i64 -1, 5) i64 @"$s31enum_copy_init_with_take_memcpy9HasAnEnumV9readValueSiyF"(ptr {{.*}} %0)
// CHECK: [[T0:%.*]] = getelementptr inbounds i8, ptr %0, i64 160
// CHECK: [[T1:%.*]] = load i8, ptr [[T0]]
// CHECK: [[T2:%.*]] = icmp eq i8 [[T1]], 2
// CHECK: br i1 [[T2]], label
// CHECK: [[R:%.*]] = phi i64 [ -1, {{.*}} ], [ 4, {{.*}} ]
// CHECK: ret i64 [[R]]
}